generated from oci/template
No description
scripts | ||
.gitignore | ||
build.sh | ||
docker-compose.yml | ||
Dockerfile | ||
EDIT_ME.env | ||
README.md |
TAK Server Docker Setup
A self-contained Docker setup for TAK Server that automatically extracts and configures from the release files.
Quick Start
-
Build the Docker image:
./build.sh
-
Configure environment variables: Edit
EDIT_ME.env
and fill in the required values:# Required fields to fill in: POSTGRES_PASSWORD='your_db_password' CA_NAME='your_ca_name' CA_PASS='your_ca_password' STATE='your_state' CITY='your_city' ORGANIZATION='your_organization' ORGANIZATIONAL_UNIT='your_org_unit' TAKSERVER_CERT_PASS='your_takserver_cert_password' ADMIN_CERT_NAME='admin_username' ADMIN_CERT_PASS='admin_password'
-
Start the services:
docker-compose up
Features
- Self-contained: Automatically extracts TAK Server from release files
- Single image: Everything built into one Docker image (plus database)
- Environment driven: All configuration through environment variables
- Automatic setup: Certificates, database schema, and admin user created automatically
- Persistent data: Docker volumes for data persistence
- Simple deployment: Just build and run
Structure
Dockerfile
- Self-contained TAK Server imagedocker-compose.yml
- Orchestration with PostgreSQL databaseEDIT_ME.env
- Environment variables configurationbuild.sh
- Build scriptscripts/docker_entrypoint.sh
- Main entrypoint with extraction and startup logicscripts/coreConfigEnvHelper.py
- Configuration helper
Environment Variables
Required
POSTGRES_PASSWORD
- Database passwordCA_NAME
- Certificate Authority nameCA_PASS
- Certificate Authority passwordSTATE
- State for certificate generationCITY
- City for certificate generationORGANIZATION
- Organization for certificate generationORGANIZATIONAL_UNIT
- Organizational unit for certificate generationTAKSERVER_CERT_PASS
- TAK Server certificate passwordADMIN_CERT_NAME
- Admin usernameADMIN_CERT_PASS
- Admin password
Optional (with defaults)
CONFIG_MAX_HEAP=512
- Config service heap size (MB)MESSAGING_MAX_HEAP=2048
- Messaging service heap size (MB)API_MAX_HEAP=1024
- API service heap size (MB)PLUGIN_MANAGER_MAX_HEAP=512
- Plugin Manager heap size (MB)POSTGRES_DB=cot
- Database namePOSTGRES_USER=martiuser
- Database userPOSTGRES_URL=jdbc:postgresql://takdb:5432/cot
- Database URL
Ports
8443
- HTTPS API8444
- Certificate enrollment8446
- Federation8089
- Web interface9000
- Messaging9001
- Streaming
Volumes
takserver_data
- TAK Server data (logs, certs, config)takdb_data
- PostgreSQL data
What the entrypoint does
- Extract TAK Server - Automatically extracts from
/takserver-release/
if not already done - Validate environment - Checks all required environment variables
- Initialize directories - Creates necessary data directories
- Generate certificates - Creates CA, server, and admin certificates if needed
- Configure TAK Server - Updates CoreConfig.xml with environment variables
- Initialize database - Waits for database and runs schema setup
- Start services - Launches all TAK Server services in correct order
- Create admin user - Adds the admin user after services are ready
Manual file editing
If you need to customize CoreConfig.xml or other configuration files beyond what environment variables provide, you can:
- Start the container once to generate initial files
- Stop the container
- Edit files in the
takserver_data
volume - Restart the container
The entrypoint will preserve existing configuration files and only regenerate what's missing.