MCPSERV.CLUB
AzuraCast

AzuraCast

Self-Hosted

Self‑hosted web radio station in minutes

Active(100)
3.6kstars
0views
Updated 1 day ago
AzuraCast screenshot 1
1 / 3

Overview

Discover what makes AzuraCast powerful

AzuraCast is a full‑stack, self‑hosted web radio platform that bundles streaming servers, content management, analytics, and a RESTful API into one Docker‑ready application. From a developer’s standpoint it is essentially a microservices ecosystem orchestrated by Symfony, with each service exposing well‑defined endpoints and event hooks. The core goal is to let a single deployment host multiple independent radio stations, each with its own media library, playlists, and streaming endpoints.

Multi‑Station Management

Live & On‑Demand Streaming

API & Webhooks

Automation & Scheduling

Overview

AzuraCast is a full‑stack, self‑hosted web radio platform that bundles streaming servers, content management, analytics, and a RESTful API into one Docker‑ready application. From a developer’s standpoint it is essentially a microservices ecosystem orchestrated by Symfony, with each service exposing well‑defined endpoints and event hooks. The core goal is to let a single deployment host multiple independent radio stations, each with its own media library, playlists, and streaming endpoints.

Key Features

  • Multi‑Station Management – A single AzuraCast instance can run dozens of stations, each isolated at the database and file‑system level.
  • Live & On‑Demand Streaming – Supports Icecast, SHOUTcast, and HTTP streaming via the built‑in radio service.
  • API & Webhooks – A comprehensive OAuth2‑protected API provides CRUD for stations, media, playlists, and streaming statistics. Webhooks can be configured to trigger on events such as “now playing” changes or media uploads.
  • Automation & Scheduling – Built‑in cron jobs (via Docker Compose cron service) handle scheduled playlist playback, auto‑DJ, and log rotation.

Technical Stack

  • Language & Framework – PHP 8 with Symfony 6, leveraging Doctrine ORM for database access and Symfony Messenger for background jobs.
  • Containerization – Each component (web, radio server, cron, worker) runs in its own Docker container; the official image is built on Debian Buster with PHP‑FPM.
  • Databases – PostgreSQL is the default, but MySQL/MariaDB are supported. Media metadata and station configuration live in relational tables; Redis is used for caching and message queues.
  • Streaming Servers – Icecast 2.x (or SHOUTcast 4) is bundled; the radio service exposes shout and icecast mounts per station.

Core Capabilities

  • REST API – Endpoints such as /api/stations/{id}/media, /api/nowplaying, and /api/playlists allow programmatic control.
  • WebSocket Push – Real‑time now‑playing updates are pushed to connected clients via a Symfony WebSocket bundle.
  • OAuth2 – Clients can authenticate using client‑credentials or password grant flows, enabling secure integration with external dashboards.
  • Event System – Symfony events (e.g., MediaUploadedEvent) can be listened to by custom plugins or external services.

Deployment & Infrastructure

  • Docker‑Compose – The default deployment uses a single docker-compose.yml that pulls the official AzuraCast image, sets up volumes for media and configuration, and exposes ports 80/443 for the web UI.
  • Scalability – Horizontal scaling is straightforward: duplicate the web service behind a reverse proxy, share the PostgreSQL database and Redis cluster, and mount a shared NFS volume for media.
  • Self‑Hosting – Minimal requirements: 2 GB RAM, 1 CPU core, and a storage tier that supports random I/O (SSD recommended).
  • CI/CD – The project ships with GitHub Actions that build Docker images and run unit tests; developers can hook these into their own pipelines.

Integration & Extensibility

  • Plugin Architecture – Plugins are PHP bundles that register services, routes, and templates. The azuracast/installer script auto‑detects plugins in the /plugins directory.
  • Webhooks & Callbacks – Stations can be configured to POST JSON payloads on events (e.g., now_playing, log_rotate).
  • Custom Players – The public player exposes a JSON API for metadata; developers can build lightweight players with React, Vue, or vanilla JS.
  • CLI Tools – Symfony console commands (azuracast:station:create, azuracast:media:upload) provide a programmatic interface for automation scripts.

Developer Experience

  • Documentation – The official docs are split into Getting Started, Core Features, and Developer Guides. API reference pages include example payloads.
  • Community – Active GitHub issues, a Discord channel, and a public roadmap keep contributors informed.
  • Testing – The codebase includes PHPUnit tests for business logic and Behat scenarios for API endpoints.

Use Cases

  1. Campus Radio – A university can host a single AzuraCast instance, create separate stations for each department, and expose public web players on the campus website.
  2. Podcast Network – Automate upload of episode files, schedule auto‑DJ segments, and expose a REST API for custom podcast players.
  3. Event Broadcasting – Deploy on a temporary VPS to stream live events; the Docker setup allows rapid teardown and cost control.

Advantages

  • All‑in‑One – No need to install Icecast, PostgreSQL, and a separate web stack separately; the image bundles everything.
  • Open Source & AGPL – Guarantees that any derivative must also be open, ensuring community contributions.
  • Scalable Architecture – Microservices and containerization make it easy to add replicas or migrate to Kubernetes.
  • Rich API & Webhooks – Developers can build custom dashboards, analytics, or integrate with CI/CD pipelines without hacking the core UI.

AzuraCast’s design balances ease of use for

Open SourceReady to get started?

Join the community and start self-hosting AzuraCast today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
AGPL-3.0
Stars
3.6k
Technical Specs
Pricing
Open Source
Database
PostgreSQL
Docker
Official
Min RAM
1GB
Min Storage
5GB
Supported OS
LinuxDocker
Author
AzuraCast
AzuraCast
Last Updated
1 day ago