Cadence (or CadenceRadio) is an all-in-one internet radio suite.
The project ships with Icecast and Liquidsoap working out-of-the-box, complete with library search, song request, album artwork, and real-time stream information in a browser UI. Install and deploy in minutes.
See a live demo on cadenceradio.com!
An interactive installation script is provided. Users familiar with Docker can be up and running in ~5 minutes. Alternate methods including manual configuration and Kubernetes deployments are described on the Installation Guide and in cadence-k8s, respectively.
- Docker Engine and Docker Compose V2 are installed.
- You have some music files (e.g.
.mp3
,.flac
) with title and artist metadata.
Clone the Cadence repository to your server, then run the following:
$ chmod +x ./install.sh
$ ./install.sh
You will be prompted to provide the directory path to your music, a stream hostname, a rate limit timeout, a service password, and optional DNS. If you need help figuring out what values to use, refer the Installation Guide. Your radio stack will automatically launch and Cadence's web UI will become accessible at localhost:8080
.
After initial installation, simply run docker compose up
to start your station. Run ./install.sh
again at any time to reconfigure.
If you're interested in implementation details, Cadence: Self-Hosted Web Radio Suite does a dive into how a typical Icecast/Liquidsoap web radio works and the value Cadence provides.
Cadence's GitHub Wiki also hosts an API Reference with complete request/response details, useful for anyone developing custom scripts or clients for their station.
Cadence installations can be directly integrated with Discord Servers using CadenceBot. CadenceBot allows you to control your station through Discord chat and listen to the radio in voice channels! You can quickly demo a CadenceBot by adding it to your Discord server.