Skip to content

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.

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.

Visit tak.irregulars.io and log in with your IrregularChat SSO account (the same credentials you use for other community services).

PlatformAppLink
AndroidATAK-CIVTAK.gov or Google Play
iOSiTAKApp Store
WindowsWinTAKTAK.gov
Webtak.irregulars.io/mapBuilt-in (coming soon)

After logging in at tak.irregulars.io:

  1. Go to your profile
  2. Register your device with a unique Device UID (found in your TAK client settings)
  3. Download your client certificate (.p12 file)
  4. Import the certificate into your TAK client

Configure your TAK client with these settings:

SettingValue
Server addresstak.irregulars.io
Port8089
ProtocolTLS (SSL)
CertificateYour downloaded .p12 file

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)
ServicePurpose
WorkersWeb portal, API, auth
D1User, marker, device, certificate database
KVSessions, position cache, rate limiting
R2Data packages, certificate bundles
Durable ObjectsReal-time WebSocket CoT streaming
TunnelsSecure connection to TAK Server
VPC ServicesWorker-to-TAK Server CoT bridging

The TAK service exposes a REST API for programmatic access:

Terminal window
# List markers (requires session cookie)
curl https://tak.irregulars.io/api/markers \
-H "Cookie: tak_session=YOUR_SESSION"
# Create a marker
curl -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 types follow the format a-{affiliation}-{dimension}-{function}:

AffiliationCodeColor
FriendlyfBlue
HostilehRed
UnknownuYellow
NeutralnGreen
DimensionCode
GroundG
AirA
Sea/SurfaceS

Common types:

  • a-f-G — Friendly ground unit
  • a-f-G-U-C — Friendly ground unit, combat
  • a-h-G — Hostile ground unit
  • a-u-G — Unknown ground unit

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

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 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
Terminal window
# List missions in the default workspace
curl https://tak.irregulars.io/api/missions \
-H "Cookie: tak_session=YOUR_SESSION"
# Catch up on changes since a timestamp
curl "https://tak.irregulars.io/api/missions/Alpha/changes?since=2026-04-17T00:00:00Z" \
-H "Cookie: tak_session=YOUR_SESSION"

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 (geofenceAlert message 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
Terminal window
# 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"]
}'

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 weatherAlert message 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.

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.

FieldDescription
Line 1Location (lat/lon from CoT position)
Line 2Frequency and call sign
Line 3Number of patients by precedence (urgent/priority/routine)
Line 4Special equipment required
Line 5Number of patients (litter vs. ambulatory)
Line 6Security at pickup site
Line 7Method of marking pickup site
Line 8Patient nationality and status
Line 9NBC contamination / terrain description
  • Trigger: CoT events of type b-r-f-h-c with a <medevac> detail block
  • WebSocket: Parsed request broadcast as medevacRequest message 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

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.

When you create a marker in TAK, the system automatically:

  1. Stores the marker in the TAK database
  2. Broadcasts to all connected map viewers via WebSocket
  3. Forwards the CoT XML to OpenTAKServer (for native TAK clients)
  4. 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

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.

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 workspace

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.com for authentication

TeamCO can send CoT data to TAK via the ingest API:

Terminal window
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.

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.

Stand up a TAK channel for community events (meetups, conferences, field exercises) to track attendees, mark locations of interest, and coordinate movements.

Use TAK for mutual aid coordination — track responders, mark hazards, coordinate logistics.

Run simulated operations with blue/red team markers, movement tracking, and after-action review.

Combine TAK with Meshtastic LoRa mesh radios for off-grid situational awareness. Meshtastic nodes can relay position data to TAK via the CoT bridge.

  • 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