Installation#

Despite all our efforts, a broadcast automation system is still more complex than an MP3 player. You will have to tune some details yourself and provide some content. So please read this page once before opening a terminal.

⚠️ Radiotomate is still in beta. Some bugs remain and it lacks some features we'd like to have in a genuine "V1". But it is already quite stable and upcoming versions will be able to update beta versions' installs, so you can already give it a try.

Requirements#

  • We assume you have already tried Linux and its command line.
  • We currently only provide containers for the amd64 architecture (Intel/AMD CPUs).
  • The most automated installer assumes you have a brand new install of Debian or Ubuntu. Any other Linux should do, as long as you have Podman already installed (at least Podman v4.4, so Debian 12/bookworm is too old).
  • Some music and jingles - at least one of each! Otherwise Radiotomate will complain repeatedly in its log that it has nothing to play
  • Disk space requirements depends on the average quality (and length) of music and episodes you'll broadcast, but also how often you want to clean up old sounds. Radiotomate's containers use a bit more than 2GB. So you need a few GB to test, for a production setting something between 100GB and 1TB should be comfortable.

Before starting a long-term installation, we advise you read this page entirely, but also the maintenance section because it may change your mind about your target set-up.

We also advise you copy-paste each command and action you made in a separate file that you'll keep along your back-up to ease your next installation.

Install#

Download the installer in your home folder:

cd ; curl https://hg.sr.ht/~martink/radiotomate/raw/install.sh?rev=tip > install.sh

Turn it into an executable:

chmod +x install.sh
  • If you only want to stream to Icecast, run ./install.sh
  • If you need to at least output to a sound card, run USE_PULSEAUDIO=yes ./install.sh
  • If you're curious you can open it with a text editor. All options are listed and commented at the beginning of the file.

The script will ask you some things interactively. When finished you'll have a working radio system, that only needs to know where the sound should flow. For this last step you need a text editor, to edit the file radiotomate_data/radiotomate.yaml. Find the following block:

    outputs:
        #- driver: pulseaudio
        #  # empty(null) will let pulseaudio choose the default device.
        #  device:

        #- driver: icecast
        #  encoder: vorbisvbr
        #  quality: 0.3
        #  host: "127.0.0.1"
        #  port: 9876
        #  mount: "radio.ogg"
        #  password: "secret"

Lines that start with a # are comments (they are ignored by the application), so those blocks are examples and by default outputs is empty. Remove some # depending on the outputs you want.

If you only want to output to a sound card, use:

outputs:
    - driver: pulseaudio

If you only want to output to Icecast, use:

outputs:
    - driver: icecast
    encoder: vorbisvbr
    quality: 0.3
    host: "192.168.0.123"
    port: 9876
    mount: "radio.ogg"
    password: "Icecast's input password"

If the Icecast server is on the same machine, set host to host.containers.internal. localhost or 127.0.0.1 won't work because we run Radiotomate in containers. You'll find everything you need to know about this configuration file in the configuration reference.

When you're set, save that file and restart Radiotomate:

podman pod restart radiotomate

Because we install Radiotomate as a Podman quadlet, you may also restart or disable it at boot as a regular systemd service:

systemctl --user start radiotomate.service

Radiotomate starts by sounding a horn (explained here), but at this point it has nothing else to play: bring it some music by copying some music files to the radiotomate_data/MusicDropbox folder. In less than a minute these files should move to radiotomate_data/Music and start playing.

Now you can access Radiotomate's interface at http://127.0.0.1:6811/. Log in as "admin" with the password set during the installation. Start by creating a Jingles cart that contains at least one sound.

Access from the Internet#

The interface is started behind port 6811, but it not secured (the s in HTTPS) and hopefully blocked by your firewall Note that ports open in containers are open to all IP addresses. If you want to access the application via the Internet, you need to setup a Web server to proxy to port 6811. You probably also want to proxy port 6800, where Radiotomate is waiting for a live stream.

soon: here we'll explain how to set-up Caddy in front of Radiotomate and Icecast.

Next#

In case of trouble#

The script creates a file called radiotomate_install.log attach it when asking for help.

Uninstalling#

If you only wanted to do a short-lived test of Radiotomate (thanks!) you can get back to a clean state by running the following commands:

rm ~/.config/containers/systemd/radiotomate*
podman pod rm -f radiotomate
podman image prune -a
rm -rf radiotomate_data