139 lines
7.0 KiB
Markdown
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
|