Installer AzuraCast
Si vous ne connaissez pas AzuraCast, c’est probablement que vous ne connaissez pas le monde de la webradio.
AzuraCast est une application web qui permet de gérer toutes vos webradios, en un seul endroit.
Il gère votre base musicale, vos jingles, vos spots publicitaires, et génère même un page publique embarquant un lecteur, un historique des titres et un système de demande de titre pour les auditeurs.
Installation
Pour installer AzuraCast, il faut d’abord préparer son environnement.
Pour se faire, commencez par vous connecter en SSH à votre serveur.
Une fois fait, il faut créer les dossiers nécessaires à AzuraCast.
/DATA/AppData est le dossier de mes containers Docker.
Adaptez cette variable à votre environnement.
sudo mkdir /DATA/AppData/azuracast && cd /DATA/AppData/azuracast && sudo mkdir acme backups dbconfig dbmysql geoip persist redis shoutcast stations stereo uploads
Ensuite, rendez-vous sur Portainer, pour créer notre stack AzuraCast
version: "3.9"
services:
azuracast-redis:
image: redis
container_name: AzuraCast-REDIS
hostname: azuracast-redis
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
user: 1000:1000
environment:
- TZ=Europe/Paris
volumes:
- /DATA/AppData/azuracast/redis:/data
restart: always
azuracast-db:
image: mariadb:11.3-jammy
container_name: AzuraCast-DB
hostname: azuracast-db
security_opt:
- no-new-privileges:true
environment:
- TZ=Europe/Paris
- MYSQL_ROOT_PASSWORD=azuracastrootpw
- MYSQL_DATABASE=azuracast
- MYSQL_USER=azuracastuser
- MYSQL_PASSWORD=azuracastpw
- MYSQL_SLOW_QUERY_LOG=0
- MYSQL_MAX_CONNECTIONS=100
volumes:
- /DATA/AppData/azuracast/dbconfig:/var/lib/mysql:rw
restart: always
azuracast:
image: azuracast/azuracast:latest
container_name: AzuraCast
hostname: azuracast
security_opt:
- no-new-privileges:true
ulimits:
nofile:
soft: 65536
hard: 65536
logging:
options:
max-size: "1m"
max-file: "5"
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:80/ || exit 1
ports:
- 8421:80
- 8111:8000
- 8119:8005
- 8113:8006
- 8114:8010
- 8115:8015
- 8116:8016
- 8117:8020
environment:
- APPLICATION_ENV=production
- MYSQL_HOST=azuracast-db
- MYSQL_PORT=3306
- MYSQL_USER=azuracastuser
- MYSQL_PASSWORD=azuracastpw
- MYSQL_DATABASE=azuracast
- ENABLE_REDIS=true
- REDIS_HOST=azuracast-redis
- REDIS_PORT=6379
- REDIS_DB=1
- PROFILING_EXTENSION_HTTP_IP_WHITELIST=*
- TZ=Europe/Paris
- PUID=1000
- PGID=1000
volumes:
- /DATA/AppData/azuracast/uploads:/var/azuracast/uploads
- /DATA/AppData/azuracast/stations:/var/azuracast/stations
- /DATA/AppData/azuracast/shoutcast:/var/azuracast/servers/shoutcast2
- /DATA/AppData/azuracast/stereo:/var/azuracast/servers/stereo_tool
- /DATA/AppData/azuracast/geoip:/var/azuracast/geoip
- /DATA/AppData/azuracast/persist:/var/azuracast/sftpgo/persist
- /DATA/AppData/azuracast/backups:/var/azuracast/backups
- /DATA/AppData/azuracast/acme:/var/azuracast/acme
- /DATA/AppData/azuracast/dbmysql:/var/lib/mysql
restart: always
depends_on:
azuracast-redis:
condition: service_healthy
azuracast-db:
condition: service_started
Une fois que notre stack est déployée, il nous suffit de se rendre sur http://ip_locale:8421 et de se laisser guider.
Le dossier Stations
Si, comme pour moi, vous avez un autre service (comme Navidrome) qui utilise votre dossier de musiques, vous pouvez créer des liens symboliques.
AzuraCast crée un dossier pour chacune de vos webradios dans /DATA/AppData/azuracast/stations/
par exemple, /DATA/AppData/azuracast/stations/maradio/data
Admettons que vos musiques soient dans le dossier /medias/music
Pour que les musiques de /medias/music apparaissent dans le dossier /DATA/AppData:azuracast/stations/maradio/data il faut créer le lien symbolique suivant
ln -s /medias/music /DATA/AppData/azuracast/stations/maradio/data
Ainsi, tout ajout/suppression dans /medias/music se répercutera dans /DATA/AppData/azuracast/stations/maradio/data