Skip to content

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
or
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.

Docker Hub Page

https://hub.docker.com/r/freetakteam/freetakserver