Overview
FreeTAKServer federation provides:- Server-to-Server Communication: Connect FTS instances across different networks
- Distributed Operations: Support geographically dispersed teams
- Load Balancing: Distribute client connections across servers
- Resilience: Maintain operations if one server goes down
- Data Sharing: Selective CoT data exchange between federated servers
Federation Architecture
Prerequisites
Before setting up federation:- Two or more FreeTAKServer instances installed and running
- Network connectivity between servers (port 9000 accessible)
- SSL certificates configured on all servers
- Server IP addresses or hostnames known
Quick Start
# On Server A, create federation to Server B
curl -X POST http://localhost:19023/api/federation/connect \
-H "Content-Type: application/json" \
-d '{
"address": "server-b.example.com",
"port": 9000,
"initiator": "server_a_hq_node",
"protocol": "ssl"
}'
Federation Configuration Reference
Configuration Parameters
| Parameter | Default | Description |
|---|---|---|
FTS_FED_PORT | 9000 | Port for federation connections |
FTS_NODE_ID | auto-generated | Unique identifier for this server |
FTS_FED_PASSWORD | ”defaultpass” | Password for federation authentication |
FTS_FEDERATION_CERTDIR | /opt/fts/certs/server.pem | Federation SSL certificate |
FTS_FEDERATION_KEYDIR | /opt/fts/certs/server.key | Federation SSL key |
FTS_FEDERATION_KEYPASS | ”defaultpass” | Password for federation key |
Environment Variables
FromMainConfig.py:
Federation Security
SSL/TLS for Federation
Federation uses the same SSL certificates as the main server:Authentication
Federation connections authenticate using:- SSL Certificate Validation: Mutual TLS verification
- Node ID: Unique server identifier
- Federation Password: Shared secret for additional security
Firewall Configuration
Open Federation Port
Restrict to Specific IPs
For enhanced security, allow only known federation servers:Docker Federation Setup
Docker Compose Configuration
Establish Federation Between Containers
Federation Data Flow
CoT Routing
When federation is active:- Client sends CoT to local server
- Local server processes and stores CoT
- CoT is forwarded to federated servers
- Federated servers distribute to their clients
- All clients across federation see the CoT
Selective Filtering
Configure which CoT types are federated (future feature):Troubleshooting
Federation Won’t Connect
Common issues:
-
Port not open
-
Certificate mismatch
-
Wrong password
- Verify
FTS_FED_PASSWORDmatches on both servers - Check logs for authentication errors
- Verify
-
Firewall blocking
Check Federation Logs
Verify Federation Component
Check federation service is loaded:Debug Federation Connection
Enable debug logging:Advanced Federation
Multi-Server Federation
Connect more than two servers:Hub-and-Spoke Topology
Central hub server with regional spokes:Persistent Federation
Ensure federation reconnects after restart:Monitoring Federation
Federation Health Check
Metrics Collection
Monitor federation metrics:Next Steps
- Configure SSL for secure federation
- Monitor server performance across federation
- Deploy with Docker for containerized federation
- Set up load balancing with federated servers