Workload · Running AzuraCast radio

Your own AzuraCast server, from an empty machine to your first station

To run AzuraCast you need a 64-bit server that can run Docker, with at least 2 GB of memory and 20 GB of disk; its developers suggest 4 processor cores, 4 GB of memory and 40 GB of disk if you plan on several stations. The software itself costs nothing, even for a commercial station. This page walks you through choosing the machine, installing it so nobody else gets to the setup screen first, and keeping it backed up.

The short version
  1. Free, open-source radio software, commercial stations included
  2. 4 cores, 4 GB of memory and 40 GB of disk covers a hobby setup of 5 to 10 stations
  3. About 6,250 listeners at 128 kbps fit a 1 Gbps port with room to spare
  4. Lock the setup screen to your own address until your admin login exists

Free software, with you as the station engineer

AzuraCast bundles everything a web radio station needs into one package: a control panel, an AutoDJ that plays your library, live DJ logins, and the streaming server listeners connect to. Its developers publish it for free and ask for donations if it helps you.

The trade is upkeep. You apply the updates, you check the backups, and you are the one who looks when a station goes quiet. Music licences stay your job too: the project states it is not responsible for royalties, and our royalty fees guide explains who collects them in the US.

How big a server do you need?

Smaller than you might think, as long as you leave room for music. The project's requirements page puts it like this:

  • Bare minimum: a 64-bit Intel/AMD or ARM processor, 2 GB of memory, 20 GB of disk. The docs warn there is no guarantee it runs perfectly at this size.
  • Recommended: 4 cores, 4 GB of memory, 40 GB of disk, which they describe as hobby use, roughly 5 to 10 stations.
  • Operating system: a clean, minimal Ubuntu or Debian LTS install with no Docker already on it. The most recent Ubuntu on their recommended list is 22.04 LTS.
  • Avoid: OpenVZ or LXC hosts, where Docker sometimes will not run, and CentOS, which leans on Podman instead.

Our advice on top of that: those disk figures are for the software. Your music library, recordings and backups come on top, so pick drives for the size of your collection.

Will the connection keep up with your audience?

Yes, with plenty to spare for most stations. Every listener receives a full copy of your stream, so the sum is listeners multiplied by bitrate. Our streaming page works it out keeping a fifth of the port spare: on a 1 Gbps port that is about 6,250 people listening at once at 128 kbps.

What matters more than the peak is the month. A station that plays all day sends data all month, and on many hosting plans that eventually meets a transfer cap. Ours have none: the port is sold as a speed, and nothing counts what leaves it.

The server that fits

A dedicated streaming server is a whole physical machine that only you use, which is exactly what AzuraCast's Docker setup is happiest on: no shared container host underneath, no neighbour on the processor while your AutoDJ mixes. You get root, and Ubuntu installs at no charge.

  • A machine already in the rack goes live roughly 30 minutes after your payment clears approval.
  • Blade, rack and the larger cartridge lines come with a remote iLO or iDRAC console, so you can see the screen even when the server will not answer. The smaller cartridges have power control and a reinstall button instead.
  • Ten of our eighteen lines include a 1 Gbps port; the rest come with 500 Mbps, which you can raise.
  • Need more disk for a big library? The rack lines take twelve to twenty-four drives with hardware RAID; you can choose each part on a custom build.
  • Phone, live chat and tickets at every hour, on every plan.

Up and running in an evening

One thing to know first: whoever opens the new panel first gets to create the main administrator. Docker also opens its ports past Ubuntu's ufw firewall, so ufw cannot hide that screen. The fix, adapted from Docker's own documentation, is a temporary rule that lets only your IPv4 address in. It does not cover IPv6, so when your machine also has an IPv6 address you close ports 80 and 443 there for the same short while. Log in over SSH as root and follow these steps.

  1. Look up your home or office public IP address, and on the server note the name of its network interface with ip -br addr.
  2. Create the folder, download AzuraCast's installer script and install Docker with it.
  3. Add the two temporary rules, with your own address and interface in them.
  4. Run the installer and answer its questions about release channel and settings. When it finishes, check from a different connection, such as your phone's mobile data, that neither http://your-server-IPv4/ nor http://[your-server-IPv6]/ opens.
  5. From your own connection, visit your server's address in a browser, create your administrator account with a strong password, and finish the setup the panel guides you through.
  6. Delete the temporary rules, using the same lines with -D in place of -I. Your stations are now public.
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-docker

