AzuraCast on Ubuntu 24.04 on Azure User Guide
Overview
AzuraCast is a free, self hosted, all in one web radio management suite. It lets you run one or many internet radio stations from a single modern web interface, with a media library, playlists and smart scheduling, live DJ and streamer input, request and podcast features, detailed listener statistics and ready made public player pages. Broadcasting is handled by a bundled Icecast and SHOUTcast frontend driven by Liquidsoap. The cloudimg image runs AzuraCast the officially supported way, as the upstream all in one container that also bundles MariaDB, Redis, Liquidsoap and Icecast, orchestrated by Docker Compose under systemd. The image is pinned by digest and captured into the VM, so your instance starts in seconds. A unique super administrator and database password are generated for each VM on first boot, before the port is reachable, and the super administrator is pre seeded so nobody can claim your instance through the setup wizard before you sign in. A demo station is created for you so the appliance is useful the moment it boots. Backed by 24/7 cloudimg support.
AzuraCast is a trademark of its respective owner. This image is produced by cloudimg and is not affiliated with, endorsed by, or sponsored by AzuraCast. It ships the free and open source AGPL 3.0 web radio suite, unmodified.

What is included:
- AzuraCast (the AGPL 3.0 web radio suite, from the official stable channel), pinned by image digest
- A single all in one container that also bundles MariaDB and Redis, both reachable only inside the container and never published to a host port, plus Liquidsoap and an Icecast or SHOUTcast frontend
- Docker Engine (Docker CE) with the AzuraCast web interface on port
80and the station broadcast ports8000to8030 azuracast.serviceandazuracast-firstboot.serviceas systemd units, enabled and active on boot- A unique MariaDB password and a pre seeded super administrator with a per VM password, generated on first boot and never baked into the image
- A default station created on first boot, with no default account and no shipped secret
- 24/7 cloudimg support
Prerequisites
An active Azure subscription, an SSH key pair, and a VNet plus subnet in the target region. Standard_B2s (2 vCPU / 4 GiB RAM) is a sensible starting point for evaluation; choose a larger size such as Standard_B2ms (8 GiB RAM) or bigger for active streaming to many listeners. NSG inbound: allow 22/tcp from your management network, 80/tcp for the web interface and the proxied stream, and 8000/tcp for the direct Icecast stream. AzuraCast serves plain HTTP on port 80; for production, put it behind TLS with your own domain (see the final section).
Step 1 - Deploy from the Azure Marketplace
- In the Azure portal, choose Create a resource and search the Marketplace for the cloudimg AzuraCast offer.
- Select the plan, then Create.
- On the Basics tab pick your subscription, resource group and region, name the VM, and select Standard_B2s (or larger).
- Choose SSH public key authentication with admin username
azureuserand provide your public key. - On the Networking tab, allow inbound
22/tcpfrom your management network,80/tcpfor the web interface, and8000/tcpfor the Icecast stream. - Review and create. When the VM is running, note its public IP address.
Step 2 - Deploy from the Azure CLI
az vm create \
--resource-group my-azuracast-rg \
--name azuracast \
--image cloudimg:azuracast:default:latest \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys \
--public-ip-sku Standard
Open the ports the web interface and stream need (SSH is opened by default):
az vm open-port --resource-group my-azuracast-rg --name azuracast --port 80 --priority 900
az vm open-port --resource-group my-azuracast-rg --name azuracast --port 8000 --priority 910
Step 3 - Connect to your VM
Replace <vm-ip> with your VM's public IP address:
ssh azureuser@<vm-ip>
Step 4 - Confirm the services are running
AzuraCast comes up automatically on first boot as a single container running under Docker Compose. Confirm the services are active:
sudo systemctl is-active docker azuracast
Expected output:
active
active
The all in one container publishes the web UI on port 80 and the station broadcast ports from 8000. MariaDB and Redis run inside the container on the loopback interface and are never published to a host port.

Step 5 - Secure by default: the super administrator is pre seeded
A fresh AzuraCast instance has no users, and the very first account created through the setup wizard becomes the super administrator. On a public server that is a risk: whoever reaches the setup page first would own your instance. The cloudimg image closes this. On first boot, before the port is reachable, a unique super administrator is created with a per VM password, so the instance is already claimed. After that the setup wizard is permanently closed and self hosted AzuraCast has no open sign up: new users are added by an administrator only.
You can see the whole posture at a glance. The admin API is closed without a login, a blank or wrong password is rejected, only the per VM admin password is accepted, and a repeat of the setup wizard is refused because a super administrator already exists:

Read your unique credentials (they are written to a root only file):
sudo cat /root/azuracast-credentials.txt
The file holds the AzuraCast URL, the admin email (admin@azuracast.local) and the per VM admin password. Keep it safe.

Step 6 - Sign in to AzuraCast
Open http://<vm-ip>/ in your browser. You are met with the AzuraCast login screen: there is no anonymous access to the management interface. Sign in with the admin email and the password from the credentials file.

Step 7 - The dashboard
After signing in you land on the global dashboard. It shows your account as a super administrator, a listeners per station chart, and quick links into administration. From here you manage every station on the server, system settings, users and updates.

Step 8 - Manage your station
The image creates a demo station, cloudimg Radio, so you have something to work with immediately. Open it from the dashboard to reach the station overview. From here you configure the broadcasting frontend (Icecast by default, on port 8000), the AutoDJ, live streamers and DJs, the public pages, requests and podcasts. Rename or replace the demo station, or create more, from Administration.
The station overview is shown at the top of this guide. Each station has its own media library, playlists, schedule, streamers, web hooks and public pages, all reached from the station sidebar.
Step 9 - Upload media and build playlists
Open Media in the station sidebar to reach the music library. Drag and drop audio files to upload them, or upload in bulk over SFTP, then organise them into playlists that the AutoDJ plays on a schedule or at random. Once a playlist has media assigned, start the station and the Icecast frontend begins broadcasting.

Step 10 - Check liveness and the public station API
AzuraCast exposes an unauthenticated status endpoint and a public stations endpoint. They are handy for monitoring and for confirming the pre seeded station is present:
curl -s http://127.0.0.1/api/status
Expected output:
{"online":true,"timestamp":1784447636}
List the public stations, including the demo station and its stream URL:
curl -s http://127.0.0.1/api/stations

Listeners tune in through the public player page at http://<vm-ip>/public/cloudimg_radio, or directly at the stream URL http://<vm-ip>/listen/cloudimg_radio/radio.mp3.
Step 11 - Production: your own domain with TLS
AzuraCast serves plain HTTP on port 80. For production, point a DNS record at the VM, then use AzuraCast's built in Let's Encrypt support: sign in, open Administration, System Settings, General, set the base URL to your https domain, enable the automatic HTTPS certificate, and save. AzuraCast obtains and renews the certificate for you and serves the interface and the stream over TLS. Restrict the network security group to the ports and sources you need before going live.
Support
Every cloudimg image includes 24/7 support. If you have any questions about deploying or operating AzuraCast on Azure, contact the cloudimg team through the Azure Marketplace listing or at www.cloudimg.co.uk.