Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/FreeTAKTeam/FreeTakServer/llms.txt

Use this file to discover all available pages before exploring further.

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
  • Port: 8089 (default SSL CoT port)
  • Use case: Production deployments
  • Security: Encrypted traffic with certificate validation
  • Requirements: Server and client certificates
The easiest way to connect clients is using a configuration data package generated by FTS.
1
Generate Client Certificate
2
FreeTAKServer includes a certificate generation tool. Connect to your server and run:
3
python3 -m FreeTAKServer.core.util.certificate_generation
4
Or use the integrated certificate manager:
5
Python Script
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
CLI
# 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')"
6
Certificates are stored in /opt/fts/certs/ by default.
7
Generate Data Package
8
Create a connection data package for your client:
9
ATAK/ITAK Package
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"
)
WinTAK Package
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"
)
10
The data package (.zip file) will be created in /opt/fts/certs/clientPackages/.
11
Import on ATAK
12
  • 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”
  • 13
    Import on WinTAK
    14
  • 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”
  • 15
    Import on ITAK
    16
  • 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:
    1
    Configure ATAK Manually
    2
  • Open ATAK
  • Go to Settings → Network Preferences → Network Connections
  • Tap the + button to add a new connection
  • Enter connection details:
  • 3
    Non-SSL
    Description: FreeTAKServer
    Address: your.server.ip
    Port: 8087
    Protocol: TCP
    
    SSL
    Description: FreeTAKServer SSL
    Address: your.server.ip
    Port: 8089
    Protocol: SSL
    Use Authentication: Yes
    Certificate: (select imported .p12 file)
    Certificate Password: your_password
    
    4
  • Tap Save
  • Enable the connection
  • 5
    Configure WinTAK Manually
    6
  • Open WinTAK
  • Go to Settings → Network Connections
  • Click Add
  • Configure:
  • 7
    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
    
    8
  • Click OK and Apply
  • 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

    1. Send a chat message to “All Chat Rooms”
    2. Drop a marker on the map
    3. 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:
    1. Verify client sent presence CoT (check server logs)
    2. Ensure clients are on same channel/network
    3. Check server routing configuration
    4. 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

    ServiceDefault PortEnvironment VariableDescription
    CoT Service8087FTS_COT_PORTNon-SSL CoT traffic
    SSL CoT Service8089FTS_SSLCOT_PORTSSL-encrypted CoT traffic
    Data Package8080FTS_DP_ADDRESSHTTP data package service
    SSL Data Package8443FTS_HTTPS_TAK_API_PORTHTTPS data package service
    API19023FTS_API_PORTREST 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

    Build docs developers (and LLMs) love