Every track, analyzed
Loudness, true peak, silences at both ends, where the next track can start, a waveform. MP3, AAC, ALAC, FLAC, Ogg Vorbis, WAV and AIFF.
Self-hosted radio automation for Linux. Heron crossfades your library to Icecast around the clock, follows your clockwheels, and never lets the air go silent.
Loudness, true peak, silences at both ends, where the next track can start, a waveform. MP3, AAC, ALAC, FLAC, Ogg Vorbis, WAV and AIFF.
Crossfades or fixed overlaps, Gap Killer, loudness normalization, and a fallback folder the engine plays even while the API is down.
An FX player fires sweepers and station IDs over whatever is on air, without stopping it.
Categories, clocks, a weekly schedule and separation rules, with a selection log for every pick and a simulation a week ahead.
Live updates, light and dark themes, English and French, phone to desktop. Viewer, operator and admin roles.
HTTP and WebSocket, documented with OpenAPI, with API tokens. Prometheus metrics on every service.


Docker Compose pulls five services and MariaDB. It runs on amd64 and arm64, down to a Raspberry Pi.
Read the installation guidecp .env.example .env
docker compose up -d --wait
✔ heron-engine Healthy
✔ heron-api Healthy
✔ heron-web Healthy
docker compose exec heron-api heron-api user add admin --role admin
→ http://localhost:8000
NAMED AFTER HERON OF ALEXANDRIA, WHO PROGRAMMED MACHINES 2,000 YEARS AGO
AGPL-3.0. Run it for your station, read every line, and send your improvements back.