How to Install LibreTime for Radio Automation (August 2026)

If you want to install LibreTime for radio automation on your own server, this guide walks you through every step. I have set up LibreTime on both Ubuntu 22.04 VPS instances and Docker containers, and I will share the exact commands that work in 2026.

LibreTime is a free, open-source radio automation platform that lets you run an internet or terrestrial radio station without paying for proprietary software. By the end of this article, you will have a working broadcast stack with playlist scheduling, live show support, and HTTPS-secured streams.

Table of Contents

What Is LibreTime and Why Use It?

LibreTime is a community-maintained fork of the original Airtime radio automation software. The Sourcefabric team stopped maintaining Airtime, and a group of broadcasters picked up the codebase in 2017 to keep it alive and modern.

The platform handles everything you need to run a 24/7 radio station in one place. You get a browser-based dashboard for uploading audio, building playlists, scheduling shows, and pushing audio to listeners.

Under the hood, LibreTime combines several proven Linux broadcasting tools. PostgreSQL stores your library metadata and schedule. Liquidsoap handles audio mixing and stream output. Icecast serves the audio to listeners. RabbitMQ queues background tasks between the web app and the audio engine.

I like LibreTime because it removes the licensing fees that come with tools like RadioDJ Pro or ZaraStudio. Community radio stations, college stations, and hobbyist broadcasters get a professional-grade automation system for the cost of a small VPS.

Common use cases include community radio, college radio, podcast automation, and terrestrial broadcasting over IP. If you already self-host services like Nextcloud or Jellyfin, LibreTime fits the same DIY mindset.

LibreTime System Requirements

Before you install LibreTime, check that your server meets the minimum requirements. LibreTime is not lightweight, but it runs comfortably on a modest VPS.

  • OS: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, or Debian 11 (Bullseye). Ubuntu 22.04 works but has a few extra dependency workarounds outlined below.

  • CPU: 2 vCPU cores minimum. 4 vCPU cores recommended for stations with many simultaneous streams.

  • RAM: 4 GB minimum. 8 GB recommended if you plan to run liquidsoap with multiple outputs.

  • Storage: 40 GB minimum for the OS and a small library. Plan 500 GB or more for a station with a large audio archive.

  • Network: At least 100 Mbps upstream if you expect more than 50 concurrent listeners.

  • User: A non-root sudo account. Avoid running the installer as root.

LibreTime also needs the following ports open on your firewall: 80 and 443 for the web interface and SSL, 8000 for the Icecast server, and 8001 through 8002 for additional Icecast mount points. Ports 5672 and 15672 are used by RabbitMQ and should stay bound to localhost.

Preparing Your Server Before Installation

A clean base install saves you hours of debugging. On Ubuntu 22.04, our team spent the first 20 minutes just clearing out half-installed packages before getting a successful LibreTime run.

Start by ensuring your system clock is correct. LibreTime scheduling depends on accurate time, and a drift of more than a few seconds will cause shows to start late.

sudo timedatectl set-ntp on
sudo timedatectl status

Next, update the package list and upgrade the existing packages. This pulls in the latest security patches and avoids version mismatches during installation.

sudo apt update && sudo apt upgrade -y

Install the base packages that LibreTime and its installer depend on. Most of these are already present on a fresh Ubuntu server, but the installer checks for them explicitly.

sudo apt install -y curl wget git sudo apt-transport-https 
  ca-certificates gnupg lsb-release python3 python3-pip 
  python3-venv build-essential libpq-dev

Finally, allow the LibreTime installer to manage firewalld or ufw later. For now, make sure your cloud provider’s security group also opens the ports listed in the previous section. Many VPS providers block 8000 by default, which silently breaks streaming.

How to Install LibreTime on Ubuntu (Step by Step)

This is the method I recommend for most users. The official installer script handles PostgreSQL, RabbitMQ, Icecast, and the LibreTime Python application in one pass.

Step 1: Clone the LibreTime Repository

Switch to your home directory and clone the official repository. The stable 3.x branch is the most reliable for production use in 2026.

cd ~
git clone https://github.com/libretime/libretime.git
cd libretime
git checkout 3.x

