AzuraCast is a self-hosted web radio management suite, including turnkey installer tools and an easy-to-use web app to manage your stations. http://azuracast.com/
Go to file
Buster "Silver Eagle" Neece 46b4bfe87c Clarify instructions on LetsEncrypt script. 2018-05-07 22:58:20 -05:00
.github Update github new issue template. 2018-02-04 06:41:54 -06:00
app Update migrations path in CLI. 2018-05-06 21:02:02 -05:00
docs Add link to mascot and update background on docs page. 2018-03-11 11:44:04 -05:00
resources Commit new mascot graphics! 2018-02-27 19:55:11 -06:00
tests #566 / #567 Sequential Playlists with Reordering Page (#573) 2018-04-29 18:48:48 -05:00
util Refactor the CLI commands. 2018-05-06 20:57:06 -05:00
web Switch to fixtures for local dev. 2018-05-04 17:04:30 -05:00
.env Environment file for Docker Compose (and other Compose libraries). 2017-06-07 16:08:55 -05:00
.gitattributes Revert removal of supporting libraries as some LS plugins still use them in runtime. 2017-07-10 22:33:41 -05:00
.gitignore Switch to fixtures for local dev. 2018-05-04 17:04:30 -05:00
.travis.yml Update testing code. 2018-05-04 22:42:57 -05:00
CONTRIBUTING.md Remove OpenCollective and add Patreon. Happy 2000th commit! 2018-03-13 20:26:17 -05:00
LICENSE.txt Update casing on files, add SUPPORT.md with common solutions. [skip ci] 2017-07-20 20:33:08 -05:00
README.md Add CLI directions 2018-05-07 09:40:45 -05:00
SUPPORT.md Clarify SFTP connection details. 2018-03-12 13:52:16 -05:00
ansible.cfg Run composer as azuracast user and update permissions accordingly. 2017-10-21 00:05:26 -05:00
codeception.yml Add Mount fixture and fix testing issue. 2018-05-04 17:15:01 -05:00
composer.json Switch to fixtures for local dev. 2018-05-04 17:04:30 -05:00
composer.lock Update composer dependencies. 2018-05-04 22:17:14 -05:00
crowdin.yaml Update Crowdin configuration file 2016-09-30 21:43:18 -05:00
docker-compose.migrate.yml Make DC versions line up. 2018-03-19 18:48:38 -05:00
docker-compose.sample.yml Switch to new AzuraCast containers for essential services. 2018-03-24 23:35:04 -05:00
docker-compose.testing.yml Update testing code. 2018-05-04 22:42:57 -05:00
docker-migrate.sh Move the docker-compose.yml file to a sample one, clean up other compose files. 2018-03-05 22:01:42 -06:00
docker.sh Clarify instructions on LetsEncrypt script. 2018-05-07 22:58:20 -05:00
install.sh Fix issues with apt-key and Deadsnakes repo on 14.04. 2017-08-18 08:15:42 -05:00
uninstall.sh #423 -- Update Ansible compliance, build uninstaller and migrator scripts (#442) 2018-02-19 17:35:43 -06:00
update.sh #423 -- Update Ansible compliance, build uninstaller and migrator scripts (#442) 2018-02-19 17:35:43 -06:00

README.md

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.

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

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

Features

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 Runs Everywhere

Thanks to the power and portability of Docker, you can run a full installation of AzuraCast on virtually any modern server operating system, or even your home Windows or MacOS computer. Using docker, we preassemble "containers" that have all of the necessary software installed and set up already, so with a single file you're up and running. Updates are extremely easy, fast and reliable, too. We highly recommend using the Docker installation whenever possible.

If you want a more "bare-metal" experience and greater customization, you can also use our "Traditional" installer, which requires Ubuntu 16.04 LTS. This installer loads and configures the necessary software directly onto your server; this may interfere with other software, so you should always start with a clean server when possible.

