Build a radio station with Ubuntu and AzuraCast

Community radio gives local voices a place to connect through music, interviews, public information and specialist shows. Ubuntu provides a reliable foundation for the technology, while AzuraCast turns the complicated parts of internet broadcasting into a manageable web interface. With the right hardware, a suitable server and careful attention to licensing, even a small team can operate a station for listeners across Australia and overseas.

AzuraCast combines Liquidsoap, Icecast and a browser-based control panel for playlists, live streams, transcoding and listener statistics. It works particularly well on Ubuntu Server, but the software alone does not determine the station’s quality. Clear programming, responsible content management and a plan for keeping the service online matter just as much as the choice of streaming formats or mount points.

Plan the station before touching the server

Start by defining what the station will broadcast. A continuous music service has different technical and licensing requirements from a live talk show, a community events channel or a volunteer-run youth programme. Note the expected number of listeners, recording schedule, music sources and operating hours. This makes it easier to choose hardware and bandwidth without paying for capacity the station will never use.

Australian broadcasters should also check their obligations with the Australian Communications and Media Authority before transmitting. Depending on the service, an ACMA broadcasting licence may be required, while recorded music can involve licences through APRA AMCOS and the PPCA. Rules for advertising, competitions, defamation, privacy and sponsored announcements also apply. If Indigenous stories, language, artwork or music are included, involve the relevant communities and follow appropriate cultural protocols.

Budget for more than the server itself. A dependable computer, microphone, audio interface, headphones, backup storage and an uninterruptible power supply protect the broadcast. Local conditions matter as well: an NBN connection may suit a metropolitan station, while fixed wireless, 4G or 5G can provide regional coverage. A hosted virtual server can add resilience, although it introduces monthly costs and another provider to trust.

Prepare Ubuntu, Docker and the network

Install a supported Ubuntu Server LTS release on a dedicated machine or virtual private server. Update the system, create a non-default administrative user, enable SSH keys and apply automatic security updates. Docker Engine and its Compose plugin are then required because AzuraCast packages its services into containers. Keep the Docker installation and Compose file aligned with the version of AzuraCast being deployed.

The server needs a stable address and correctly opened ports. The AzuraCast interface and public streams must be reachable, while database administration should remain restricted to trusted addresses. Ubuntu’s Uncomplicated Firewall can limit access, and a reverse proxy with a valid TLS certificate provides encryption for listeners using the station’s website or web player. Document every port and avoid opening the entire Docker port range without a specific reason.

Decide whether the public stream will use a home connection, a data-centre server or a combination. NAT and residential IP address changes can complicate streaming, whereas a hosted server offers predictable routing. For redundancy, keep a second inexpensive virtual server ready with current configuration and tested backup files. A separate backup location is important because a backup stored only on the live machine provides little protection against disk failure.

Install AzuraCast and protect its admin panel

Obtain the current AzuraCast release and its example Compose configuration from the project’s official repository. Set a unique administrator username and strong password in the environment file before starting the containers. The initial docker compose pull and docker compose up -d commands download the required images and start the streaming stack. The setup wizard should then be opened through a browser, preferably over HTTPS.

Complete the station details, create a mount point and decide whether it will carry live audio, an automated playlist or both. AzuraCast uses Liquidsoap to schedule material and Icecast to distribute the resulting stream. Public HLS and Icecast URLs are generated automatically, with options for additional mounts and encoders. Test each URL from a device outside the server’s local network, since a stream that works on the desktop may still be blocked by a router or firewall.

Secure the panel with a long password, restricted user accounts and multi-factor authentication where available. Disable the setup route after configuration, retain only essential administrator accounts and record changes in a maintenance log. Automatic container updates are useful, but an administrator should read release notes first. Before every major update, back up the configuration, database, playlists and station artwork, then verify that the restored system can actually start.

Configure music, live mixing and automatic playback

