FAQ
Questions worth answering up front.
What OpenTAC is, what it deliberately is not, and how to run it honestly.
Is this legal? Am I doing surveillance?
OpenTAC only ingests public broadcasts that aircraft and vessels transmit by law — unencrypted ADS-B (1090 MHz) and AIS — plus public orbital elements for satellites. It tracks state and public-service assets, never private individuals; the watchlist scope rules forbid people and minors and are enforced in CI. It is built for accountability and journalism, not targeting — a Code of Conduct is shown on first run.
Where does the data come from, and do you store any of it?
Live positions come from
adsb.lol (keyless), aisstream (free key) or digitraffic (keyless, Baltic), or a local readsb / ais-catcher receiver; satellites from public CelesTrak elements. Nothing runs on our infrastructure — your machine talks straight to the public sources. Every fix is archived in a local SQLite database on your box. There is zero telemetry, and it stays off.What categories does it track?
Thirteen major categories — military, government, coast guard, border & customs, search & rescue, lifeboat, HEMS, air ambulance, police, fire & rescue, state research, emergency services, and satellites — each with subcategories down to platform class. Commercial cargo, tanker, passenger and private traffic is filtered out at ingest. See the full taxonomy.
How does it classify a contact it has never seen?
Vessels are classified from their AIS ship type, aircraft from the broadcast ICAO type and operational call sign — into the major → subcategory → platform taxonomy. A Chinook becomes a military helicopter, an MQ-9 a military UAV, a King Air air-ambulance fixed-wing, the first time it is seen. A curated watchlist entry always wins over a live guess.
How do you avoid making up positions or identities?
Honesty by construction. Unknowns are left blank, never guessed. Confidence is a first-class field and every operator/unit/role carries its source. A gap in a track is shown as a gap — going-dark is part of the record. Satellite positions are always labelled as predictions, with the orbital-element epoch and age on screen so staleness is visible.
What's "capture-all", and how is it different from a watchlist?
The feed layer pulls every contact in range, not just known identifiers. Each fix either resolves to a curated watchlist asset by ICAO hex / IMO / NORAD number, or auto-registers as an
auto_discovered newcomer, classified into the taxonomy and flagged for a human to promote. The watchlist gives you the who; capture-all makes sure nothing in range goes unseen.How do I install and run it?
Clone the repo and run the installer — it brings up the Docker stack (consumer on
:8900, tile cache on :8901, ntfy for push): git clone https://github.com/gonzoinceng-ctrl/opentac && cd opentac && ./install.sh. For a development checkout, run ./scripts/dev-setup.sh. Everything is loopback-bound by default; reach it over SSH. See Get started.Do I need a powerful machine or an antenna?
No. The keyless
adsb.lol aggregator needs no hardware — just set your bounding box in .env. A Raspberry-Pi-class box is plenty for a city-sized region. If you run your own readsb or ais-catcher receiver, OpenTAC reads from it directly for lower latency.How do I get global vessels?
Aircraft are global and keyless via adsb.lol. Vessels are keyless only regionally (Digitraffic, the Baltic); for worldwide AIS, add a free aisstream.io key to
OPENTAC_AISSTREAM in .env and restart. The state-only classifier keeps just the tracked categories and drops all commercial traffic.How do I contribute an asset to the watchlist?
Open a pull request against gonzoinceng-ctrl/opentac-watchlist. CI validates every row against the schema and the scope rules, and scope-sensitive categories route to a designated reviewer. The console's inspector will draft a valid entry from any auto-discovered contact — provenance and a confidence level are required.
Is it really free? What's the catch?
The application is MIT-licensed and the watchlist is CC-BY-SA — fork it, audit it, mirror it. It will never have a subscription. Development is funded by sponsorship and a documented cross-subsidy from the commercial sibling, OpenHNW.
How does OpenTAC relate to OpenHNW?
OpenTAC is a fork of the commercial OpenHNW console, sharing its operator stance and engineering discipline but re-pointed from private individuals to state and volunteer-SAR assets, and stripped of everything commercial. The watchlist-scoped feed layer is flipped to capture-all, and resolve-misses become classified, registered newcomers.