One program. Every TAK device. One command to install.
GolangTAK is a free server for ATAK, WinTAK, iTAK and any software that speaks Cursor on Target. It has no runtime dependencies, no containers and no database server, and it runs on anything from a Raspberry Pi to a cloud server.
curl -fsSL https://raw.githubusercontent.com/…/install.sh | sh
- 1 program, no dependencies
- 28 builds for 7 operating systems
- Apache 2.0 licensed
What a TAK server does
Devices send their position, chat, markers and alerts to the server. The server checks who may see them and passes each message on to everyone in the right groups, to linked servers and to other software. GolangTAK does all of it in one process.
Messaging
CoT XML and TAK Protocol version 1 with automatic negotiation. Groups with separate send and receive sets, direct messages, emergency alerts with a repeater, chat store-and-forward for devices that were offline, and recent positions replayed to devices that join.
Accounts and certificates
A built-in certificate authority, certificate enrollment for ATAK and iTAK, one-time QR codes, revocation, and a server certificate that renews itself. Local users and groups, or sign-in with LDAP and Active Directory.
Data
Data packages and Data Sync, missions with roles and change notifications, ExCheck checklists, video feeds, KML export, track history and an update server for ATAK plugins.
Links
Two-way links to TAK Server, OpenTAKServer, FreeTAKServer, another GolangTAK or any CoT software over TCP, TLS, UDP and WebSocket, plus TAK Server federation in both directions. Loop protection keeps messages from echoing back.
Meshtastic and live feeds
A built-in MQTT broker bridges Meshtastic LoRa radios: mesh positions and chat appear in TAK and TAK traffic goes out to the mesh. Aircraft from ADS-B exchanges and ships from AISHub can be shown on every device.
Operations
Installs as a service on every operating system, starts at boot and restarts itself after a failure. Opens the firewall, tests its own ports, cleans up old data on a schedule and makes backups on demand.
A dashboard built in
Served by the same program, in any browser. Manage devices, users, groups, files, missions, links and settings, and watch the server's own load. Press Ctrl+K anywhere to jump to a page.
Install in one command
The installer sets up a service that starts at boot, opens the firewall, creates the certificate authority and the first administrator, and tests every port before it finishes. Running it again updates in place and keeps all data.
curl -fsSL https://raw.githubusercontent.com/grangedevgroup-code/TAK-Backend/main/GolangTAK/scripts/install.sh | sh
Paste into a terminal. It asks for your password to install the service.
Run the command
It prints the dashboard address, the administrator password and a QR code.
Open the dashboard
Go to https://SERVER:8446 and sign in. Change the generated password.
Connect a device
In ATAK choose Settings, Network, Servers, Add, Scan QR. In iTAK choose Connect with QR. Or copy a connection package to the device.
| Check it is running | sudo golangtak status |
|---|---|
| Add a user | sudo golangtak user add alice --groups Blue |
| QR codes for a device | sudo golangtak qr alice |
| Follow the log | sudo golangtak logs -f |
| Remove it, keep the data | sudo golangtak uninstall |
Works with what you already use
Every link is two-way: traffic from devices on GolangTAK reaches the other side, and traffic from the other side reaches GolangTAK devices.
| Software | How it connects |
|---|---|
| ATAK, ATAK-CIV | SSL with certificate enrollment, TCP, QR codes, connection packages, Data Sync, plugin update server |
| WinTAK | SSL, TCP, connection packages, Data Sync |
| iTAK | SSL with quick connect QR and enrollment, TCP, server packages |
| TAK Aware and other CoT apps | SSL, TCP, UDP, connection packages |
| TAK Server | Federation in both directions, or a TCP or TLS link |
| OpenTAKServer, FreeTAKServer | TCP or TLS links in both directions, and a FreeTAKServer-compatible REST API |
| Meshtastic | Gateway nodes connect to the built-in MQTT broker, or both sides share a broker |
| Radios and mesh gateways | Multicast situational awareness and UDP input |
| Browsers and scripts | CoT over WebSocket, a REST API with tokens, a live event stream |
Runs on the computer you have
Each release is a single file of about 10 to 12 MB, built for 28 combinations of operating system and processor, with a SHA256SUMS file to check them.
| System | Processors |
|---|---|
| Linux and Raspberry Pi | amd64, arm64, armv7, armv6, armv5, 386, riscv64, ppc64le, s390x, loong64, mips, mipsle, mips64, mips64le |
| Windows | amd64, arm64, 386 |
| macOS | arm64, amd64 |
| FreeBSD | amd64, arm64, 386, armv7 |
| OpenBSD | amd64, arm64 |
| NetBSD | amd64, arm64 |
| Android | arm64 |
The service runs under systemd, OpenRC, SysV init, launchd, FreeBSD rc.d and the Windows service manager, with a cron fallback elsewhere.
Open source, start to finish
Written in Go using only its standard library. Read the code, file an issue, or build it yourself with go build ./cmd/golangtak.