# temporary: only 198.51.100.7 (you) may open new connections
# replace eth0 and 198.51.100.7 with your interface and address
iptables -I DOCKER-USER -i eth0 ! -s 198.51.100.7 -m conntrack --ctstate NEW -j DROP
# IPv6 is not covered by the line above: shut 80/443 there for now
ip6tables -I INPUT -i eth0 -p tcp -m multiport --dports 80,443 -j DROP

./docker.sh install

# after your admin account exists:
iptables -D DOCKER-USER -i eth0 ! -s 198.51.100.7 -m conntrack --ctstate NEW -j DROP
ip6tables -D INPUT -i eth0 -p tcp -m multiport --dports 80,443 -j DROP

Add HTTPS after the rules are gone. AzuraCast's built-in Let's Encrypt needs a domain or subdomain pointed at the server and the standard ports 80 and 443, and the certificate checks arrive from outside addresses. The temporary rules also disappear if the server reboots.

Doors your listeners and DJs walk through

  • 80 and 443: the control panel and the secure web address.
  • 2022: AzuraCast's own SFTP server, handy for uploading a whole music folder with FileZilla or WinSCP.
  • 8000 to 8499: station ports, handed out automatically as you add stations. That range covers your first 50 stations; more needs a small override file, explained in the project's Docker guide.
  • DJ connections: your presenters type the port from the station's info page into BUTT, Mixxx or RadioBOSS. If you put a proxy service in front of the panel, give DJs the server's plain IP address, because those services often block the DJ ports.

If listeners on secure websites hear nothing, the docs suggest making sure the Use Web Proxy option in System Settings is switched on.

Keeping your stations safe

Under System Administration, the Backup page lets you schedule automatic backups, take one on demand and download earlier ones, and the project says running them does not interrupt your broadcast. Two habits make them worth having:

  1. Keep a copy somewhere other than the server. AzuraCast can write backups to S3-compatible storage or Dropbox, or you can download them.
  2. Before every update, take a fresh backup. Then run ./docker.sh update-self followed by ./docker.sh update from /var/azuracast. Your stations go off air for a short while during the update, so choose a quiet hour.

Restoring with ./docker.sh restore replaces your current installation's data with what the backup holds, and a backup taken with the --exclude-media option has no music in it to return, so try it once on a spare machine before you ever need it for real.

Rather not run a server at all?

That is a perfectly good choice. If you want a station on air without updates, backups or certificates to look after, our radio hosting plans give you a ready station with an https:// link, with Auto DJ on the paid plans. Choose AzuraCast on your own server when you want many stations under one panel, or full control of every setting.

Questions people ask

Can I start with the minimum and grow later?
You can, but the developers describe 2 GB as the barest floor with no promise it runs well. Starting at the recommended 4 GB saves a move later. On our servers memory, disks and the port can be added to the machine you already have, without a new IP address.
What happens to the music I upload?
It sits on your server's disks inside AzuraCast's storage, or in an S3-compatible bucket or Dropbox if you set a remote storage location. A backup taken with --exclude-media leaves the songs out to keep the file small, so make sure your music is saved somewhere else as well.
Do I need my own domain name?
Only for HTTPS. The panel works on its IP address straight away, but Let's Encrypt will not issue a certificate for an IP, so point a name like radio.yourstation.com at the server before you switch it on.
Can I install it on Windows?
The project supports Windows 10 and 11 through Docker Desktop and WSL2, which suits trying it at home. For a station that has to stay on air, a Linux server is the setup the docs centre on, with the installer script doing the Docker work for you.
Will my stations keep playing while I make a backup?
Yes. Backups started from the web panel do not cut off your broadcast or your listeners, according to the AzuraCast docs. Updates are different: stations drop off air briefly, so schedule those.

Give your stations a server of their own

A whole machine, a port nobody meters, and Ubuntu ready for the AzuraCast installer about 30 minutes after approval.

Get a server for your radio stations

Read next