Skip to content

All-in-one web radio suite with browser UI, music search, request, artwork, and real-time stream information.

Notifications You must be signed in to change notification settings

kenellorando/cadence

Repository files navigation

📻 About

Cadence (or CadenceRadio) is an all-in-one internet radio suite.

The project ships Icecast and Liquidsoap working out-of-the-box, made complete by a Cadence API providing song request, library search, album artwork, and real-time stream information in a browser UI.

See a live demo on cadenceradio.com!

🏃 Get Started

An interactive installation script is provided. Users familiar with Docker can be up and running in ~5 minutes.

Server Preparation

Installation

Clone the Cadence repository to your server, then run the following:

$ chmod +x ./install.sh
$ ./install.sh

You will be prompted to provide an absolute path to a directory containing music, a stream hostname, a rate limit timeout, a service password, and optional reverse proxy configuration. If you need help figuring out what values to use, refer to 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 pull to check for container updates, then docker compose up to start your station again. Run ./install.sh again at any time to reconfigure. If you make changes to code locally, run docker compose up --build to build and run.

🔬 Technical Details

Architecture

Basic Architecture

If you're interested in implementation details, this blog post does a dive into how a basic Icecast/Liquidsoap web radio works and the value Cadence provides.

API Reference for Custom Clients

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.

Discord Server Integration

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.