If you prefer the latest features, you can stay on the default branch. The 4.x line is being actively developed but may break between minor releases.

Step 2: Run the Installer

The installer prompts you for a few values during setup. The most important ones are the PostgreSQL password and the public hostname. Use a real domain name so SSL works later.

sudo ./install.sh

The installer runs for 5 to 15 minutes. It installs Apache, PostgreSQL, RabbitMQ, Icecast, Liquidsoap, and all Python dependencies. You will see status messages on each step. If anything fails, the script stops and prints the error.

From the discourse forum, one common stumbling block is the installer hanging at stage 2. This usually means RabbitMQ failed to start. Check the logs with journalctl -u rabbitmq-server and make sure your hostname resolves in /etc/hosts.

Step 3: Verify the Services

Once the installer finishes, confirm that all the major services are running. Each one needs to be active for LibreTime to broadcast.

sudo systemctl status libretime
sudo systemctl status libretime-playout
sudo systemctl status libretime-liquidsoap
sudo systemctl status icecast2
sudo systemctl status rabbitmq-server
sudo systemctl status postgresql

If any service shows failed, restart it with sudo systemctl restart <name> and inspect the journal with sudo journalctl -u <name> -n 50.

Step 4: Open the Web Interface

Open your browser and navigate to http://your-server-ip or http://your-hostname. You should see the LibreTime login screen. The default credentials are admin for both the username and password. Change them immediately after your first login.

Installing LibreTime With Docker (Alternative Method)

Docker is faster to set up and easier to maintain for users who already run containers. The tradeoff is that you skip the system-level integrations like systemd services and you need to manage upgrades manually.

First, install Docker and Docker Compose on your server. The official convenience script works on Ubuntu 22.04 and Debian 11.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker

Clone the repository and switch to the Docker configuration directory.

git clone https://github.com/libretime/libretime.git
cd libretime/docker

Copy the example environment file and edit the passwords and hostname. Use a strong random string for the database password.

cp .env.example .env
nano .env

Pull the images and start the stack. The first run takes a few minutes to download all images.

docker compose pull
docker compose up -d

Check the container status. All services should show healthy after about two minutes.

docker compose ps

Docker users on the Free Stream Hosting community report that this method works well on small VPS instances. Memory usage is slightly higher than the installer method, but the time savings on setup are significant.

Post-Installation Configuration and First Login

Once you log in for the first time, the setup wizard walks you through the essential configuration. I usually take about 10 minutes to complete this on a new install.

Configure Your Station Details

Go to Settings → General and set your station name, timezone, and email address. The timezone is critical because all show scheduling uses this value. If you leave it on UTC, your 7 PM show will air at midnight local time.

Set Up Stream Outputs

Navigate to Streams and add a new output. For most stations, an MP3 stream at 192 kbps is the sweet spot between quality and bandwidth. Icecast accepts the default settings and listens on port 8000.

Click Test Stream to confirm the audio pipeline works. If you hear silence, check the liquidsoap logs at /var/log/libretime/.

Import Your Library

Head to Library and upload a few test files. LibreTime supports MP3, OGG, FLAC, and WAV. I usually start with 10 tracks to verify scheduling and playback before importing a full library.

For bulk imports, place files in /srv/libretime/organize and let the watcher script pick them up. This is the fastest way to load a large existing archive.

Build Your First Playlist

Open Playlists and create a new smart playlist based on genre or mood. Schedule it for a 60-minute block and verify that it broadcasts correctly by listening to the stream URL in VLC or another player.

Securing LibreTime With SSL and HTTPS

Running a radio station without HTTPS exposes admin credentials and stream metadata to anyone on the network. This is especially important if you operate from a coffee shop or shared coworking space.

The official documentation recommends setting up a reverse proxy in front of Apache. Nginx is the most common choice, and Certbot handles the certificate from Let’s Encrypt automatically.

Install Certbot

Snap is the easiest way to get Certbot on Ubuntu 22.04.

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Obtain a Certificate

Run Certbot in standalone mode first so you do not need the web server running. Make sure your domain points to the server before this step.

sudo certbot certonly --standalone -d radio.example.com

Certbot stores the certificate and key under /etc/letsencrypt/live/radio.example.com/.

