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
radioservice. - 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
cronservice) 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
shoutandicecastmounts per station.
Core Capabilities
- REST API – Endpoints such as
/api/stations/{id}/media,/api/nowplaying, and/api/playlistsallow 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.ymlthat 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
webservice 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/installerscript auto‑detects plugins in the/pluginsdirectory. - 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
- 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.
- Podcast Network – Automate upload of episode files, schedule auto‑DJ segments, and expose a REST API for custom podcast players.
- 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
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Concrete CMS
Intuitive, secure content creation for editors and developers alike
Tyk
Enterprise‑ready API Gateway for REST, GraphQL, gRPC, and AI
Coral
Open‑source, AI‑powered commenting for safer conversations
ChannelTube
Automated YouTube channel downloader and organizer
RSS-Bridge
Generate RSS feeds for sites without one
Jina
Build and deploy AI services at scale
