- CPU: 4 cores
- RAM: 8GB
- Storage: 50GB
- OS: Ubuntu 22.04 LTS (recommended) or similar Linux distribution
- CPU: 8+ cores
- RAM: 16GB+
- Storage: 100GB+ SSD
- Network: 100Mbps+ connection
- Docker 24.0+
- Docker Compose 2.0+
- Python 3.11+
- Node.js 18+
- Ansible 2.15+
- Terraform 1.5+ (for cloud deployments)
This is the fastest way to get started with OTG-TAK.
-
Install Docker and Docker Compose
# Install Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # Install Docker Compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
-
Clone the repository
git clone https://github.com/cywf/otg-tak.git cd otg-tak -
Configure environment
cp .env.example .env nano .env # Edit with your configuration -
Start services
docker-compose up -d
-
Verify installation
docker-compose ps curl http://localhost:8000/health
-
Access the dashboard
- Open browser: http://localhost:3000
For development or customization purposes.
-
Install Python dependencies
cd backend python3 -m venv venv source venv/bin/activate pip install -r ../requirements.txt
-
Initialize database
mkdir -p data python -c "from app.core.database import init_db; import asyncio; asyncio.run(init_db())" -
Start backend server
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
-
Install Node.js dependencies
cd frontend npm install -
Start development server
npm run dev
-
Prepare target server
- Ubuntu 22.04 LTS with SSH access
- Sudo privileges
- Python 3 installed
-
Configure Ansible inventory
cd ansible nano inventoryAdd your server:
[tak_servers] your-server.com ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/id_rsa
-
Run deployment playbooks
# Test connectivity ansible all -m ping # Install TAK Server ansible-playbook playbooks/install-tak-server.yml # Harden security ansible-playbook playbooks/security-hardening.yml # Setup networking ansible-playbook playbooks/setup-networking.yml # Setup Traefik ansible-playbook playbooks/setup-traefik.yml # Setup MediaMTX (optional) ansible-playbook playbooks/setup-mediamtx.yml
-
Configure AWS credentials
export AWS_ACCESS_KEY_ID="your-access-key" export AWS_SECRET_ACCESS_KEY="your-secret-key" export AWS_DEFAULT_REGION="us-east-1"
-
Create Terraform variables
cd terraform cat > terraform.tfvars <<EOF aws_region = "us-east-1" project_name = "otg-tak" environment = "prod" ssh_key_name = "your-ssh-key-name" tak_instance_type = "t3.large" EOF
-
Deploy infrastructure
terraform init terraform plan terraform apply
-
Get server IP
terraform output tak_server_public_ip
-
Configure and deploy application
- Update Ansible inventory with new server IP
- Run Ansible playbooks as shown above
# Check backend
curl http://localhost:8000/health
# Check frontend
curl http://localhost:3000
# Check TAK server (if deployed)
netstat -tulpn | grep 8089- Access the dashboard at http://localhost:3000
- Navigate to Deployment page
- Create a new deployment with your desired configuration
- Monitor deployment progress
- Navigate to QR Generator page
- Enter TAK server details
- Generate QR code
- Distribute to ATAK/iTAK clients
The security monitoring is automatically configured via Ansible. Check logs:
# View Lynis audit results
sudo cat /var/log/lynis-audit.log
# Check fail2ban status
sudo fail2ban-client status
# View firewall rules
sudo ufw status verbose# Check logs
docker-compose logs backend
# Verify database
ls -la data/
# Check port availability
sudo netstat -tulpn | grep 8000# Check logs
docker-compose logs frontend
# Clear cache
cd frontend
rm -rf node_modules
npm install# Check Ansible logs
ansible-playbook playbooks/install-tak-server.yml -vvv
# Verify SSH connectivity
ansible all -m ping
# Check target server logs
ssh user@server "sudo journalctl -u tak -n 50"# Check Traefik logs
sudo journalctl -u traefik -n 100
# Verify DNS is pointing to your server
dig your-domain.com
# Manually test Let's Encrypt
sudo certbot certonly --standalone -d your-domain.comcd otg-tak
git pull
docker-compose down
docker-compose pull
docker-compose up -d# Backend
cd backend
source venv/bin/activate
pip install -r ../requirements.txt --upgrade
sudo systemctl restart otg-tak-backend
# Frontend
cd frontend
npm install
npm run build
sudo systemctl restart otg-tak-frontend# Backup database
cp data/otg-tak.db data/otg-tak.db.backup
# Backup configuration
tar -czf otg-tak-config-backup.tar.gz .env ansible/inventory terraform/*.tfvars
# Backup data packages
tar -czf otg-tak-data-backup.tar.gz data/packages data/notes# Restore database
cp data/otg-tak.db.backup data/otg-tak.db
# Restore configuration
tar -xzf otg-tak-config-backup.tar.gz
# Restore data
tar -xzf otg-tak-data-backup.tar.gz- Configure your first deployment
- Generate QR codes for clients
- Set up POI tracking
- Create data packages
- Monitor server status
For more information, see: