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 e370d27e95 Run composer as azuracast user and update permissions accordingly. 2017-10-21 00:05:26 -05:00
app Optimize the previous commit. 2017-10-20 17:20:05 -05:00
docs Brighten up landing page. 2017-09-29 21:25:03 -05:00
resources Replace IceCast with IceCast-KH for stream performance and license reporting reasons. 2017-05-16 23:11:45 -05:00
tests Broaden the scope of unit tests. 2017-08-20 12:44:51 -05:00
util Run composer as azuracast user and update permissions accordingly. 2017-10-21 00:05:26 -05:00
web Prevent page number reset when doing actions on files page. 2017-10-17 20:48:22 -05:00
.codeclimate.yml Update exclude folder on CodeClimate. 2017-09-24 07:10:47 -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 Allow custom filenames for Docker backup and restore. 2017-09-01 01:10:35 -05:00
.travis.yml Move Docker images to separate repos. 2017-09-13 06:25:01 -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 Clean up the readme. 2017-09-24 07:08:34 -05:00
SUPPORT.md Add instructions for custom docker-compose files. 2017-10-12 12:28:19 -05:00
Vagrantfile Break out from old Zend-style modular framework to new PSR-friendly style: move configs into single "config" directory, controllers into src/Controller, templates into single "templates" directory. 2017-01-17 03:48:14 -06:00
ansible.cfg Run composer as azuracast user and update permissions accordingly. 2017-10-21 00:05:26 -05:00
codeception.yml Update code coverage to remove the now-removed files. 2017-05-02 16:24:55 -05:00
composer.json Update composer dependencies. 2017-09-17 13:54:36 -05:00
composer.lock Run composer as azuracast user and update permissions accordingly. 2017-10-21 00:05:26 -05:00
crowdin.yaml Update Crowdin configuration file 2016-09-30 21:43:18 -05:00
docker-backup.sh Update recent-request check to also use the station request threshold. 2017-10-15 16:01:46 -05:00
docker-compose.debug.yml Rename docker shell scripts to match docker-compose style; add fixtures to non-dev environments (for demo server). 2017-09-13 00:10:22 -05:00
docker-compose.dev.yml Reference the separate repos in docker-compose for dev ease. 2017-09-27 05:27:44 -05:00
docker-compose.stationports.yml Add another docker-compose file with the old big port mappings. 2017-09-02 13:42:32 -05:00
docker-compose.yml Rename docker shell scripts to match docker-compose style; add fixtures to non-dev environments (for demo server). 2017-09-13 00:10:22 -05:00
docker-install.sh Update recent-request check to also use the station request threshold. 2017-10-15 16:01:46 -05:00
docker-restore.sh Update recent-request check to also use the station request threshold. 2017-10-15 16:01:46 -05:00
docker-uninstall.sh Update recent-request check to also use the station request threshold. 2017-10-15 16:01:46 -05:00
docker-update.sh Update recent-request check to also use the station request threshold. 2017-10-15 16:01:46 -05:00
install.sh Fix issues with apt-key and Deadsnakes repo on 14.04. 2017-08-18 08:15:42 -05:00
update.sh Run composer as azuracast user and update permissions accordingly. 2017-10-21 00:05:26 -05:00

README.md

AzuraCast: A Self-Hosted Web Radio Manager

Code Climate Test Coverage Build Status

AzuraCast is a self-hosted, all-in-one web radio management kit. Using its easy installer tools and 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 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.

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.
  • Analytics and Reports: Keep track of every aspect of your station's listeners over time. View reports of each song's performance and
  • Station Autopilot: 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.
  • ...and more.

Supported Web Radio Software

AzuraCast uses LiquidSoap as an "AutoDJ" to shuffle songs and playlists and provide an always-online radio stream. You can connect to LiquidSoap and broadcast your own live events as a DJ as well.

To broadcast your radio station to the public, AzuraCast supports both of the gold standards in web radio, IceCast (v2.4) and ShoutCast (v2). You can switch which of these your station uses anytime you want.

You can also use AzuraCast as a tool for relaying or collecting listener statistics and other data about stations that AzuraCast doesn't manage.

Supported Operating Systems

There are two ways to install AzuraCast:

  • Using Docker and Docker Compose (Recommended): This method contains all of the AzuraCast dependencies in prebuilt container images. Updating and installing is faster, and there are far fewer issues with software compatibility. This method works on any computer that supports the latest version of the Docker Engine and Docker Compose; both can be installed as part of the AzuraCast installer script.

  • Traditional Installation (Ubuntu 16.04 LTS Only): From a clean image of Ubuntu, you can install AzuraCast directly onto your server using the included installer scripts, which use Ansible to manage dependencies. Installation and updating are slower using this method, but you have more control over the software once installed. If you have other software installed on your server, it may conflict with AzuraCast, so always start from a clean installation using this method.

We are always looking to expand our compatibility with host operating systems, and we welcome any assistance in building new deployment scripts for other environments.

What's Included with AzuraCast

Whether you're using the traditional installer or Docker containers, AzuraCast depends on the same stack of software to operate:

  • NGINX for serving web pages and the radio proxy
  • MariaDB as the primary database
  • PHP 7.1 powering the web application
  • InfluxDB for time-series based statistics
  • Redis for sessions, database and general caching
  • LiquidSoap as the always-playing "AutoDJ"
  • IceCast 2 as a radio broadcasting frontend (Icecast-KH installed on supported platforms)
  • ShoutCast 2 DNAS as an alternative radio frontend (x86/x64 only)

All of these components are automatically downloaded and installed using either of the installation methods below.

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.

On the host machine with Git installed, clone this repository to any local directory:

git clone https://github.com/AzuraCast/AzuraCast.git .

From that directory, run the following commands as root or a sudo-capable user to install the latest versions of Docker and Docker Compose and set up the AzuraCast instance:

chmod +x ./docker-*
./docker-install.sh

If you already have the latest versions of Docker and Docker Compose, you can manually initialize the AzuraCast docker components by running:

docker-compose pull
docker-compose run --rm cli azuracast_install
docker-compose up -d

Updating with Docker

From inside the base directory where AzuraCast is copied, run the following commands:

./docker-update.sh

or

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

Docker Volume Backup and Restore

Your station database, statistics and media are stored inside Docker volumes. AzuraCast includes dedicated helper scripts to compress this data into a single portable gzipped file, which can be backed up offsite or moved to a new server.

The backup script is located in the drive root and can be accessed by running:

./docker-backup.sh

This will create a file, backup.tar.gz in the app root.

To restore the application's state from this compressed file, run:

./docker-restore.sh

Note that the restoration process will wipe 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

Local Development with Vagrant

To make local development and testing easier, AzuraCast also includes the necessary configuration to set up a Vagrant box on your computer.

See the AzuraCast Wiki for detailed instructions on the installation process.

See AzuraCast in Action

Demo Instance

See the AzuraCast interface in action yourself by visiting our demo site at demo.azuracast.com.

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

The demo instance is automatically reset at the top of every hour, and always features the latest changes in the codebase.

A special thank you to our friends at DigitalOcean for supporting AzuraCast's development!

Screenshots

Take a look at samples of the AzuraCast interface on the Screenshots page on the Wiki.

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.

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, click the link below to buy him a coffee. Your support is greatly appreciated.

Buy Me a Coffee at ko-fi.com