Sign inSign up

kenellorando/cadence

By kenellorando

•Updated about 1 year ago

HTTP API application suite for Icecast/Liquidsoap web radios.

Image
1

3.1K

kenellorando/cadence repository overview

⁠CadenceRadio

Cadence is a fully-featured REST API web radio software suite.

It ships everything needed to run a web radio station, including:

  • an API server with search, request, now playing, artwork, and stream information
  • an interactive browser UI
  • an autopopulating music-metadata database
  • custom built-in Icecast and Liquidsoap integration

These features allow your audiences to interact with your web radio much like a traditional call-in radio station. The project ships all components pre-configured to work with each each other so there is hardly any configuration to do.

To start your own instance of Cadence, set a target directory containing your music, set a few service passwords and hostnames, and you're good to go! All components have multi-architecture containers, and a Compose file will set the entire radio stack up in minutes.

See a live demo on cadenceradio.com⁠!

Cadence Browser UI cadence5

Cadence Architecture cadence5 architecture

⁠Start Here

Warning: The way this repo currently handles configuration involves adding passwords to files which you may accidentally commit, so be careful.

⁠Prerequisites

  1. You must have Docker Compose installed.

⁠Installation

  1. Edit the cadence/config/cadence.env file:
    1. Set the CSERVER_MUSIC_DIR value to an absolute path of a directory on your local system which you want to play music. The target is not recursively searched. The default location is /music/.
    2. Set the CSERVER_REQRATELIMIT to the number of seconds you wish to timeout users after they make song requests. Setting this value to 0 will disable rate limiting.
  2. Configure the cadence_icecast2/config/cadence.xml file.
    1. Change all instances of hackme to a new password.
    2. Set the <hostname> value to the endpoint you expect your audience to connect to. Cadence uses this value to set the stream source in the UI. This can be a DNS name, an IP address, or leave it default localhost to run locally.
  3. Configure the cadence_liquidsoap/config/cadence.liq file.
    1. Change all instances of hackme to a new password.
  4. docker compose up.

That's all. All Cadence services will start up linked with each other.

⁠Accessing Services

  • The UI is accessible in a browser by default at localhost:8080.
  • API server requests may sent to the localhost:8080 path by default. See API Documentation below.
  • The stream endpoint is accessible at localhost:8000/cadence1 by default.

⁠Building the Stack Locally

If you are developing and need to rebuild all services exactly as you have locally:

  1. docker compose up --build

⁠API Reference

See Cadence's GitHub Wiki for API Documentation⁠ or the API tab on https://cadenceradio.com⁠ for complete details and request/response examples.

⁠Container Repositories

Tag summary

Content type

Image

Digest

sha256:9aa3a8480…

Size

83.3 MB

Last updated

about 1 year ago

docker pull kenellorando/cadence