-
Notifications
You must be signed in to change notification settings - Fork 16
Installation
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.
You must have Docker and Docker Compose installed.
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.
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.
- You must have Docker and Docker Compose installed.
- You must first create a copy of every file in the
config/
directory, removing the.example
extension from each file. - Edit
config/cadence.env
- Change all instances of
CADENCE_PASS_EXAMPLE
to a new password. - 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. - Change all instances of
CADENCE_RATE_EXAMPLE
to an integer that sets the song request cooldown period in seconds. Set this value to0
to disable rate limiting.
- Change all instances of
- Edit
config/icecast.xml
- Change all instances of
CADENCE_PASS_EXAMPLE
to a new password. - 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 valuelocalhost
if your radio is meant to be accessible locally only.
- Change all instances of
- Edit
config/liquidsoap.liq
- Change all instances of
CADENCE_PASS_EXAMPLE
to a new password. - If you changed
CADENCE_PATH_EXAMPLE
in step 2, change any instances of the default value/music/
to match it here.
- Change all instances of
- Edit
docker-compose.yml
- If you changed
CADENCE_PATH_EXAMPLE
in step 2, change any instances of theVolumes
defined, replacing/music:/music
with/YOURDIR:/YOURDIR
.
- If you changed
- (Optional) Edit
config/nginx.conf
- 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.
- 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
docker compose up
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.