Install
The official Docker image for FreeTAKServer.
Usage
When using this docker container we suggest
that you use the --restart unless-stopped
flag as shown in the examples.
This will ensure that the service automatically starts with the host
and will restart if it encounters an error and crashes.
The port mappings in the examples are required to make the service accessible to hosts.
All environment variables are optional.
All data is stored in a single directory for ease of persistent data between container versions.
Container Quick-Start
Runtimes
Compatible with Podman or docker runtimes.
Host expectations
FreeTAKServer is server software, and should be treated as such. Installation onto a desktop environment will require additional configuration that is usually only helpful if you want to do development.
The use of Linux is highly encouraged, as this is the industry standard host OS for containers.
YOU CANNOT USE DOCKER DESKTOP ON YOUR WINDOWS PC. Docker Desktop does not provide the ability to use bind-mounted volumes, which are required in this iteration to allow the server operator to easily change the configuration files.
Container Repository
Please find all of our container images on the GitHub Container Repository.
You can obtain the latest images of the server and web UI by running the following commands. Please note the use of GHCR instead of dockerhub, and adjust accordingly.
Setup
Installation Directory
A directory in which to store configuration and database files is required. Please ensure the permissions for this directory
allow container runtimes full RWX
access recursively, and if using a selinux enabled OS, ensure the context is set for containers.
For more information on this process, visit your OS provided documentation.
Compose
A sample compose file
is provided to speed up your setup. If you do not have any other compose files, then this can be placed in the same directory
created earlier, and renamed to compose.yaml
. Ensure that if you do not place the compose file in the same directory that
you update the volume path to the correct directory.
If you expect to run these images as part of a larger file, then you can use the sample compose file as sensible defaults and append to your pre-existing compose file.
Once all the directories and files are set, both components can be activated by running
podman-compose up -d
Or for docker runtime users
docker compose up -d
Configuration
On first run, the appropriate configuration files will be created in the indicated directory.
From this point, you should stop the containers before editing the configuration files.
podman-compose down
docker compose down
From this point, please follow the Linux installation guide for information regarding the configuration files.
Persistent Data
All persistent data is stored to /data and may be volume mounted. The host volume needs to be owned by user and group 1000.
Ports
The docker image runs the ports on the same defaults as FreeTAKServer.
You can use the -e
flag to map these ports to different ports
or to run multiple FreeTAKServer's concurrently on the same host.
Environment Variables
All environment variables will apply to FTS. However, these are some additional ones specific to this docker image.
Variable Name | Definition |
---|---|
FTS_CONNECTION_MESSAGE | The text of the message sent upon connection |
FTS_COT_TO_DB | A boolean indicating ? |
APPPORT | Allows hosting FTS UI from a different port |
APIIP | Allows the FTS UI to specify a different API port. Defaults the IP environment variable |
APIPORT | Allows the FTS UI to specify a different API port |
APIPROTOCOL | Allows the FTS UI to specify a different API protocol |
WEBMAPIP | Allows the FTS UI to specify a different webmap IP |
WEBMAPPORT | Allows the FTS UI to specify a different webmap port |
WEBMAPPROTOCOL | Allows the FTS UI to specify a different webmap protocol |
Storage
All data in this container is stored in /data
.
This directory will need to be stored to a volume if you wish to persist data between updates.
If you use a storage volume you may need to inspect the docker volume to find where it saved the data.
docker inspect fts_data
````
It will return something similar to this:
```json
[
{
"CreatedAt": "2020-11-12T03:32:53Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/fts_data/_data",
"Name": "fts_data",
"Options": {},
"Scope": "local"
}
]
The docker-compose.yml
example utilizes a bind mount to ./data
in the same directory.
Additional Architectures
Currently, the container is being cross compiled for linux/amd64
, linux/arm64
and linux/arm/v7
.
If additional processor architectures are needed please open an issue and request a new one.