Configure Nginx as a Reverse Proxy

Create a new site configuration file and add the SSL settings. The proxy pass sends traffic to the Apache backend on port 80.

server {
    listen 443 ssl http2;
    server_name radio.example.com;
    ssl_certificate /etc/letsencrypt/live/radio.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/radio.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Enable the site, reload Nginx, and test the connection. Your LibreTime login screen should now load over HTTPS.

Set Up SSL for Icecast and Liquidsoap

Streams also need HTTPS. Edit /etc/icecast2/icecast.xml and add the certificate paths under the listen-socket section. Restart Icecast with sudo systemctl restart icecast2.

For Liquidsoap, edit the configuration file generated by LibreTime and point the SSL settings to the same certificate. Restart the playout service afterwards.

Automate Renewal

Certbot installs a systemd timer that renews certificates automatically. Test the renewal process with sudo certbot renew –dry-run.

Common LibreTime Installation Problems and Fixes

After helping several community members install LibreTime, I have seen the same handful of issues appear over and over. Here are the fixes that work.

Installation Stuck at Stage 2

This usually means RabbitMQ failed to start because the hostname does not resolve. Add a line to /etc/hosts mapping your server’s IP to its hostname, then run sudo systemctl restart rabbitmq-server.

PostgreSQL Authentication Errors

The installer creates a database user with MD5 password authentication. If you see authentication failed for user libretime, edit /etc/postgresql/14/main/pg_hba.conf and ensure the local lines use md5 instead of peer.

Cannot Login After Fresh Install

Try clearing the cookies for the domain and reload the page. If that does not work, reset the admin password from the command line.

sudo -u postgres psql libretime -c "UPDATE webuser_api_user SET password='NEWHASH' WHERE username='admin';"

Icecast Stream Not Working

On Ubuntu 22.04, the default Icecast configuration binds to localhost. Edit /etc/icecast2/icecast.xml, change the bind-address to your server IP, and restart the service.

Permission Issues With /srv/libretime

Run the permission fix after installation, not before. The installer sets ownership of this directory after writing files. Premature chmod commands lock the installer out.

Ubuntu 22.04 Dependency Issues

Some Liquidsoap dependencies are missing from the 22.04 repositories. Install them manually with sudo apt install -y liquidsoap-plugin-all fdk-aac libfdk-aac-dev before running the installer.

Frequently Asked Questions

How do I install LibreTime on Ubuntu?

Start with a clean Ubuntu 22.04 or 20.04 server, sync the system clock, install the base packages, then run the official installer script from the cloned repository. The installer handles PostgreSQL, RabbitMQ, Icecast, and Liquidsoap.

What are the system requirements for LibreTime?

LibreTime needs at least 2 vCPU cores, 4 GB of RAM, and 40 GB of storage. It runs on Ubuntu 20.04, Ubuntu 22.04, or Debian 11. Plan for ports 80, 443, and 8000 to be open on your firewall.

How to configure LibreTime after installation?

Log in with the default admin credentials, change your password, then configure station name and timezone in Settings. Add stream outputs, import your audio library, and create test playlists before going live.

How to setup SSL/HTTPS for LibreTime?

Install Certbot, obtain a Let’s Encrypt certificate for your domain, and configure Nginx as a reverse proxy in front of Apache. Update the Icecast and Liquidsoap configuration files to use the same certificate for stream encryption.

How to migrate from Airtime to LibreTime?

Export your Airtime database with pg_dump, then import it into the LibreTime PostgreSQL instance. Copy the /srv/airtime storage directory to /srv/libretime, then re-run the LibreTime installer to apply the new schema migrations.

Final Thoughts

To install LibreTime for radio automation on a fresh Ubuntu server takes about 30 minutes if you follow the steps in order. The Docker path cuts that down to 10 minutes once you have the host prepared.

Start with a clean base install, sync your clock, and avoid the temptation to run the installer as root. Once your test stream plays back clearly and SSH is locked down with HTTPS, you have a solid foundation for a 24/7 station.

If you get stuck, the discourse.libretime.org forum is the most helpful resource. Most issues were fixed by someone in the community six months ago, and the search usually surfaces the answer in under a minute.

Leave a Comment