Initial vault setup
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user