This guide walks you through connecting ATAK (Android), WinTAK (Windows), and ITAK (iOS) clients to your FreeTAKServer instance.
Prerequisites
Before connecting clients, ensure:
- FreeTAKServer is running and accessible
- You know your server’s IP address or hostname
- You have generated client certificates (if using SSL)
- Firewall allows connections on required ports
Understanding Connection Types
FreeTAKServer supports two connection types:
Non-SSL Connection
- Port: 8087 (default CoT port)
- Use case: Testing, internal networks
- Security: Unencrypted traffic
SSL Connection (Recommended)
- Port: 8089 (default SSL CoT port)
- Use case: Production deployments
- Security: Encrypted traffic with certificate validation
- Requirements: Server and client certificates
Method 1: Using Data Package (Recommended)
The easiest way to connect clients is using a configuration data package generated by FTS.
Generate Client Certificate
FreeTAKServer includes a certificate generation tool. Connect to your server and run:
python3 -m FreeTAKServer.core.util.certificate_generation
Or use the integrated certificate manager:
from FreeTAKServer.core.util.certificate_generation import AtakOfTheCerts
# Generate certificates for a new client
with AtakOfTheCerts(pwd="your_cert_password") as cert_gen:
cert_gen.generate_ca() # Only needed first time
cert_gen.bake("username", "user") # Replace 'username' with actual username
# Using the built-in certificate tool
python3 -c "from FreeTAKServer.core.util.certificate_generation import AtakOfTheCerts; \
with AtakOfTheCerts('password') as c: c.generate_ca(); c.bake('Client', 'user')"
Certificates are stored in /opt/fts/certs/ by default.
Create a connection data package for your client:
from FreeTAKServer.core.util.certificate_generation import generate_standard_zip
generate_standard_zip(
server_address="your.server.ip",
user_filename="Client.p12",
cert_password="password",
ssl_port="8089"
)
from FreeTAKServer.core.util.certificate_generation import generate_wintak_zip
generate_wintak_zip(
server_address="your.server.ip",
user_filename="Client.p12",
cert_password="password",
ssl_port="8089"
)
The data package (.zip file) will be created in /opt/fts/certs/clientPackages/.
Transfer the .zip file to your Android device
Open ATAK
Tap the Import Manager (three dots menu → Import Manager)
Navigate to the .zip file and select it
ATAK will import the certificates and connection settings
Go to Settings → Network Preferences → Network Connections
Enable the FreeTAKServer connection
Verify connection status shows “Connected”
Copy the .zip file to your Windows machine
Open WinTAK
Click Import from the menu
Select the .zip data package
WinTAK will extract certificates to the appropriate location
Go to Settings → Network Connections
Enable the FreeTAKServer connection
Check the status bar for “Connected”
Transfer the .zip file to your iOS device (via AirDrop, email, etc.)
Open the file in ITAK (Share → Open in ITAK)
ITAK will import the configuration automatically
Go to Settings → Network
Enable the FreeTAKServer connection
Verify connection in status bar
Method 2: Manual Configuration
If you prefer to configure manually or can’t use data packages:
Open ATAK
Go to Settings → Network Preferences → Network Connections
Tap the + button to add a new connection
Enter connection details:
Description: FreeTAKServer
Address: your.server.ip
Port: 8087
Protocol: TCP
Description: FreeTAKServer SSL
Address: your.server.ip
Port: 8089
Protocol: SSL
Use Authentication: Yes
Certificate: (select imported .p12 file)
Certificate Password: your_password
Tap Save
Enable the connection
Open WinTAK
Go to Settings → Network Connections
Click Add
Configure:
Description: FreeTAKServer
Enabled: Checked
Address: your.server.ip:8089:ssl
Preferred: Checked
SSL Settings:
Use SSL: Yes
Client Certificate: Browse to .p12 file
Password: your_password
Server Certificate: Browse to server .p12 file
Password: your_password
Connection Verification
Check Server Logs
Monitor FreeTAKServer logs for connection events:
tail -f /opt/fts/Logs/FTS.log | grep -i "connection"
You should see entries like:
Handling connection data
client update has been sent through queue
Verify in ATAK
- Check the Network Status widget
- Look for green indicator next to your connection
- Your callsign should appear on other connected clients’ maps
Test Communication
- Send a chat message to “All Chat Rooms”
- Drop a marker on the map
- Other connected clients should receive both
Troubleshooting
Connection Refused
Ensure the CoT ports are open in your firewall:# For firewalld
sudo firewall-cmd --permanent --add-port=8087/tcp
sudo firewall-cmd --permanent --add-port=8089/tcp
sudo firewall-cmd --reload
# For ufw
sudo ufw allow 8087/tcp
sudo ufw allow 8089/tcp
Certificate Errors
Common SSL issues:
- Certificate expired: Regenerate certificates with longer expiry
- Wrong password: Verify certificate password matches configuration
- Missing CA: Ensure server certificate package includes CA certificate
# Generate certificates with 2-year expiry
with AtakOfTheCerts() as cert:
cert.bake("username", "user", expiry_time_secs=63072000)
Client Not Visible
If clients connect but don’t see each other:
- Verify client sent presence CoT (check server logs)
- Ensure clients are on same channel/network
- Check server routing configuration
- Verify no IP filtering is active
iOS ITAK Specific Issues
- ITAK may require certificates in specific format
- Ensure background location permissions are enabled
- Check iOS VPN settings don’t interfere
Configuration Reference
Server Ports
| Service | Default Port | Environment Variable | Description |
|---|
| CoT Service | 8087 | FTS_COT_PORT | Non-SSL CoT traffic |
| SSL CoT Service | 8089 | FTS_SSLCOT_PORT | SSL-encrypted CoT traffic |
| Data Package | 8080 | FTS_DP_ADDRESS | HTTP data package service |
| SSL Data Package | 8443 | FTS_HTTPS_TAK_API_PORT | HTTPS data package service |
| API | 19023 | FTS_API_PORT | REST API |
Client Certificate Paths
FreeTAKServer stores certificates in:
/opt/fts/certs/
├── ca.pem # Certificate Authority
├── ca.key # CA private key
├── server.pem # Server certificate
├── server.key # Server private key
├── server.p12 # Server PKCS12 bundle
├── Client.p12 # Default client certificate
└── clientPackages/ # Generated data packages
└── username.zip
Public Server Connection
To connect to the FreeTAKTeam public server for testing:
Server Details:
- Address:
137.184.101.250
- Port:
8087
- Protocol: TCP (non-SSL)
Configuration Package:
Download the pre-configured data package from:
https://drive.google.com/file/d/1IK1LfPN13EWikHaMyOuDDwIerNGz-Wli/view
Import using ATAK’s Import Manager.
The public server is for testing only. Do not use for sensitive operations.
Next Steps