generated from oci/template
No description
|
All checks were successful
Build Docker Image on Commit / build-and-publish (push) Successful in 1m20s
|
||
|---|---|---|
| .forgejo/workflows | ||
| scripts | ||
| .gitignore | ||
| build.sh | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Dockerfile.db | ||
| 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.envand 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_datavolume - Restart the container
The entrypoint will preserve existing configuration files and only regenerate what's missing.