Skip to content

Installation

Ken Ellorando edited this page Mar 11, 2023 · 17 revisions

Method 1: ./install.sh

The simplest, fastest method to install Cadence is to use the ./install.sh script. All regular users are advised to install this way. The script will convert example configuration files to live ones, prompt you for necessary variables, and modify the configs accordingly.

Requirements

You must have Docker and Docker Compose installed.

Installation

Simply run the script:

./install.sh

If the script does not execute, you may need to modify permissions on the script first:

chmod +x install.sh
./install.sh

The script will launch an interactive series of prompts that will ask you for configuration data. The prompts explain the required input and provide examples. The Cadence stack will automatically launch after the last prompt is provided.

After you initially install, you may simply run docker compose up without needing to use the script again. You may run ./install.sh at any time again to reconfigure.

Method 2: Manual Installation

If you don't want to use the script or are unable to use it, you can still manually execute the same steps that the script performs.

Requirements

  1. You must have Docker and Docker Compose installed.

Installation

  1. You must first create a copy of every file in the config/ directory, removing the .example extension from each file.
  2. Edit config/cadence.env
    1. Change all instances of CADENCE_PASS_EXAMPLE to a new password.
    2. Change all instances of CADENCE_PATH_EXAMPLE to an absolute path which contains music files (.mp3, .flac) for play. The target is not recursively searched.
    3. Change all instances of CADENCE_RATE_EXAMPLE to an integer that sets the song request cooldown period in seconds. Set this value to 0 to disable rate limiting.
  3. Edit config/icecast.xml
    1. Change all instances of CADENCE_PASS_EXAMPLE to a new password.
    2. Change CADENCE_HOST_EXAMPLE, within <hostname>, to a URL you expect your audience to connect to. This value is what is set in the UI's stream source. This may be a DNS name or a public or private IP address. You can leave the default value localhost if your radio is meant to be accessible locally only.
  4. Edit config/liquidsoap.liq
    1. Change all instances of CADENCE_PASS_EXAMPLE to a new password.
    2. If you changed CADENCE_PATH_EXAMPLE in step 2, change any instances of the default value /music/ to match it here.
  5. Edit docker-compose.yml
    1. If you changed CADENCE_PATH_EXAMPLE in step 2, change any instances of the Volumes defined, replacing /music:/music with /YOURDIR:/YOURDIR.
  6. (Optional) Edit config/nginx.conf
    1. For advanced users deploying Cadence to a server with DNS, Cadence ships with a reverse proxy that can forward requests based on domain-name to backend services. Simply configure the server_name values with your domain names. The stream server domain should match the value you set in step 2.
  7. docker compose up

Method 3: Kubernetes

It is possible to deploy the entire Cadence Radio Stack to a Kubernetes cluster, without using Docker Compose at all. Manifests that do most of the heavy lifting are available in cadence-k8s.

Clone this wiki locally