Cloud Radio

How to Install AzuraCast on a Linux VPS with Docker

The complete step-by-step guide to deploying a fully working AzuraCast instance on any Linux VPS β€” from a blank server to a live radio station with SSL, AutoDJ, and remote DJ access.

What is AzuraCast and Why Use Docker?

AzuraCast is a free, open-source, self-hosted web radio management suite. It bundles everything a radio station needs β€” Liquidsoap for automation, Icecast or SHOUTcast for streaming, a built-in web player, AutoDJ, scheduling, listener statistics, and a clean web dashboard β€” into a single platform you control completely.

Docker is the recommended install method because it isolates every AzuraCast component into its own container, making updates, backups, and troubleshooting significantly easier. It also means AzuraCast will run identically whether your VPS uses Ubuntu, Debian, or Rocky Linux.

Requirements before you start A Linux VPS with at least 2GB RAM and 20GB disk (4GB RAM recommended for stable 24/7 operation). Ubuntu 22.04 LTS or Debian 12 are the safest choices. Root or sudo access is required.

Step 1 β€” Prepare Your VPS

Connect to your VPS over SSH and run a full system update first. On Ubuntu or Debian:

apt update && apt upgrade -y

Set your server hostname. Replace radio.yourdomain.com with your actual domain pointing to this VPS:

hostnamectl set-hostname radio.yourdomain.com

Make sure ports 80, 443, and 8000 (or your chosen streaming port) are open in your VPS firewall. On Ubuntu with UFW:

ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 8000/tcp
ufw enable

Step 2 β€” Install Docker

AzuraCast requires Docker and Docker Compose. The fastest way is using the official Docker convenience script:

curl -fsSL https://get.docker.com | sh

Verify Docker is running:

docker --version
docker compose version

Both commands should return version numbers. If Docker Compose is missing, install it separately:

apt install docker-compose-plugin -y

Step 3 β€” Install AzuraCast

Create a dedicated directory for AzuraCast and run the official installer:

mkdir -p /var/azuracast
cd /var/azuracast
curl -fsSL https://raw.githubusercontent.com/AzuraCast/AzuraCast/main/docker.sh > docker.sh
chmod a+x docker.sh
./docker.sh install

The installer will ask you a few questions β€” accept the defaults unless you have specific needs. It will pull all required Docker images and start the containers. This typically takes 5–10 minutes depending on your server speed.

Tip: During install, choose "LetsEncrypt" when asked about SSL. The installer will automatically request and configure a free SSL certificate for your domain β€” as long as your domain's DNS A record is already pointing to your VPS IP.

Step 4 β€” Initial Web Setup

Once installation finishes, open a browser and navigate to https://radio.yourdomain.com. You will see the AzuraCast setup wizard. Create your administrator account, set up your first radio station, and configure your station's name, description, and genre.

At the "Broadcasting" step, choose between Icecast (recommended for most stations) or SHOUTcast. Set your bitrate β€” 128kbps MP3 is the standard for quality streaming with reasonable bandwidth use.

Need this set up for you?

We deploy AzuraCast on VPS daily β€” including Docker, SSL, AutoDJ, and remote DJ access. Usually done same day.

Get It Done For Me β†’

Step 5 β€” Configure AutoDJ and Liquidsoap

AzuraCast uses Liquidsoap as its AutoDJ engine. To configure it, go to your station β†’ Media and upload your music files. Then go to Playlists and create a playlist. Assign tracks to it and set the rotation type β€” General Rotation plays randomly with weights, Scheduled plays only during specific time blocks.

For jingles, create a separate playlist and set it to "Once per X Songs" under the Advanced Playlist settings. This ensures jingles fire automatically between tracks at the interval you specify.

Enable AutoDJ under Station β†’ Profile β†’ Edit and make sure "Enable AutoDJ" is checked. Save and restart the station β€” your radio should now be broadcasting automatically.

Step 6 β€” Set Up Remote DJ Access

To allow live DJs to broadcast into your station, go to Station β†’ Streamers / DJs and create a DJ account. Give it a username and password. The DJ will connect using broadcasting software like BUTT, Mixxx, or SAM Broadcaster using these settings:

  • Host: radio.yourdomain.com
  • Port: 8000 (or your configured port)
  • Mount: /live
  • Username and password from the DJ account

When a DJ connects, AzuraCast automatically switches from AutoDJ to the live source and switches back when the DJ disconnects.

Step 7 β€” Updates and Backups

To update AzuraCast in the future, run:

cd /var/azuracast && ./docker.sh update

For backups, AzuraCast has a built-in backup system under Administration β†’ Backups. You can schedule automatic backups and download them, or configure them to upload directly to cloud storage. Always keep a backup before any major update.

Common mistake: Never update AzuraCast while a live DJ is broadcasting. Always schedule updates during low-listener hours and notify your DJs beforehand. The update process restarts all containers briefly.

Common Issues and Fixes

SSL certificate not working: Make sure your domain's DNS is fully propagated before running the installer. Use dig radio.yourdomain.com to confirm the A record points to your VPS IP.

Stream not playing in the web player: Check that port 8000 is open in your firewall and that your browser isn't blocking mixed content. HTTPS player requires HTTPS stream β€” ensure SSL is correctly configured.

AutoDJ playing silence: This almost always means your music library hasn't been fully processed yet. Go to Media β†’ run "Process All" and wait for the analysis to complete before testing.

Containers not starting after reboot: Run cd /var/azuracast && docker compose up -d to restart all containers manually. To make this automatic, ensure Docker is enabled as a system service: systemctl enable docker.