Currently, FreeTAKHub has 5 components:
- FreeTAKServer (FTS)
- FreeTAKServer-UI
- WebMap Server
- Video Server (RTSP Server)
- Node-RED Server
The installation is a set of Ansible/Terraform scripts that allow you to:
- Create the target nodes.
- Install FTS and all the additional modules.
- Configure FTS.
Currently FreeTAKServer and components have been tested successfully on Ubuntu 20.04.
Other Linux distributions may work, but they have not been tested.
This is required only if you want to use Windows.
You must be running Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11.
To install on Windows, you will have to:
-
Install WSL2.
See: https://docs.microsoft.com/en-us/windows/wsl/install
See also: https://www.omgubuntu.co.uk/how-to-install-wsl2-on-windows-10
See also: https://www.sitepoint.com/wsl2/
-
Install the WSL Ubuntu 20.04 distribution.
See: https://www.microsoft.com/en-us/p/ubuntu-2004-lts/9n6svws3rx71
This approach assumes that you have a empty Ubuntu 20.04.
The script will install and configure all FreeTAKHub components.
- FTS: hosts the core of FTS
- FTS Web UI: uses the API service 1935 to interacts with FTS
- FTH webMap : this connects to FTS using the TCP COT service and port 8087
- Video Service: streams video.
- FTH server: runs other integrations such as the Video Service Checker and SALUTE report. The video Service checker has a strategy to verify if streams are running there and notifies FTS.

wget -qO - https://raw.githubusercontent.com/FreeTAKTeam/FreeTAKHub-Installation/main/scripts/easy_install.sh | bashIn the console:
sudo apt updateMake sure you have Git installed:
sudo apt install -y gitGo to your home directory:
cd ~Clone the repo:
git clone https://github.com/FreeTAKTeam/FreeTAKHub-Installation.gitGo to the top-level directory of the repository:
cd FreeTAKHub-InstallationIn case you already previously created the repository, pull the latest:
git pullIn the top-level directory, enter:
./init.shOptional: To activate the virtual environment, enter:
activateTo deactivate:
deactivateTo know more about Python virtual environments and why they are a good idea, see:
https://realpython.com/python-virtual-environments-a-primer/
if you prefer to have more control use this method.
In the console:
sudo apt updatesudo apt -y install software-properties-commonsudo add-apt-repository --y --update ppa:ansible/ansiblesudo apt install -y ansibleThis script install FreeTAKServer and all of its components to your machine:
./install.shopen a browser to:
http://[YOURIP]::5000/- login with admin / password
- change your password immediately
- check if the services are on OK (blue)

- connect a client to the server
- click on the Webmap tab
- you should see the client connected in the webmap
Open a browser to:
http://[YOURIP]:9997/v1/config/get
you will see a configuration in Json format like this:
{
"logLevel": "info",
"logDestinations": [
"stdout"
],
"logFile": "rtsp-simple-server.log",
"readTimeout": "10s",
"writeTimeout": "10s",
"readBufferCount": 512,
"api": true,
"apiAddress": "[YOURIP]:9997",
"metrics": false,
"metricsAddress": "127.0.0.1:9998",
"pprof": false,
"pprofAddress": "127.0.0.1:9999",
"runOnConnect": "",
"runOnConnectRestart": false,
"rtspDisable": false,
"protocols": [
"multicast",
"tcp",
"udp"
],
"encryption": "no",
"rtspAddress": ":8554",
"rtspsAddress": ":8555",
"rtpAddress": ":8000",
"rtcpAddress": ":8001",
"multicastIPRange": "224.1.0.0/16",
"multicastRTPPort": 8002,
"multicastRTCPPort": 8003,
"serverKey": "server.key",
"serverCert": "server.crt",
"authMethods": [
"basic",
"digest"
],
"readBufferSize": 2048,
"rtmpDisable": false,
"rtmpAddress": ":1935",
"hlsDisable": false,
"hlsAddress": ":8888",
"hlsAlwaysRemux": false,
"hlsSegmentCount": 3,
"hlsSegmentDuration": "1s",
"hlsAllowOrigin": "*",
"paths": {
"~^.*$": {
"source": "publisher",
"sourceProtocol": "automatic",
"sourceAnyPortEnable": false,
"sourceFingerprint": "",
"sourceOnDemand": false,
"sourceOnDemandStartTimeout": "10s",
"sourceOnDemandCloseAfter": "10s",
"sourceRedirect": "",
"disablePublisherOverride": false,
"fallback": "",
"publishUser": "",
"publishPass": "",
"publishIPs": [],
"readUser": "",
"readPass": "",
"readIPs": [],
"runOnInit": "",
"runOnInitRestart": false,
"runOnDemand": "",
"runOnDemandRestart": false,
"runOnDemandStartTimeout": "10s",
"runOnDemandCloseAfter": "10s",
"runOnPublish": "",
"runOnPublishRestart": false,
"runOnRead": "",
"runOnReadRestart": false
}
}
}Open a browser to
http://[YOURIP]::8081/This installation method has been tested with Ubuntu 20.04.
Other Linux distributions may work, but they have not been tested.
In the console:
sudo apt updateMake sure you have Git installed:
sudo apt install -y gitGo to your home directory:
cd ~Clone the repo with:
git clone https://github.com/FreeTAKTeam/FreeTAKHub-Installation.gitGo to the top-level directory
cd FreeTAKHub-InstallationIn case you already previously created the repository, pull the latest:
git pullIn the top-level directory of the repository:
./init.shOptional: To activate the virtual environment, enter:
activateTo deactivate:
deactivateTo know more about Python virtual environments and why they are a good idea, see:
https://realpython.com/python-virtual-environments-a-primer/
See: https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-account/
See: https://docs.digitalocean.com/reference/api/create-personal-access-token/
In the top-level directory of the project, initialize Terraform:
terraform initThen apply:
terraform applyYou will then be prompted for your DigitalOcean Token and private key path:
var.digitalocean_token
Enter a value: <DIGITALOCEAN_TOKEN_HERE>
var.private_key_path
ABSOLUTE path to private key, for example: /home/user/.ssh/id_rsa
Enter a value: /home/user/.ssh/id_rsaTo destroy your droplets:
terraform destroy