Files
wiki/Catalogue-Self-Hosted/apps/app-azuracast.md
T
2026-06-09 18:40:21 +02:00

139 lines
7.0 KiB
Markdown

---
title: AzuraCast
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, music, radio, webradio, streaming, azuracast, php, icecast, shoutcast]
confidence: high
contested: false
sources:
- https://selfh.st/apps/?tag=Music
- https://github.com/AzuraCast/AzuraCast
- https://www.azuracast.com/
---
# 📻 AzuraCast
> Suite complète de gestion de webradio : hébergement, automatisation, encodage multi-format, planning, live DJ et analytics. Couvre Icecast, Shoutcast et Liquidsoap sous une seule interface web.
## 📋 Informations Générales
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://www.azuracast.com/ |
| **GitHub** | https://github.com/AzuraCast/AzuraCast |
| **License** | AGPL-3.0 |
| **Langage** | PHP (Laravel) / Liquidsoap / AngularJS |
| **Étoiles** | ⭐ 721 (3 800+ sur GitHub) |
| **Dernière MAJ** | 2026-06-06 |
| **Catégorie** | [[cat-music]] |
## 📝 Description
AzuraCast est la solution de référence pour monter une **webradio professionnelle** self-hosted. Né de la fusion de plusieurs projets (Airtime notamment), il combine en une seule plateforme : un **système d'automation** (playlists rotatives, scheduling, jingles), un **serveur de streaming** Icecast 2 ou Shoutcast, un module de **Live DJ** (connexion DJ via navigateur ou client compatible Icecast), un **encodeur** multi-format (MP3, OGG, AAC, Opus) avec **transcodage à la volée**, et un **tableau de bord analytics** complet (écouteurs uniques, géographie, pic d'audience).
L'architecture repose sur **Liquidsoap** (le moteur de streaming, en OCaml) couplé à **Icecast 2**, le tout piloté par une interface PHP/Laravel. Une station peut avoir plusieurs « mount points » (128 kbps MP3 pour le public, 320 kbps pour les archives, AAC+ pour mobile, etc.) et diffuser en parallèle sur une dizaines de serveurs relais. La fonction **Podcasts** génère automatiquement un flux RSS pour chaque émission, et **WebDJ** permet aux animateurs de se connecter depuis un simple navigateur sans installer de logiciel.
Cas d'usage : radio associative, station communautaire, projet étudiant, radio d'entreprise, webradio thématique. La **communauté Discord** est très active, le développement est régulier, et la documentation de qualité permet un démarrage en moins d'une heure.
## 🚀 Installation
### Option 1 : Docker (recommandé)
```yaml
# docker-compose.yml
version: "3.8"
services:
azuracast:
image: ghcr.io/azuracast/azuracast:latest
container_name: azuracast
restart: unless-stopped
ports:
- "80:80" # Web UI
- "8000:8000" # WebDJ (secure)
- "8001:8001" # WebDJ (non-secure)
- "9000:9000" # Liquidsoap telnet
environment:
COMPOSE_PROJECT_NAME: azuracast
AZURACAST_VERSION: latest
volumes:
- ./data:/var/azuracast/db
- ./stations:/var/azuracast/stations
- ./backups:/var/azuracast/backups
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost/api/status"]
interval: 60s
timeout: 10s
retries: 5
```
Premier lancement : visiter `http://localhost/`, créer le compte super-admin, puis créer une première station depuis l'interface.
### Option 2 : Installation manuelle (bare metal)
Prérequis : Ubuntu 22.04 LTS (officiellement supporté), 1 Go de RAM minimum, accès root. Script officiel : `sudo -E bash -c "$(curl -fsSL https://raw.githubusercontent.com/AzuraCast/AzuraCast/main/docker/install.sh)"` qui installe Docker + l'image AzuraCast en mode `systemd`.
## ⚙️ Configuration
- **Stations** : créer une ou plusieurs stations indépendantes (chacune avec ses DJs, ses playlists, ses ports).
- **Playlists** : rotatives (mélange random + weighted) ou séquentielles ; scheduling par jour/heure/crontab.
- **Médias** : upload via UI (drag & drop, jusqu'à ~2 Go par fichier), ou déposer directement dans le dossier mappé de la station.
- **Stream mount points** : qualité basse (128 kbps), moyenne (192 kbps), haute (320 kbps), AAC+ pour mobile, chacun avec son URL publique.
- **Live DJ** : `WebDJ` (navigateur) ou client traditionnel (Mixxx, BUTT, RadioBoss) via Icecast source protocol.
- **Publicité** : gestion des jingles, liners, IDs, triggering par intervalle ou heure fixe.
- **Analytics** : historique complet, géolocalisation des auditeurs (GeoIP), top titres, top auditeurs.
- **Backup/Restore** : `Settings → System → Backups` génère une archive JSON complète, restaurable d'un clic.
## 🔄 Alternatives
### Open Source
- [[app-icecast]] — Le serveur de streaming basique (utilisé par AzuraCast en interne).
- [[app-funkwhale]] — Plutôt orienté podcast et musique à la demande.
- [[app-koel]] — Streaming musical à la demande (pas radio).
- [[app-navidrome]] — Streaming musical à la demande.
- **LibreTime** — Fork communautaire d'Airtime, automation pure.
- **RadioCMS** — Autre solution PHP plus légère.
- **Rivendell** — Pour radio broadcast FM professionnelle.
- **OpenBroadcaster** — Pour la diffusion vidéo en plus de l'audio.
### Propriétaires (ce que cette app remplace)
- Radio.co — SaaS webradio (≈ 15-50 $/mois).
- Airtime Pro — SaaS automation radio.
- Live365 — Streaming radio avec royalties payées.
- RadioJar — Agrégateur radio.
- SAM Broadcaster Cloud — Suite Windows payante.
## 🔒 Sécurité
- **HTTPS obligatoire** : via Traefik ou Caddy avec Let's Encrypt (les streams et l'UI doivent être chiffrés).
- **Comptes DJ** : créer des comptes dédiés avec permissions limitées (`WebDJ` seul ou `Playlist Editor` seul), ne jamais donner le rôle super-admin.
- **Source passwords Icecast** : mot de passe fort pour le mount principal, distincts pour chaque DJ.
- **GeoIP blocking** : si la radio a une licence territoriale (juridique FR/CSAR), configurer CrowdSec.
- **Mises à jour** : suivre le canal `Stable` (LTS) ou `Rolling` (features plus tôt, mais plus de risque).
- **Backups** : automatiques (`./backups`) + externes, tester régulièrement la restauration sur un environnement jetable.
- **Exposition des ports** : ne pas exposer `9000` (Liquidsoap telnet) sur Internet, garder en `127.0.0.1:9000` ou via VPN.
- **Sécurité physique** : si serveur bare metal, BIOS verrouillé, GRUB password, chiffrement disque.
## 📚 Ressources
- Site officiel : https://www.azuracast.com/
- Documentation : https://www.azuracast.com/docs/
- Repository : https://github.com/AzuraCast/AzuraCast
- Communauté Discord : https://discord.gg/azuracast
- Wiki : https://github.com/AzuraCast/AzuraCast/wiki
- Forum : https://github.com/AzuraCast/AzuraCast/discussions
- Démo : https://demo.azuracast.com/ (compte de test public)
## 🔗 Pages Liées
- [[cat-music]] — Catégorie parente
- [[app-icecast]] — Serveur streaming sous-jacent
- [[app-koel]] — Streaming musical à la demande
- [[app-navidrome]] — Streaming musical à la demande
- [[app-funkwhale]] — Plateforme audio fédérée
- [[app-traefik]] — Reverse proxy HTTPS
- [[app-crowdsec]] — WAF/ban IP
- [[recettes-docker-compose]] — Templates Docker
- [[securisation-home-lab]] — Bonnes pratiques