Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kenellorando/cadence
All-in-one web radio suite with browser UI, music search, request, artwork, and real-time stream information.
https://github.com/kenellorando/cadence
cadenceradio compose docker-compose icecast icecast2 internet-radio internet-station liquidsoap radio radio-player self-hosted selfhosted stream web-player web-radio web-radio-server webradio zutomayo
Last synced: 13 days ago
JSON representation
All-in-one web radio suite with browser UI, music search, request, artwork, and real-time stream information.
- Host: GitHub
- URL: https://github.com/kenellorando/cadence
- Owner: kenellorando
- Created: 2017-03-02T02:39:51.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-08-06T05:20:40.000Z (3 months ago)
- Last Synced: 2024-10-07T10:07:16.290Z (about 1 month ago)
- Topics: cadenceradio, compose, docker-compose, icecast, icecast2, internet-radio, internet-station, liquidsoap, radio, radio-player, self-hosted, selfhosted, stream, web-player, web-radio, web-radio-server, webradio, zutomayo
- Language: Go
- Homepage: https://cadenceradio.com
- Size: 46.5 MB
- Stars: 61
- Watchers: 6
- Forks: 17
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 📻 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](https://cadenceradio.com/)!**
## 🏃 Get Started
An interactive installation script is provided. Users familiar with Docker can be up and running in ~5 minutes.
### Server Preparation
- [Docker Engine](https://docs.docker.com/engine/install/) and [Docker Compose V2](https://docs.docker.com/compose/install/) are installed.
- You have some music files (e.g. `.mp3`, `.flac`) with title and artist metadata.### Installation
Clone the Cadence repository to your server, then run the following:
```bash
$ 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](https://github.com/kenellorando/cadence/wiki/Installation#interactive-prompt-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](https://cuddle.fish/posts/2022-11-08-cadence) 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](https://github.com/kenellorando/cadence/wiki/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](https://github.com/za419/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](https://discord.com/api/oauth2/authorize?client_id=372999377569972224&permissions=274881252352&scope=bot).