Public community release. The complete working system — DSP + decoders (scripts/), web dashboard + API (dashboard/), container stack (docker/), config templates (config/) — plus APOCALYPSE-EDITION.md, the full build guide for a human or a coding agent. GPLv3 (PyEOT dependency). Scrubbed of all secrets, internal IPs, hostnames, and location detail. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1.5 KiB
Attribution & licensing
istrain-public is licensed GPLv3 (see LICENSE). This choice follows the
strongest dependency: the EOT decoder validates frames against PyEOT, which is GPLv3.
Third-party code vendored here
scripts/eot/PyEOT/— PyEOT by Eric Reuter, the open-source End-of-Train / FFSK decoder (packet parser + BCH check) and its demo recording. GPLv3, itsLICENSEkept intact in that directory. Ourscripts/eot/eot_scan.pycalls into it at runtime for frame-sync and validity checking; the two-pass adaptive front-end (drift-tolerant tone tracking + fuzzy sync) is our addition.
The shoulders this stands on
The tools and communities credited in the dashboard's With Thanks panel are the real
foundation — RTL-SDR Blog and the osmocom rtl-sdr tools, RTLSDR-Airband, faster-whisper /
OpenAI Whisper, FFmpeg, NumPy, Docker + Dockge, and the railfan frequency communities
(RadioReference, Railroad-Frequencies.com, the regional railfan sites) that publish the
channel plans that make any of this findable. See dashboard/index.html for the full list
with links.
Note for the person who forked this
If you'd rather license your own build permissively (MIT/BSD), you can — but not while
PyEOT is vendored and imported. Swap in your own FFSK frame parser + BCH check (the spec is
public — 1200-baud FFSK, the SigidWiki EOTD page documents it), drop scripts/eot/PyEOT/, and
the GPL obligation goes with it. Everything else here is original work.