AzuraCast is a self-hosted web radio management suite, including turnkey installer tools and an easy-to-use web app to manage your stations.
Clone or download
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Delete Jun 13, 2018
bootstrap Use the new azuracast/nowplaying library to abstract NP generation. Sep 13, 2018
config Switch to Guzzle middleware for the enhanced SSL CA bundle fetching. Sep 14, 2018
resources Closes #794 -- Make Chosen fields the proper width Sep 16, 2018
src #802 -- Update to OpenAPI 3.0 spec Sep 18, 2018
tests Restructure Adapter class constants Aug 19, 2018
util #802 -- Update to OpenAPI 3.0 spec Sep 18, 2018
web #802 -- Update to OpenAPI 3.0 spec Sep 18, 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 #727 -- Prevent traditional update from wiping config Aug 22, 2018
.travis.yml Switching order of initial operations on Travis Jul 13, 2018 Add Contributor Covenant Code of Conduct Sep 12, 2018 Remove OpenCollective and add Patreon. Happy 2000th commit! Mar 14, 2018
LICENSE.txt Update casing on files, add with common solutions. [skip ci] Jul 21, 2017 Prefer to use HTTPS URLs for services Jul 16, 2018 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 Core code restructure (#697) Aug 4, 2018
composer.json #802 -- Update to OpenAPI 3.0 spec Sep 18, 2018
composer.lock #802 -- Update to OpenAPI 3.0 spec Sep 18, 2018
crowdin.yaml Update Crowdin configuration file Oct 1, 2016 #757 -- Refactor the AzuraCast AutoDJ into its own class, employ new … Aug 29, 2018
docker-compose.migrate.yml Make DC versions line up. Mar 19, 2018
docker-compose.sample.yml #722 -- Avoid assigning to port 8080 (InfluxDB uses ports in the range) Aug 16, 2018
docker-compose.testing.yml Changes to bring local testing and Travis CI in line with one another. Jul 13, 2018 Move the docker-compose.yml file to a sample one, clean up other comp… Mar 6, 2018 Clarify instructions on LetsEncrypt script. May 8, 2018 Fix issues with apt-key and Deadsnakes repo on 14.04. Aug 18, 2017 #423 -- Update Ansible compliance, build uninstaller and migrator sc… Feb 19, 2018 #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

  • Username:
  • 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