Upload or mount a well-organised music library and create playlists for different programmes. Liquidsoap can apply crossfades, announce tracks, remove excessive silence and fall back to an auto-DJ when a live presenter finishes early. MP3 remains useful for broad compatibility, while AAC works efficiently on mobile devices and Opus can preserve quality at lower bitrates. Avoid lossless delivery over a public connection unless listeners clearly need it and sufficient bandwidth is available.

Live shows need a dependable path from the mixing desk to the stream. Mixxx is a useful choice for radio-style mixing, with effects, key control and outputs that can be directed to Icecast through PulseAudio or PipeWire. Headphones help prevent accidental feedback into the microphone. Keep the mixing software closed during automated broadcasts, and add a limiter or compressor to control sudden level changes before the signal reaches the encoder.

Schedule recordings and voice tracks in advance, then check that transitions do not clip the beginning or end of speech. Store production files separately from the live music library and label them consistently. If several volunteers share a studio, create standard input levels, microphone settings and backup procedures. Familiarity reduces mistakes more effectively than a complex control panel, particularly for presenters who broadcast only once a month.

Publish the stream and build a listener home

Create a simple station website containing the player, programme guide, presenter information, contact details and current notices. For the written side of the station, a simple update page can be created alongside the player; this blogging guide offers a beginner-friendly starting point for publishing schedules, interviews and news. An embedded player lets visitors listen without leaving the page, while a direct stream link supports media players and podcast-style applications.

Test the experience on mobile data rather than only office broadband. A modest AAC or Opus stream can work on a congested 4G connection in regional Australia, whereas an unnecessarily large file may stall. Offer clear links rather than forcing installation of a custom app, and publish the usual internet radio directory listings once the stream is stable. Metadata should identify the station and programme consistently so listening software can display useful track information.

Australian listeners may be spread across different states and time zones. Label schedules clearly as Eastern, Central or Western time rather than assuming everyone follows daylight-saving changes in the same way. Promotional material can adopt a friendly local tone, but it should remain authentic: phrases such as “the arvo show” or “no worries” fit some communities better than others. Campaigns spotlighting venues, festivals and unsigned acts in Melbourne, Sydney, Brisbane, Perth, Adelaide or regional towns can give the station a stronger local identity.

Run the station as a trusted community service

Establish a routine for monitoring uptime, stream quality, disk space and listener statistics. AzuraCast provides historical information that can reveal recurring problems, such as a broken encoder, an overloaded upload or a playlist that repeatedly fails. Keep an eye on server resources and rotate stored recordings. Test the emergency restoration procedure monthly, because an untested backup is merely an optimistic file collection.

Moderate guest posts and listener submissions before publishing. A rogue payment link illustrates why an editor should inspect unfamiliar destinations instead of pasting them automatically; the same rule applies to media files and embedded players. Volunteers should receive guidance on copyright, sponsorship disclosure, respectful discussion and correcting mistakes. Listeners need a straightforward way to report inaccurate information without requiring technical knowledge.

Treat promotion as part of community participation rather than a separate marketing exercise. Local musicians, community organisations and small Australian businesses may support the station with interviews, events, prizes or sponsorship. Confirm that promotional claims and advertising are approved before they air, and keep a written record of permissions for commissioned material. The station should also make clear that it is not a substitute for emergency services or an official authority during incidents.

Use feedback to improve the schedule, sound and moderation process. Keep a visible archive of interviews, community notices and locally produced music, then share selected items with permission. As the station grows, separate volunteer duties so that access to the server, playlist editing and publishing are not controlled by a single person. Regular training sessions help new presenters feel comfortable while protecting the station from accidental changes.

Ubuntu and AzuraCast can supply the technical foundation for a professional internet radio service, from automatic playback to live mixing and listener statistics. The durable station comes from clear permissions, tested backups, careful bandwidth choices and an active local community. AzuraCast handles much of the streaming machinery, while trust, consistency and thoughtful programming remain firmly in the hands of the people behind the microphone.