hn.today

Radio-in-a-box: Self-hosted internet radio with Icecast, Liquidsoap and Rust CLI

github.com7 points0 comments
Screenshot of Radio-in-a-box: Self-hosted internet radio with Icecast, Liquidsoap and Rust CLI

Radio-in-a-box is a self-hosted internet radio setup built around Icecast for MP3 streaming, Liquidsoap for continuous music rotation, and a Rust command-line tool for managing audio and playback. Docker Compose runs the services, while a responsive listener page made with plain HTML, CSS, and JavaScript displays station information and provides the stream without a frontend build process. Setup requires Docker Compose and Rust: initialize the station, import music, and start the services. With an empty library, the station broadcasts silence.

The CLI recursively imports supported audio files, including MP3, Ogg, FLAC, WAV, M4A, and AAC, copying them into the station’s music folder rather than moving them. Liquidsoap watches a playlist that can be edited live; queued tracks take precedence over shuffled library rotation, and skip or reload commands do not interrupt the stream by restarting services. Optional jingles have a separate playlist and can be scheduled after a chosen number of songs, with settings adjustable during playback. Configuration includes generated passwords and local-only defaults; public listening requires a separately configured HTTPS reverse proxy, while Icecast administration remains private. The setup emphasizes preserving music and settings across container changes, running audio services as non-root users, and providing health checks. It also includes commands and tests for validating the CLI, web interface, Docker configuration, and stream.

Read on github.com0 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Programming

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.