this page is not maintained. please refers to the official documentation
Use a clean Ubuntu 22.04 image when installing.
Download Ubuntu 22.04
FreeTAKTeam is currently testing on other Operating Systems and distributions.
wget -qO - bit.ly/freetakhub2 | sudo bash
Available options:
-h, --help Print help
-v, --verbose Print script debug info
-c, --check Check for compatibility issues while installing
--core Install FreeTAKServer, UI, and Web Map
--branch Execute Zero Touch from a development branch
Install core fts components only
wget -qO - bit.ly/ftszerotouch | sudo bash -s -- --core
Display help screen
wget -qO - bit.ly/ftszerotouch | sudo bash -s -- -h
Do compatibility checks and print more output
wget -qO - bit.ly/ftszerotouch | sudo bash -s -- -c -v
wget -qO - bit.ly/ftsadvancedinstall | sudo bash
Available options:
-h, --help Print help
-v, --verbose Print script debug info
-c, --check Check for compatibility issues while installing
--non-interactive Assume defaults (non-interactive)
--core Install FreeTAKServer, UI, and Web Map
--nodered Install Node-RED Server
--video Install Video Server
--mumble Install Murmur VOIP Server and Mumble Client
Install FTS core components non-interactively (do not prompt for user input).
wget -qO - bit.ly/ftsadvancedinstall | sudo bash -s -- --core --non-interactive
Do compatibility checks, print more output, and prompt for installing other components.
wget -qO - bit.ly/ftsadvancedinstall | sudo bash -s -- -c -v
Install video and mumble, but prompt to install for other components.
wget -qO - bit.ly/ftsadvancedinstall | sudo bash -s -- --video --mumble
This script will install and configure these components:
- FreeTAKServer (FTS): The core server that interfaces with TAK-enabled clients
- FreeTAKServer User Interface (FTS-UI): A web-based user interface.
- FreeTAKHub Webmap: A mapping component on the web interface.
- Video Server: Handles video streaming.
- FreeTAKHub Server: Handles FTS integrations like SALUTE reports & video checking services (checks if videos are running and notifies FTS).
- FreeTAKHub Voice Server: Uses Murmur or Mumble VOIP Server for voice chatting.
This repository includes Ansible roles to:
- create the target nodes.
- install FTS and additional modules.
- configure FTS.
Below is required for Windows machines.
The machine must be running: Windows 10 Version 2004 or higher (Build 19041 or higher) or Windows 11.
For Windows installations:
-
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
In the console:
sudo apt update
Make sure you have git
installed:
sudo apt install -y git
Go to the home directory:
cd ~
Clone the FreeTAKHub-Installation
repository:
git clone https://github.com/FreeTAKTeam/FreeTAKHub-Installation.git
Go to the top-level directory of the FreeTAKHub-Installation
repository:
cd FreeTAKHub-Installation
If you have previously cloned the repository, update the repository:
git pull
At the top-level directory of the FreeTAKHub-Installation
repository, enter:
./scripts/init.sh
Optional (But Recommended!): Activate the Python virtual environment:
activate
To deactivate the Python virtual environment:
deactivate
To learn more about Python virtual environments and why they are a good idea, see:
https://realpython.com/python-virtual-environments-a-primer/
The manual installation allows more control.
In the console, enter:
sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository --y --update ppa:ansible/ansible
sudo apt install -y ansible
Go to the top-level directory of the FreeTAKHub-Installation
repository:
cd ~/FreeTAKHub-Installation
Run the Ansible playbook to install FreeTAKServer and components:
sudo ansible-playbook install_all.yml
Open a web browser to:
http://<YOUR_IP_ADDRESS>:5000/
- login with your credentials
- immediately change the password
- check whether services are OK (blue)
- connect a client to the server
- click on the WEBMAP button
- confirm the client is connected in the WEBMAP
Open a web browser to:
http://<YOUR_IP_ADDRESS>:9997/v1/config/get
Confirm the configuration (which is in json
format):
{
"logLevel": "info",
"logDestinations": [
"stdout"
],
"logFile": "rtsp-simple-server.log",
"readTimeout": "10s",
"writeTimeout": "10s",
"readBufferCount": 512,
"api": true,
"apiAddress": "<YOUR_IP_ADDRESS>: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 web browser to:
http://<YOUR_IP_ADDRESS>:1880/
Confirm you see a login prompt.
This installation has only been tested on Ubuntu 20.04.
Other operating systems may work, but are untested.
The later executions will require admin privileges.
Create an adminuser first:
sudo adduser adminuser
Add passwordless to adminuser.
First type:
sudo visudo
Then add at the bottom:
adminuser ALL=(ALL) NOPASSWD: ALL
To save and quit in the nano
editor:
- Press
CTRL + O
thenENTER
to save. - Then press
CTRL + X
to exit.
In the Ubuntu console:
sudo apt update
sudo apt install -y software-properties-common gnupg curl git
sudo add-apt-repository -y --update ppa:ansible/ansible
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt install -y ansible terraform
Go to the home directory:
cd ~
git clone https://github.com/FreeTAKTeam/FreeTAKHub-Installation.git
Go to the FreeTAKTeam/FreeTAKHub-Installation
directory:
cd FreeTAKTeam/FreeTAKHub-Installation
For the default, enter (and keep pressing enter):
ssh-keygen
Print out the public key for the next step.
If you did the default, the command will be:
cat ~/.ssh/id_rsa.pub
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 init
Then apply:
terraform apply
You 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/adminuser/.ssh/id_rsa
Enter a value: /home/adminuser/.ssh/id_rsa