Skip to main content
This guide covers deploying FreeTAKServer using Docker containers, including basic deployment, Docker Compose orchestration, and production configurations.
Docker deployment is currently not officially supported by the FTS team and should be considered experimental. You may encounter issues that are not present in standard installations.

Overview

Docker deployment provides:
  • Isolated Environment: FTS runs in a container separate from host system
  • Easy Updates: Pull new images and restart containers
  • Portability: Run on any system with Docker installed
  • Reproducibility: Consistent environment across deployments
  • Volume Persistence: Data survives container restarts

Prerequisites

  • Docker Engine 20.10 or newer
  • Docker Compose V2
  • At least 2GB available RAM
  • 10GB available disk space
  • Ports 8080-8089, 9000, 19023 available

Quick Start

Docker Compose Deployment

Basic Compose Configuration

The repository includes compose.yaml:

Deploy with Compose

Production Configuration

Environment Variables

Create .env file for production settings:
Update compose.yaml to use .env:

Persistent Storage

Mount specific directories for better organization:

Resource Limits

Set container resource limits:

Certificate Management in Docker

Generate Certificates

Extract Client Packages

Mount External Certificates

Use pre-generated certificates:

Networking

Port Mapping Reference

Custom Port Mapping

Map to different host ports:

Bridge Network

Create custom Docker network:

Docker Run Options

Background Daemon

Run container as daemon:

Container Management

Data Backup and Restore

Backup Volume Data

Restore from Backup

Export Database

Troubleshooting

Container Won’t Start

Common issues:
  1. Port already in use
  2. Volume permissions
  3. Image not built

View Container Logs

Debug Container

Performance Issues

Performance tuning:
  1. Increase worker threads
  2. Reduce main loop delay
  3. Allocate more resources
  4. Use host networking (Linux only)

Multi-Container Setup

Separate Database Container

Run PostgreSQL in separate container (future FTS versions):

Docker Image Updates

Pull Latest Changes

Version Pinning

Pin to specific FTS version:

Next Steps