A comprehensive mobile solution for automating the deployment and setup of TAK (Team Awareness Kit) Servers with security hardening, networking integration, and tactical operational tools.
- TAK Server Provisioning: Automated setup and configuration
- Dual Deployment Options:
- Local (Bare Metal) deployment
- Cloud deployment using Terraform + Docker containers
- Interactive Setup: Configure deployments through an intuitive dashboard
- Automated Security Hardening: Lynis integration for continuous security scanning
- Firewall Configuration: UFW and fail2ban setup
- Security Monitoring: Cron jobs and Ansible playbooks for automated security audits
- Real-time Alerting: Notification system for security events
- Tailscale Integration: Secure mesh networking
- Zerotier Support: Alternative VPN solution
- Traefik Reverse Proxy: Automated SSL/TLS certificate management
- Multi-network Support: Connect through multiple secure channels
- MediaMTX Server: Real-time ISR (Intelligence, Surveillance, Reconnaissance) feed streaming
- RTSP/HLS/WebRTC Support: Multiple streaming protocols
- Feed Management: Configure and monitor live video feeds
- QR Code Generator: Quick ATAK/iTAK client onboarding
- Batch Generation: Create multiple client configurations
- Secure Configuration: Embedded certificates and credentials
- Data Package Builder: Create and distribute TAK data packages
- Route Package Builder: Design navigation routes with waypoints
- SDR Builder: Surveillance Detection Route planning with threat assessment
- File Converter: Convert between KML and KMZ formats
- POI Tracker: Track Persons of Interest with categories and metadata
- Shared Notepad: Collaborative notes accessible to all TAK clients
- Server Status Dashboard: Real-time system metrics
- Service Health Monitoring: Track all running services
- Resource Utilization: CPU, memory, disk, and network monitoring
- Deployment Progress Tracker: Monitor deployment status in real-time
otg-tak/
├── backend/ # FastAPI backend server
│ ├── app/
│ │ ├── api/ # API endpoints
│ │ ├── core/ # Configuration & database
│ │ ├── models/ # Database models
│ │ └── services/ # Business logic
│ └── main.py
├── frontend/ # React dashboard
│ └── src/
│ ├── components/
│ ├── pages/
│ └── services/
├── ansible/ # Ansible playbooks
│ └── playbooks/
│ ├── install-tak-server.yml
│ ├── security-hardening.yml
│ ├── setup-networking.yml
│ ├── setup-traefik.yml
│ └── setup-mediamtx.yml
├── terraform/ # Cloud infrastructure
│ └── modules/
│ ├── tak-server/
│ ├── networking/
│ └── security/
└── docker-compose.yml
- Docker and Docker Compose
- Python 3.11+
- Node.js 18+
- Ansible (for automation)
- Terraform (for cloud deployment)
-
Clone the repository
git clone https://github.com/cywf/otg-tak.git cd otg-tak -
Configure environment variables
cp .env.example .env # Edit .env with your configuration -
Start with Docker Compose
docker-compose up -d
-
Access the dashboard
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
cd backend
pip install -r ../requirements.txt
uvicorn main:app --reloadcd frontend
npm install
npm run dev- Configure your inventory in
ansible/inventory - Run the deployment playbooks:
cd ansible ansible-playbook playbooks/install-tak-server.yml ansible-playbook playbooks/security-hardening.yml ansible-playbook playbooks/setup-networking.yml ansible-playbook playbooks/setup-traefik.yml
- Configure Terraform variables in
terraform/terraform.tfvars - Deploy infrastructure:
cd terraform terraform init terraform plan terraform apply
POST /api/deployment/create- Create new deploymentGET /api/deployment/status/{id}- Get deployment statusGET /api/deployment/list- List all deployments
POST /api/qr/generate- Generate QR code for clientPOST /api/qr/batch-generate- Batch generate QR codes
POST /api/packages/create- Create data packageGET /api/packages/list- List packagesPOST /api/packages/upload- Upload package file
POST /api/routes/create- Create route packageGET /api/routes/list- List routes
POST /api/sdr/create- Create SDRGET /api/sdr/list- List SDRsGET /api/sdr/{id}- Get SDR details
POST /api/convert/kml-to-kmz- Convert KML to KMZPOST /api/convert/kmz-to-kml- Convert KMZ to KML
GET /api/status/current- Get current server statusGET /api/status/metrics/history- Get historical metricsGET /api/status/services- Get services status
POST /api/poi/create- Create POIGET /api/poi/list- List POIsGET /api/poi/{id}- Get POI detailsPUT /api/poi/{id}- Update POIDELETE /api/poi/{id}- Delete POI
POST /api/notes/create- Create noteGET /api/notes/list- List notesGET /api/notes/{id}- Get note detailsPUT /api/notes/{id}- Update noteDELETE /api/notes/{id}- Delete note
# Database
DATABASE_URL=sqlite:///./data/otg-tak.db
# Security
SECRET_KEY=your-secret-key
# Tailscale
TAILSCALE_AUTH_KEY=your-auth-key
# Zerotier
ZEROTIER_NETWORK_ID=your-network-id
ZEROTIER_API_TOKEN=your-api-token
# TAK Server
TAK_SERVER_DEFAULT_PORT=8089- Lynis Security Auditing: Automated daily security scans
- Fail2ban: Intrusion prevention
- UFW Firewall: Network security
- SSL/TLS: Automatic certificate management with Let's Encrypt
- Encrypted Communications: All TAK traffic encrypted
- Security Event Monitoring: Real-time alerting
Contributions are welcome! Please read our contributing guidelines and submit pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
For issues and questions:
- Open an issue on GitHub
- Contact: support@otg-tak.example.com
graph TD
A[Push Code] --> B[Build Workflow]
B --> C[Test Workflow]
C -->|Fail| D[Auto-Issue Triggered]
C -->|Pass| E[Docker Image Published]
E --> F[README & Mermaid Updated]
- TAK (Team Awareness Kit) community
- FreeTAKServer project for inspiration
- All open-source contributors
Note: This is a development project. Ensure proper security measures are in place before deploying in production environments.
View the Repository Structure for a detailed overview of the project organization.
Visit our comprehensive documentation site: https://cywf.github.io/otg-tak/
The site includes:
- Project Info & Statistics: Repository metrics, language breakdown, and commit activity
- Interactive Visualizer: Mermaid diagrams showing architecture and workflows
- Documentation: Installation guides, project summary, and contribution guidelines
- Development Board: Track issues and project progress
- Discussions: Browse community discussions
All documentation is automatically published to GitHub Pages:
- Edit Markdown Files: Update
INSTALL.md,PROJECT_SUMMARY.md,REPO_STRUCTURE.md, orCONTRIBUTING.mdin the root directory - Add Mermaid Diagrams: Place
.mmdfiles in the/mermaid/directory - Submit Pull Request: Changes will automatically deploy once merged to
main
- Create a
.mmdfile in the/mermaid/directory - Use standard Mermaid syntax (flowchart, sequence, class, etc.)
- The diagram will automatically appear on the Visualizer page
Example:
graph TD
A[Start] --> B[Process]
B --> C[End]
The GitHub Pages site is automatically updated on every push to main:
- Data Collection: CI workflow fetches repository statistics, discussions, and project data using GitHub API
- Build: Astro generates static HTML from React components and Markdown
- Deploy: Built site is deployed to GitHub Pages at
https://cywf.github.io/otg-tak/
Data files are generated by scripts in site/scripts/:
fetch_repo_data.ts→site/public/data/stats.jsonfetch_discussions.ts→site/public/data/discussions.jsonfetch_projects.ts→site/public/data/projects.jsonscan_modules.ts→site/public/data/modules.json