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 56bbca27d7 Environment file for Docker Compose (and other Compose libraries). 2017-06-07 16:08:55 -05:00
app Minor stylistic update to the new playlist creation message. [skip ci] 2017-06-07 16:08:21 -05:00
resources Replace IceCast with IceCast-KH for stream performance and license reporting reasons. 2017-05-16 23:11:45 -05:00
tests More dockerization, including dockerizing the Travis CI integration. 2017-05-31 11:57:29 -05:00
util Minor change to UFW rules to set rate-limiting on the SSH port. [ci skip] 2017-06-07 16:06:36 -05:00
web Fix issue with persistent sidebar alert, and change styling on info alert. 2017-06-07 00:04:36 -05:00
.codeclimate.yml Update codeclimate settings. 2016-10-22 11:31:30 -05:00
.env Environment file for Docker Compose (and other Compose libraries). 2017-06-07 16:08:55 -05:00
.gitattributes Force LF line endings on certain files regardless of local crlf settings to avoid issues with Vagrant. 2016-09-03 19:55:18 -05:00
.gitignore Add docker utilities, allow docker and non-docker codebase to coexist, add support for auto-installing fixtures. 2017-06-01 00:18:21 -05:00
.travis.yml Tighten up docker composition process to lighten images, move cache to Redis, send errors to stdout. 2017-06-04 05:56:20 -05:00
License.txt Initial commit of AzuraCast codebase. 2016-04-30 19:15:05 -05:00
Readme.md Create helper docker shell scripts and consolidate existing scripts. 2017-06-05 05:49:09 -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
codeception.yml Update code coverage to remove the now-removed files. 2017-05-02 16:24:55 -05:00
composer.json Fork NibbleForms and refer to the forked repo to fix file upload handling and avoid having to maintain NibbleForms code in the App namespace. 2017-05-13 23:00:21 -05:00
composer.lock Closes #123 -- Clean up form rendering, update Composer dependencies, add ISRC to StationMedia model and build SoundExchange report. 2017-05-24 04:21:11 -05:00
crowdin.yaml Update Crowdin configuration file 2016-09-30 21:43:18 -05:00
docker-compose.build.yml Refinement of the Docker Compose structure to avoid the always-restarting installer problem. 2017-06-03 09:56:55 -05:00
docker-compose.dev.yml Refinement of the Docker Compose structure to avoid the always-restarting installer problem. 2017-06-03 09:56:55 -05:00
docker-compose.yml Tighten up docker composition process to lighten images, move cache to Redis, send errors to stdout. 2017-06-04 05:56:20 -05:00
docker_install.sh Create helper docker shell scripts and consolidate existing scripts. 2017-06-05 05:49:09 -05:00
docker_update.sh Create helper docker shell scripts and consolidate existing scripts. 2017-06-05 05:49:09 -05:00
install.sh Only install the 14.04 PPA for Python 2.7 on 14.04. 2016-10-10 05:55:31 -05:00
swagger.yaml Clean up existing API endpoints, make tenses make more sense and make station-based items derived from the same base URI. 2017-05-19 19:40:36 -05:00
update.sh Fix update revision setting and remove supervisor from service reboots due to issues on 14.04. [skip ci] 2017-06-07 10:25:49 -05:00

Readme.md

AzuraCast: A Self-Hosted Web Radio Manager

Code Climate Test Coverage Build Status

AzuraCast is a standalone, turnkey web radio management kit. Using its easy installer, you can go from a fresh Linux installation to a fully working web radio station in about 5 minutes.

Today, AzuraCast can help you create and maintain radio stations of all types and sizes. If you look far enough back in the project's history, you'll find the project upon which AzuraCast was based, called Ponyville Live. This project was built for one specific fan community, but its radio station management code was made standalone, in the process rebranding as AzuraCast. This project's name comes from "Azura Peavielle", the mascot of the former project's namesake media network.

AzuraCast is currently in alpha. Many web radio stations already run AzuraCast, and each individual release is stable, 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 elsewhere, especially the files contained in /var/azuracast/stations.

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

AzuraCast supports these operating systems and architectures out of the box:

Traditional Installation
  • Ubuntu 16.04 LTS (Xenial) x64 (Recommended)
  • Ubuntu 16.04 LTS (Xenial) ARM
  • Ubuntu 14.04 LTS (Trusty) x64
Docker Installation
  • Any host running Docker Engine and Docker Compose 1.10.0 or higher

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.

Installing AzuraCast

Installing on a Production Server

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

Installing via Docker

You can now use Docker Compose (version 1.10.0 or higher) to install AzuraCast in a series of Docker containers. This feature is brand new, so help with testing is welcome!

Because Docker holds all of the software functionality inside prebuilt containers, the AzuraCast docker image is supported on any host that can run Docker and Docker Compose. See this guide for instructions on setting up Docker Compose on Ubuntu 16.04.

On the host machine with Docker Compose and Git installed, clone this repository to any local directory. From that directory, run the following commands:

./docker_install.sh

or

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

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.

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