A self-hosted web radio management suite, including turnkey installer tools and an easy-to-use web app to manage your stations.
PHP JavaScript HTML CSS Other
Clone or download
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Delete ISSUE_TEMPLATE.md Jun 13, 2018
app #666 -- Convert length from smallint to int for songs longer than...… Jul 16, 2018
resources Shiny new default station sound for 2018 Jul 17, 2018
tests Okay never mind don't ignore those files Jul 13, 2018
util Changes to bring local testing and Travis CI in line with one another. Jul 13, 2018
web #641 -- Automatically truncate long song/artist titles Jul 4, 2018
.editorconfig Add .editorconfig Jun 13, 2018
.env Environment file for Docker Compose (and other Compose libraries). Jun 7, 2017
.gitattributes Revert removal of supporting libraries as some LS plugins still use t… Jul 11, 2017
.gitignore Okay never mind don't ignore those files Jul 13, 2018
.travis.yml Switching order of initial operations on Travis Jul 13, 2018
CONTRIBUTING.md Remove OpenCollective and add Patreon. Happy 2000th commit! Mar 14, 2018
LICENSE.txt Update casing on files, add SUPPORT.md with common solutions. [skip ci] Jul 21, 2017
README.md Prefer to use HTTPS URLs for services Jul 16, 2018
SUPPORT.md Add Docker Utility Script commands to support May 13, 2018
ansible.cfg Run composer as azuracast user and update permissions accordingly. Oct 21, 2017
codeception.yml Add Mount fixture and fix testing issue. May 4, 2018
composer.json Composer update and ignoring autogenned unit test files. Jul 13, 2018
composer.lock Composer update and ignoring autogenned unit test files. Jul 13, 2018
crowdin.yaml Update Crowdin configuration file Oct 1, 2016
docker-compose.dev.yml Changes to bring local testing and Travis CI in line with one another. Jul 13, 2018
docker-compose.migrate.yml Make DC versions line up. Mar 19, 2018
docker-compose.sample.yml Create new local-dev-specific docker-compose file for easy spinup Jul 10, 2018
docker-compose.testing.yml Changes to bring local testing and Travis CI in line with one another. Jul 13, 2018
docker-migrate.sh Move the docker-compose.yml file to a sample one, clean up other comp… Mar 6, 2018
docker.sh Clarify instructions on LetsEncrypt script. May 8, 2018
install.sh Fix issues with apt-key and Deadsnakes repo on 14.04. Aug 18, 2017
uninstall.sh #423 -- Update Ansible compliance, build uninstaller and migrator sc… Feb 19, 2018
update.sh #628 -- Switch all IP geolocation to be local via the MaxMind GeoLit… Jul 3, 2018


AzuraCast: A Self-Hosted Web Radio Manager

Build Status Apache 2.0 License Docker Pulls Twitter Follow

AzuraCast is a self-hosted, all-in-one web radio management kit. Using its easy installer and powerful but intuitive web interface, you can start up a fully working web radio station in a few quick minutes.

AzuraCast works for web radio stations of all types and sizes, and is built to run on even the most affordable VPS web hosts. The project is named after Azura Peavielle, the mascot of its predecessor project. AzuraCast also has its own project mascot, Azura Ruisselante created by the talented artist Tyson Tan.

AzuraCast is currently in beta. Many web radio stations already run AzuraCast, but keeping your server up-to-date with the latest code from the GitHub repository is strongly recommended for security, bug fixes and new feature releases. It's unlikely, but updates may result in unexpected issues or data loss, so always make sure to keep your station's media files backed up in a second location.

To install AzuraCast, you should have a basic understanding of the Linux shell terminal. Once installed, every aspect of your radio station can be managed via AzuraCast's simple to use web interface.

Live Demo

Want to see AzuraCast for yourself? Check out screenshots or visit our demo site at demo.azuracast.com:

  • Username: demo@azuracast.com
  • Password: demo

Install AzuraCast

  • Docker Installation (Recommended): Docker offers an easy-to-use experience with prebuilt images. Updates are simple and AzuraCast won't interfere with other software on your server. You should use this method whenever possible.

  • Traditional Installation: For advanced users, if you want more customizability or need to run a leaner installation, you can use the Traditional installation method to install AzuraCast on Ubuntu servers.


With AzuraCast, you can:

  • Manage your Media: Upload songs from the web, organize music into folders, and preview songs in your browser.
  • Create Playlists: Set up standard playlists that play all the time, scheduled playlists for time periods, or special playlists that play once per x songs, or once per x minutes.
  • Set Up Live DJs: Enable or disable live broadcasting from streamers/DJs, and create individual accounts for each streamer to use.
  • Take Listener Requests: Let your listeners request specific songs from your playlists, both via an API and a simple public-facing listener page.
  • Track Analytics and Reports: Keep track of every aspect of your station's listeners over time. View reports of each song's impact on your listener count.
  • Let Station Autopilot Do the Work: AzuraCast can automatically assign songs to a playlist based on the song's impact on listener numbers.
  • Delegate Management: Create and remove separate administrator accounts for each station manager.
  • Build Your Own Radio Player: AzuraCast's powerful, well-documented API lets you control your station from software built in any programming language.
  • Integrate with TuneIn, Discord and More: The new web hook system lets you broadcast changes in your station to third party services.
  • ...and more.

What's Included

Whether you're using the traditional installer or Docker containers, AzuraCast will automatically retrieve and install these components for you:

Radio Software

  • Liquidsoap as the always-playing "AutoDJ"
  • Icecast 2.4 as a radio broadcasting frontend (Icecast-KH installed on supported platforms)
  • SHOUTcast 2 DNAS as an alternative radio frontend (x86/x64 only)

Supporting Software

  • NGINX for serving web pages and the radio proxy
  • MariaDB as the primary database
  • PHP 7.2 powering the web application
  • InfluxDB for time-series based statistics
  • Redis for sessions, database and general caching

AzuraCast API

Once installed and running, AzuraCast exposes an API that allows you to monitor and interact with your stations. Documentation about this API and its endpoints are available on the AzuraCast API Documentation.


AzuraCast is licensed under the Apache license, version 2.0. This project is free and open-source software, and pull requests are always welcome.

Questions? Comments? Feedback?

AzuraCast is a volunteer project, and we depend on your support and feedback to keep growing. Issues for this codebase are tracked in this repository's Issues section on GitHub. Anyone can create a new issue for the project, and you are encouraged to do so.

Friends of AzuraCast

We would like to thank the following organizations for their support of AzuraCast's ongoing development:

  • DigitalOcean for generously providing the server resources we use for our demonstration instance, our staging and testing environments, and more
  • JetBrains for making our development faster, easier and more productive with tools like PhpStorm
  • CrowdIn for giving us a simple and powerful tool to help translate our application for users around the world
  • The creators and maintainers of the many free and open-source tools that AzuraCast is built on, who have done so much to help move FOSS forward

Support AzuraCast Development

AzuraCast will always be available free of charge, but if you find the software useful and would like to support the project's lead developer, visit either of the links below. Your support is greatly appreciated.

Buy Me a Coffee at ko-fi.com