Installing AzuraCast

We strongly recommend installing and using AzuraCast via Docker. All of the necessary software packages are built by our automated tools, so installation is as easy as just pulling down the pre-compiled images. There's no need to worry about compatibility with your host operating system, so any host (including Windows and MacOS) will work great out of the box.

You can use the AzuraCast Docker installer to check for (and install, if necessary) the latest version of Docker and Docker Compose, then pull the necessary files and get your instance running.

curl -L https://raw.githubusercontent.com/AzuraCast/AzuraCast/master/docker.sh > docker.sh
chmod a+x docker.sh
./docker.sh install

Setting up HTTPS with LetsEncrypt: ./docker.sh letsencrypt-create

AzuraCast now supports full encryption with LetsEncrypt. LetsEncrypt offers free SSL certificates with easy validation and renewal.

First, make sure your AzuraCast instance is set up and serving from the domain you want to use.

If you have the Docker utility script from the steps above, you can simply run ./docker.sh letsencrypt-create to set up your LetsEncrypt SSL certificate.

Otherwise, you can use the following manual commands:

docker-compose run --rm letsencrypt certonly --webroot -w /var/www/letsencrypt
docker-compose run --rm nginx letsencrypt_connect YOURDOMAIN.example.com
docker-compose kill -s SIGHUP nginx

Your LetsEncrypt certificate is valid for 3 months. To renew the certificates, run ./docker.sh letsencrypt-renew or manually run this command:

docker-compose run --rm letsencrypt renew --webroot -w /var/www/letsencrypt

Updating: ./docker.sh update

If you have the docker.sh script from the installation steps above, you can run ./docker.sh update to automatically update your installation.

To manually update, from inside the base directory where AzuraCast is copied, run the following commands:

docker-compose down
docker-compose pull
docker-compose run --rm cli azuracast_update
docker-compose up -d

Backup and Restore: ./docker.sh backup and ./docker.sh restore

AzuraCast has utility scripts to allow for easy backup and restoration of Docker volumes.

You can use docker-backup.sh to back up existing volumes. You can specify a custom path as the script's argument. By default, the script will create a file, backup.tar.gz in the app root.

To restore the application's state from this compressed file use docker-restore.sh and provide it with the path of the existing backup file.

Note that the restoration process will replace any existing AzuraCast database or media that exists inside the Docker volumes.

Traditional Installation (Ubuntu 16.04 LTS Only)

Note: Some web hosts offer custom versions of Ubuntu that include different software repositories. These may cause compatibility issues with AzuraCast. Many VPS providers are known to work out of the box with AzuraCast (OVH, DigitalOcean, Vultr, etc), and are thus highly recommended if you plan to use the traditional installer.

AzuraCast is optimized for speed and performance, and can run on very inexpensive hardware, from the Raspberry Pi 3 to the lowest-level VPSes offered by most providers.

Since AzuraCast installs its own radio tools, databases and web servers, you should always install AzuraCast on a "clean" server instance with no other web or radio software installed previously.

Execute these commands as the root user to set up your AzuraCast server:

apt-get update
apt-get install -q -y git

mkdir -p /var/azuracast/www
cd /var/azuracast/www
git clone https://github.com/AzuraCast/AzuraCast.git .

chmod a+x install.sh
./install.sh

If you cannot directly log in as the root account on your server, try running sudo su before running the commands above.

The installation process will take between 5 and 15 minutes, depending on your Internet connection. If you encounter an error, let us know in the Issues section.

Once the terminal-based installation is complete, you can visit your server's public IP address (http://ip.of.your.server/) to finish the web-based setup.

Updating

AzuraCast also includes a handy updater script that pulls down the latest copy of the codebase from Git, flushes the site caches and makes any necessary database updates. Run these commands as any user with sudo permissions:

cd /var/azuracast/www

sudo chmod a+x update.sh
sudo ./update.sh

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.

License

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