Skip to main content
FreeTAKServer (FTS) is a Python3 implementation of a TAK Server for tactical devices like ATAK, WinTAK, and ITAK. It’s a free and open source solution released under the Eclipse Public License 2.0 (EPL-2.0).

What is FreeTAKServer?

FTS enables TAK clients to connect and share geospatial information, communicate through chat, exchange files, and collaborate in real-time. It’s designed to be cross-platform and can run from multi-node cloud installations on AWS down to Android devices. As a Python-based alternative to the legacy TAK server, FTS provides full server functionality for the TAK ecosystem without licensing restrictions.

Key features

FreeTAKServer supports a comprehensive set of tactical server capabilities:

Web administration

Browser-based management interface for server configuration and monitoring

Federation service

Connect two or more FTS instances to create distributed networks

Data packages

Upload, share, and retrieve data packages across all connected clients

SSL encryption

Secure communications with SSL/TLS encryption support

REST API

Extensive REST API for integrations and custom extensions

COT recording

Store Cursor on Target (COT) events in SQLAlchemy database

Additional capabilities

  • Image transfer and storage
  • Command line interface for server management
  • ExCheck plugin support for task lists (WinTAK and ATAK)
  • KML generation for geospatial data
  • Multi-protocol support (TCP and SSL)

Use cases

Tactical coordination

Connect ATAK clients in the field to share real-time location data, create markers, and coordinate movements. Teams can maintain situational awareness without relying on commercial services.

Emergency response

Emergency services can deploy FTS as a self-contained coordination platform for disaster response, search and rescue operations, or incident management.

Training and simulation

Organizations can set up isolated FTS instances for training exercises without requiring internet connectivity or external infrastructure.

Research and development

Developers can use FTS to build and test TAK integrations, plugins, and custom tactical applications using the open REST API.

Architecture overview

FreeTAKServer follows a Model-View-Controller (MVC) architecture pattern with a modular service-oriented design.

Core architecture

FreeTAKServer/
├── controllers/     # Business logic and service orchestration
├── models/          # COT domain objects and data models
├── views/           # API endpoints and client interfaces
├── services/        # Independent service modules
│   ├── tcp_cot_service/      # TCP-based COT handling
│   ├── ssl_cot_service/      # SSL-encrypted COT handling
│   ├── rest_api_service/     # REST API endpoints
│   ├── http_tak_api_service/ # HTTP TAK API
│   └── https_tak_api_service/# HTTPS TAK API
└── components/      # Pluggable components and extensions

Domain model

FTS uses a Model Driven Architecture (MDA) approach where Cursor on Target (COT) concepts are represented as domain classes generated from UML models. This ensures consistency with TAK protocol specifications.
COT (Cursor on Target) is the core data format used by TAK applications to exchange tactical information including positions, markers, routes, and other geospatial data.

Service architecture

FTS runs multiple independent services that communicate through inter-service communication (ISC) mechanisms:
  • TCP CoT Service: Handles unencrypted client connections on port 8087 (default)
  • SSL CoT Service: Manages encrypted client connections with certificate authentication
  • REST API Service: Provides HTTP REST endpoints for integrations
  • TAK API Services: Implements TAK-compatible HTTP/HTTPS APIs for data packages and missions
  • Federation Services: Manages server-to-server connections

Technology stack

# Built on Flask web framework
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

# Uses DigitalPy framework for service management
from digitalpy.core.main.DigitalPy import DigitalPy

Database layer

FTS uses SQLAlchemy ORM for database operations, supporting:
  • COT event storage and retrieval
  • User authentication and authorization
  • Data package metadata
  • Mission and ExCheck data
  • Client connection tracking

Project status

FreeTAKServer is currently in Production Stage and actively maintained by the FreeTAKTeam. The project has reached version 2.2+ and is deployed in various production environments.
A public FTS instance is available for testing at 137.184.101.250:8087 (TCP). You can download the configuration and import it into ATAK to try the service.

Community

Join the FreeTAKServer community:

System requirements

Before installing FreeTAKServer, ensure your system meets these requirements:
  • Python: 3.11 or higher
  • Operating System: Linux, Windows, or macOS
  • Memory: Minimum 2GB RAM (4GB+ recommended for production)
  • Storage: 1GB+ for application and database
  • Network: Open ports for services (8087, 8080, 8443 by default)
FreeTAKServer requires Python 3.11. Earlier versions are not supported in version 2.x.

Next steps

Quick start

Get FTS running in minutes with our quick start guide

Installation

Detailed installation instructions for all platforms

Configuration

Configure services, ports, and security settings

API reference

Explore the REST API for custom integrations

Build docs developers (and LLMs) love