TAK Server
TAK Server
Section titled “TAK Server”The IrregularChat community operates a TAK (Team Awareness Kit) server at tak.irregulars.io for shared situational awareness. TAK enables real-time geospatial collaboration through ATAK (Android), iTAK (iOS), WinTAK (Windows), and a web map interface.
What is TAK?
Section titled “What is TAK?”TAK (Team Awareness Kit) is a geospatial situational awareness platform originally developed for military use, now widely adopted by emergency services, search and rescue, event coordination, and community groups. It enables teams to:
- Share real-time positions on a map
- Drop markers and points of interest
- Send messages and alerts
- Coordinate movements and resources
- Stream video feeds
TAK clients communicate using Cursor-on-Target (CoT) — an XML-based protocol for sharing geospatial data.
Getting Started
Section titled “Getting Started”1. Create Your Account
Section titled “1. Create Your Account”Visit tak.irregulars.io and log in with your IrregularChat SSO account (the same credentials you use for other community services).
2. Install a TAK Client
Section titled “2. Install a TAK Client”| Platform | App | Link |
|---|---|---|
| Android | ATAK-CIV | TAK.gov or Google Play |
| iOS | iTAK | App Store |
| Windows | WinTAK | TAK.gov |
| Web | tak.irregulars.io/map | Built-in (coming soon) |
3. Register Your Device
Section titled “3. Register Your Device”After logging in at tak.irregulars.io:
- Go to your profile
- Register your device with a unique Device UID (found in your TAK client settings)
- Download your client certificate (.p12 file)
- Import the certificate into your TAK client
4. Connect to the Server
Section titled “4. Connect to the Server”Configure your TAK client with these settings:
| Setting | Value |
|---|---|
| Server address | tak.irregulars.io |
| Port | 8089 |
| Protocol | TLS (SSL) |
| Certificate | Your downloaded .p12 file |
Architecture
Section titled “Architecture”The IrregularChat TAK deployment uses a Cloudflare-first architecture:
Internet ──▶ tak.irregulars.io (CF Worker) │ ├── Web portal + OIDC auth (Authentik SSO) ├── Marker + mission + geofence management (Cloudflare D1) ├── Real-time CoT streaming (Durable Objects WebSocket) ├── Data packages (Cloudflare R2) ├── NWS weather ETL (scheduled Worker, every 15 min) │ └──▶ CF Tunnel ──▶ TAK Server (Proxmox Docker) ├── CoT message routing (TCP :8089) ├── Certificate authority (step-ca) └── User auth (Authentik LDAP)Cloudflare Services Used
Section titled “Cloudflare Services Used”| Service | Purpose |
|---|---|
| Workers | Web portal, API, auth |
| D1 | User, marker, device, certificate database |
| KV | Sessions, position cache, rate limiting |
| R2 | Data packages, certificate bundles |
| Durable Objects | Real-time WebSocket CoT streaming |
| Tunnels | Secure connection to TAK Server |
| VPC Services | Worker-to-TAK Server CoT bridging |
The TAK service exposes a REST API for programmatic access:
# List markers (requires session cookie)curl https://tak.irregulars.io/api/markers \ -H "Cookie: tak_session=YOUR_SESSION"
# Create a markercurl -X POST https://tak.irregulars.io/api/markers \ -H "Content-Type: application/json" \ -H "Cookie: tak_session=YOUR_SESSION" \ -d '{"title":"Rally Point","cot_type":"a-f-G-U-C","lat":43.615,"lon":-116.202}'
# Publish CoT (broadcasts to all connected clients)curl -X POST https://tak.irregulars.io/api/publish \ -H "Content-Type: application/json" \ -H "Cookie: tak_session=YOUR_SESSION" \ -d '{"title":"Checkpoint","cot_type":"a-f-G","lat":34.0,"lon":-118.0}'CoT Type Codes
Section titled “CoT Type Codes”CoT types follow the format a-{affiliation}-{dimension}-{function}:
| Affiliation | Code | Color |
|---|---|---|
| Friendly | f | Blue |
| Hostile | h | Red |
| Unknown | u | Yellow |
| Neutral | n | Green |
| Dimension | Code |
|---|---|
| Ground | G |
| Air | A |
| Sea/Surface | S |
Common types:
a-f-G— Friendly ground unita-f-G-U-C— Friendly ground unit, combata-h-G— Hostile ground unita-u-G— Unknown ground unit
Web Map Viewer
Section titled “Web Map Viewer”Visit tak.irregulars.io/map (requires login) to see the live map. Features:
- Dark theme with CARTO basemap tiles
- Color-coded markers by CoT affiliation (blue=friendly, red=hostile, yellow=unknown, green=neutral)
- Real-time updates via WebSocket — markers appear instantly when created by any user or TAK client
- Marker removal — deleted markers disappear from the map in real-time
WebSocket Real-Time Stream
Section titled “WebSocket Real-Time Stream”Connect to the WebSocket endpoint for live CoT updates:
const ws = new WebSocket('wss://tak.irregulars.io/ws/default');
ws.onmessage = (event) => { const data = JSON.parse(event.data); console.log('CoT event:', data.type, data.payload);};Message types: markerCreated, markerUpdated, markerDeleted, positionUpdate, deviceOnline, deviceOffline, userJoined, userLeft, missionChange, geofenceAlert, weatherAlert, medevacRequest
Missions
Section titled “Missions”Missions are named collections of markers and files that persist on the server and sync automatically to all subscribed clients. Unlike ephemeral position updates, mission content survives disconnects and is available to new clients joining later.
- CRUD via REST API at
/api/missions(list, create, update, delete) - Subscribe a TAK client to a mission and all markers/files within it sync on connect
- Change log at
/api/missions/:name/changes?since=<ISO8601>lets offline clients catch up on missed updates without a full re-sync - Workspace-scoped — missions belong to a TAK workspace; membership in that workspace is required to read or write mission content
# List missions in the default workspacecurl https://tak.irregulars.io/api/missions \ -H "Cookie: tak_session=YOUR_SESSION"
# Catch up on changes since a timestampcurl "https://tak.irregulars.io/api/missions/Alpha/changes?since=2026-04-17T00:00:00Z" \ -H "Cookie: tak_session=YOUR_SESSION"Geofences
Section titled “Geofences”Geofences define virtual perimeters on the map. When a tracked device crosses a fence boundary, an alert fires in real time.
- CRUD via REST API at
/api/geofences(polygon coordinates, name, alert type) - Real-time evaluation — every incoming position update is checked against all active geofences for that workspace
- Alerts broadcast instantly over WebSocket (
geofenceAlertmessage type) and forwarded to the linked TeamCO workspace as announcements - Limit: up to 50 geofences per workspace
- Geofences are workspace-scoped and require workspace membership to manage
# Create a geofence (GeoJSON polygon)curl -X POST https://tak.irregulars.io/api/geofences \ -H "Content-Type: application/json" \ -H "Cookie: tak_session=YOUR_SESSION" \ -d '{ "name": "Exclusion Zone Alpha", "polygon": [[-116.20,43.61],[-116.19,43.61],[-116.19,43.62],[-116.20,43.62],[-116.20,43.61]], "alert_on": ["enter","exit"] }'Weather Alerts (NWS)
Section titled “Weather Alerts (NWS)”The TAK service automatically ingests active alerts from the National Weather Service API on a 15-minute schedule — no configuration required.
- Ingested globally — all current NWS alerts are fetched and evaluated; relevant alerts appear on the map for all workspaces
- Map representation — weather alerts are placed as neutral ground markers (
a-n-G) at the alert polygon centroid, with the alert headline and severity as the marker description - Automatic expiry — markers are removed when the NWS alert expires; no manual cleanup needed
- WebSocket notification — new weather alerts broadcast a
weatherAlertmessage to all connected clients
This gives field teams situational awareness of severe weather, flash flood watches, and other NWS-issued alerts without leaving the map interface.
MEDEVAC / 9-Line Requests
Section titled “MEDEVAC / 9-Line Requests”ATAK’s built-in MEDEVAC tool generates CoT events with a <medevac> detail element. The TAK service parses these into a structured 9-line format and stores them for review and relay.
| Field | Description |
|---|---|
| Line 1 | Location (lat/lon from CoT position) |
| Line 2 | Frequency and call sign |
| Line 3 | Number of patients by precedence (urgent/priority/routine) |
| Line 4 | Special equipment required |
| Line 5 | Number of patients (litter vs. ambulatory) |
| Line 6 | Security at pickup site |
| Line 7 | Method of marking pickup site |
| Line 8 | Patient nationality and status |
| Line 9 | NBC contamination / terrain description |
- Trigger: CoT events of type
b-r-f-h-cwith a<medevac>detail block - WebSocket: Parsed request broadcast as
medevacRequestmessage type - TeamCO relay: Forwarded as an alert announcement to the linked workspace
- Create from ATAK: Use ATAK’s built-in 9-Line/MEDEVAC form — the app handles CoT formatting automatically
Integration with TeamCO
Section titled “Integration with TeamCO”TAK is connected to TeamCO (team.irregulars.io) for cross-platform situational awareness. Both services share the same Authentik SSO.
The integration is workspace-scoped: each TAK workspace is linked to a specific TeamCO workspace. Announcements, geofence alerts, MEDEVAC requests, and weather alerts flow into the correct workspace rather than a single shared channel.
How it Works
Section titled “How it Works”When you create a marker in TAK, the system automatically:
- Stores the marker in the TAK database
- Broadcasts to all connected map viewers via WebSocket
- Forwards the CoT XML to OpenTAKServer (for native TAK clients)
- Creates an announcement in the linked TeamCO workspace with the marker details
Announcement type is determined by CoT affiliation:
- Friendly markers (
a-f-*) → TeamCO “info” announcement - Hostile markers (
a-h-*) → TeamCO “alert” announcement
TAK Map Overlay in TeamCO
Section titled “TAK Map Overlay in TeamCO”TeamCO surfaces TAK data directly in its interface without requiring users to switch apps:
- Check-ins from TeamCO appear as position markers on the TAK map
- Active blockers on TeamCO tasks are forwarded as alert markers on the map
- RFIs (Requests for Information) created in TeamCO generate TAK markers at the relevant location
- Announcements posted in TeamCO can be pushed to the TAK map as information markers
This bidirectional overlay means field teams on ATAK and coordination staff on TeamCO share a common operating picture.
Architecture
Section titled “Architecture”TAK Worker (tak.irregulars.io) ├── Publish marker ├── Store in D1 + broadcast WebSocket ├── Forward CoT to OpenTAKServer via VPC └── Enqueue to tak-events Queue └── Queue consumer → TeamCO Bot API └── Creates announcement in workspaceConfiguration
Section titled “Configuration”The integration uses:
- Cloudflare Queue (
tak-events) for async, reliable delivery - TeamCO Bot API (
/api/bot/announce) for creating announcements - TAK System User (
tak-bridge) in TeamCO as the announcement author - Shared SSO — both platforms use
sso.irregularchat.comfor authentication
Reverse Flow (TeamCO → TAK)
Section titled “Reverse Flow (TeamCO → TAK)”TeamCO can send CoT data to TAK via the ingest API:
curl -X POST https://tak.irregulars.io/api/ingest \ -H "Authorization: Bearer <TAK_API_KEY>" \ -H "Content-Type: application/xml" \ -d '<event version="2.0" uid="..." type="a-f-G" ...>...</event>'This enables TeamCO checkins to appear as position markers on the TAK map.
Backend: OpenTAKServer
Section titled “Backend: OpenTAKServer”The TAK service runs OpenTAKServer (open-source) on the IrregularChat Proxmox host. The backend handles:
- TCP CoT streaming (port 8088) — raw CoT messages from the CF Worker’s CoT bridge
- TLS CoT (port 8089) — encrypted connections for native TAK clients with certificates
- Certificate enrollment — client certificate management for ATAK/WinTAK/iTAK
- CoT message routing — via RabbitMQ between handler, parser, and storage components
The CF Worker connects to OpenTAKServer through a Cloudflare Tunnel and VPC Service Binding — no public ports are exposed.
Use Cases
Section titled “Use Cases”Event Coordination
Section titled “Event Coordination”Stand up a TAK channel for community events (meetups, conferences, field exercises) to track attendees, mark locations of interest, and coordinate movements.
Emergency Response
Section titled “Emergency Response”Use TAK for mutual aid coordination — track responders, mark hazards, coordinate logistics.
Training Exercises
Section titled “Training Exercises”Run simulated operations with blue/red team markers, movement tracking, and after-action review.
Mesh Networking
Section titled “Mesh Networking”Combine TAK with Meshtastic LoRa mesh radios for off-grid situational awareness. Meshtastic nodes can relay position data to TAK via the CoT bridge.
Security
Section titled “Security”- All web traffic encrypted via Cloudflare (TLS 1.3)
- TAK client connections use mutual TLS (client certificates)
- Authentication via IrregularChat SSO (Authentik OIDC)
- Position data retained for 5 minutes in cache, explicit markers stored in D1
- Rate limiting on all publish endpoints (60 CoT messages/minute)
- Geolocation data is sensitive — shared only with authenticated community members
Related Resources
Section titled “Related Resources”- TAK.gov — Official TAK downloads and documentation
- TeamCO — Team coordination platform
- Tactical Technology — Broader tactical tech overview
- Cloudflare Tunnels — How our tunnel infrastructure works
- Authentik — SSO setup guide