generated from oci/template
rebase off official files... mostly
This commit is contained in:
parent
c772f0ca99
commit
9749f2206e
7 changed files with 554 additions and 0 deletions
108
README.md
Normal file
108
README.md
Normal file
|
@ -0,0 +1,108 @@
|
|||
# TAK Server Docker Setup
|
||||
|
||||
A self-contained Docker setup for TAK Server that automatically extracts and configures from the release files.
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. **Build the Docker image:**
|
||||
```bash
|
||||
./build.sh
|
||||
```
|
||||
|
||||
2. **Configure environment variables:**
|
||||
Edit `EDIT_ME.env` and fill in the required values:
|
||||
```bash
|
||||
# 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'
|
||||
```
|
||||
|
||||
3. **Start the services:**
|
||||
```bash
|
||||
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 image
|
||||
- `docker-compose.yml` - Orchestration with PostgreSQL database
|
||||
- `EDIT_ME.env` - Environment variables configuration
|
||||
- `build.sh` - Build script
|
||||
- `scripts/docker_entrypoint.sh` - Main entrypoint with extraction and startup logic
|
||||
- `scripts/coreConfigEnvHelper.py` - Configuration helper
|
||||
|
||||
## Environment Variables
|
||||
|
||||
### Required
|
||||
- `POSTGRES_PASSWORD` - Database password
|
||||
- `CA_NAME` - Certificate Authority name
|
||||
- `CA_PASS` - Certificate Authority password
|
||||
- `STATE` - State for certificate generation
|
||||
- `CITY` - City for certificate generation
|
||||
- `ORGANIZATION` - Organization for certificate generation
|
||||
- `ORGANIZATIONAL_UNIT` - Organizational unit for certificate generation
|
||||
- `TAKSERVER_CERT_PASS` - TAK Server certificate password
|
||||
- `ADMIN_CERT_NAME` - Admin username
|
||||
- `ADMIN_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 name
|
||||
- `POSTGRES_USER=martiuser` - Database user
|
||||
- `POSTGRES_URL=jdbc:postgresql://takdb:5432/cot` - Database URL
|
||||
|
||||
## Ports
|
||||
|
||||
- `8443` - HTTPS API
|
||||
- `8444` - Certificate enrollment
|
||||
- `8446` - Federation
|
||||
- `8089` - Web interface
|
||||
- `9000` - Messaging
|
||||
- `9001` - Streaming
|
||||
|
||||
## Volumes
|
||||
|
||||
- `takserver_data` - TAK Server data (logs, certs, config)
|
||||
- `takdb_data` - PostgreSQL data
|
||||
|
||||
## What the entrypoint does
|
||||
|
||||
1. **Extract TAK Server** - Automatically extracts from `/takserver-release/` if not already done
|
||||
2. **Validate environment** - Checks all required environment variables
|
||||
3. **Initialize directories** - Creates necessary data directories
|
||||
4. **Generate certificates** - Creates CA, server, and admin certificates if needed
|
||||
5. **Configure TAK Server** - Updates CoreConfig.xml with environment variables
|
||||
6. **Initialize database** - Waits for database and runs schema setup
|
||||
7. **Start services** - Launches all TAK Server services in correct order
|
||||
8. **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:
|
||||
|
||||
1. Start the container once to generate initial files
|
||||
2. Stop the container
|
||||
3. Edit files in the `takserver_data` volume
|
||||
4. Restart the container
|
||||
|
||||
The entrypoint will preserve existing configuration files and only regenerate what's missing.
|
Loading…
Add table
Add a link
Reference in a new issue