clense for rebuild

This commit is contained in:
Merith-TK 2025-07-05 16:14:58 +01:00
parent 40fc5d810a
commit c772f0ca99
13 changed files with 19 additions and 1557 deletions

224
README.md
View file

@ -1,224 +0,0 @@
# TAK Server Hybrid Docker Container
This Docker container combines both the TAK server and PostgreSQL database functionality into a single container. It automatically detects and uses the latest TAK server release from the mounted volume.
## ⚠️ IMPORTANT: TAK Server Files Required
**This container does NOT include TAK server files due to licensing restrictions.** You must provide your own TAK server release files obtained through proper channels:
1. Download TAK server files from the official TAK.gov website
2. Obtain through proper military/government channels
3. Purchase through authorized distributors
**You must have a valid license to use TAK server software.**
## Prerequisites
1. **Valid TAK Server License**: You must have proper licensing/authorization to use TAK server
2. **TAK Server Files**: Download `takserver-docker-X.Y-RELEASE-Z.zip` from official sources
3. **Docker & Docker Compose**: Installed on your system
## Setup Instructions
### Step 1: Obtain TAK Server Files
- Download the TAK server Docker release from official channels
- Place the `takserver-docker-X.Y-RELEASE-Z.zip` file in the `takserver-release/` directory
- The container will automatically detect and use the latest version
### Step 2: File Structure
```
/docker/services/tak/
├── Dockerfile # Hybrid container
├── entrypoint.sh # Main container entrypoint
├── scripts/ # Helper scripts
│ ├── tak-version.sh # TAK version detection
│ ├── db-setup.sh # Database setup
│ └── healthcheck.sh # Health monitoring
├── docker-compose.yml # Docker Compose configuration
├── README.md # This documentation
├── build.sh # Build script
├── validate.sh # Setup validation script
├── original-files/ # Original Dockerfile templates
└── takserver-release/ # Place your TAK server files here
└── takserver-docker-X.Y-RELEASE-Z.zip # Your TAK server files
```
## Features
- **Hybrid Architecture**: Combines TAK server and PostgreSQL database in one container
- **Automatic Version Detection**: Finds the latest `takserver-docker-X.Y-RELEASE-Z.zip` file
- **Semantic Versioning**: Uses semantic version sorting to determine the latest release
- **Complete Setup**: Includes PostGIS extension for spatial data support
- **Runtime TAK Setup**: TAK server files are processed at container startup (licensing compliant)
- **User-Provided Files**: No TAK server files included in the image
## Usage
### Option 1: Using Docker Compose (Recommended)
**First, ensure you have TAK server files in the correct directory:**
```bash
# Verify your TAK server files
ls -la takserver-release/
# Should show: takserver-docker-X.Y-RELEASE-Z.zip
# Build and start the hybrid container
docker-compose up -d
# View logs to monitor startup
docker-compose logs -f tak-hybrid
# Stop the container
docker-compose down
```
### Option 2: Using Docker directly
```bash
# Build the image
docker build -t tak-hybrid .
# Run the container (replace /path/to/tak/files with your actual path)
docker run -d \
--name tak-hybrid \
-p 5432:5432 \
-p 8080:8080 \
-p 8443:8443 \
-p 8444:8444 \
-v /path/to/tak/files:/takserver-zip:ro \
-v tak-data:/opt/tak/data \
-v tak-logs:/opt/tak/logs \
tak-hybrid
```
## TAK Server Release Files
Place your TAK server release files in the `takserver-release/` directory. The container will automatically detect and use the latest version based on semantic versioning.
**Supported filename format**: `takserver-docker-X.Y-RELEASE-Z.zip`
Examples:
- `takserver-docker-5.4-RELEASE-19.zip`
- `takserver-docker-5.5-RELEASE-1.zip`
- `takserver-docker-6.0-RELEASE-5.zip`
## Ports
- **5432**: PostgreSQL database
- **8080**: TAK server web interface (HTTP)
- **8443**: TAK server web interface (HTTPS)
- **8444**: TAK server certificate enrollment
- **8446**: TAK server API
## Database Configuration
The container automatically sets up PostgreSQL with:
- Database: `cot`
- User: `martiuser`
- Password: `password`
- PostGIS extension enabled
## Environment Variables
The following environment variables can be customized in the docker-compose.yml:
- `POSTGRES_DB`: Database name (default: cot)
- `POSTGRES_USER`: Database user (default: martiuser)
- `POSTGRES_PASSWORD`: Database password (default: password)
## Helper Scripts
The container includes several helper scripts for management and troubleshooting:
### TAK Version Detection (`/scripts/tak-version.sh`)
```bash
# Find latest TAK release
docker exec tak-hybrid /scripts/tak-version.sh /takserver-zip latest
# List all available releases
docker exec tak-hybrid /scripts/tak-version.sh /takserver-zip list
# Get version from specific file
docker exec tak-hybrid /scripts/tak-version.sh /takserver-zip version /takserver-zip/takserver-docker-5.4-RELEASE-19.zip
```
### Database Setup (`/scripts/db-setup.sh`)
```bash
# Full database setup
docker exec tak-hybrid /scripts/db-setup.sh setup
# Test database connection
docker exec tak-hybrid /scripts/db-setup.sh test
# Print database configuration
docker exec tak-hybrid /scripts/db-setup.sh config
```
### Health Monitoring (`/scripts/healthcheck.sh`)
```bash
# Run all health checks
docker exec tak-hybrid /scripts/healthcheck.sh all
# Check specific components
docker exec tak-hybrid /scripts/healthcheck.sh postgres
docker exec tak-hybrid /scripts/healthcheck.sh database
docker exec tak-hybrid /scripts/healthcheck.sh tak-process
```
## Troubleshooting
### Check container logs
```bash
docker-compose logs tak-hybrid
```
### Access the container shell
```bash
docker-compose exec tak-hybrid /bin/bash
```
### Verify PostgreSQL is running
```bash
docker-compose exec tak-hybrid pg_isready -U martiuser -d cot
```
### Check TAK server status
```bash
docker-compose exec tak-hybrid ps aux | grep tak
```
## Error Handling
The container includes comprehensive error checking:
### Missing TAK Server Files
```
ERROR: No TAK server files found!
Please mount a directory containing takserver-docker-X.Y-RELEASE-Z.zip files to /takserver-zip
```
**Solution**: Ensure you have properly mounted the directory containing your TAK server files.
### Invalid File Format
```
ERROR: No takserver-docker-X.Y-RELEASE-Z.zip file found in /takserver-zip/
Please ensure you have a file matching the pattern: takserver-docker-X.Y-RELEASE-Z.zip
```
**Solution**: Verify your TAK server file follows the correct naming convention.
### Licensing Compliance
This container design ensures license compliance by:
- **Not redistributing TAK server files**
- **Requiring users to provide their own licensed files**
- **Processing files only at runtime**
- **Clear documentation of licensing requirements**
## Legal Notice
TAK server software is subject to export control regulations and licensing requirements. Users are responsible for:
- Obtaining proper licenses/authorization
- Compliance with export control laws
- Following all applicable regulations
- Ensuring authorized use only
This container does not include or redistribute any TAK server software files.