La pile se configure avec des variables d’environnement dans .env, à côté de docker-compose.yml. Partez de .env.example. Les réglages de la station (fondus, rotation, fuseau horaire, classement de la bibliothèque, clé AcoustID…) ne sont pas ici : ils sont enregistrés dans la base de données et se changent depuis l’interface web ou l’API.
| Variable |
Par défaut |
Rôle |
HERON_VERSION |
latest |
Étiquette d’image des cinq services : latest, edge, ou une version comme 0.1.0. Voir Mises à jour |
| Variable |
Par défaut |
Rôle |
HERON_DB_PASSWORD |
change-me |
Mot de passe MariaDB de l’utilisateur de Heron. Lettres, chiffres, - et _ : il est inclus dans une URL |
HERON_DB_ROOT_PASSWORD |
change-me-too |
Mot de passe root de MariaDB |
| Variable |
Par défaut |
Rôle |
HERON_MUSIC_DIR |
./data/music |
La bibliothèque musicale |
HERON_FALLBACK_DIR |
./data/fallback |
Les pistes que le moteur joue quand sa file est vide |
HERON_INCOMING_FOLDER |
./data/incoming |
Déposez-y les nouveaux fichiers : ils passent dans la zone tampon |
HERON_STAGING_FOLDER |
./data/staging |
La zone tampon : les nouveaux fichiers en attente d’import. De préférence sur le système de fichiers de la bibliothèque |
HERON_LIBRARIAN_USER |
1000:1000 |
uid:gid sous lequel tournent heron-librarian et heron-api : le propriétaire des dossiers de musique, d’arrivée et de la zone tampon |
| Variable |
Par défaut |
Rôle |
HERON_SCAN_INTERVAL |
3600 |
Secondes entre deux parcours complets de la bibliothèque |
HERON_LIBRARY_WATCH |
true |
Parcourir à chaque changement de fichier. false sur les partages réseau qui ne signalent pas les changements |
HERON_NICE |
10 |
Priorité (nice) de heron-analyzer et heron-librarian (0 à 19), pour qu’ils laissent processeur et disque au moteur |
| Variable |
Par défaut |
Rôle |
HERON_HTTP_PORT |
8000 |
Port de l’hôte pour l’interface web et l’API |
HERON_ICECAST_PORT |
8010 |
Port de l’hôte pour le serveur Icecast local optionnel (--profile icecast) |
| Variable |
Par défaut |
Rôle |
RUST_LOG |
info |
Niveau de journalisation des services, par exemple heron_engine=debug,info |
HERON_SENTRY_DSN |
vide : désactivé |
DSN Sentry pour les erreurs des services |
HERON_WEB_SENTRY_DSN |
vide : désactivé |
DSN Sentry pour l’interface web. Les navigateurs le lisent : donnez-lui un projet à part |
HERON_SENTRY_ENVIRONMENT |
production |
Environnement Sentry |
| Variable |
Par défaut |
Rôle |
HERON_STATION_NAME |
heron |
L’étiquette station de chaque métrique |
HERON_METRICS_REMOTE_WRITE_URL |
vide : désactivé |
Point d’envoi Prometheus remote write |
HERON_METRICS_REMOTE_WRITE_USERNAME |
|
Utilisateur de l’authentification basique (Grafana Cloud : l’ID d’instance). Vide : le mot de passe est envoyé comme jeton bearer |
HERON_METRICS_REMOTE_WRITE_PASSWORD |
|
Mot de passe ou jeton bearer |
HERON_METRICS_REMOTE_WRITE_INTERVAL |
15 |
Secondes entre deux envois |
Voir Supervision.
Le HTTPS est confié à un proxy inverse devant heron-web (Caddy, nginx, Traefik…). Faites-lui transmettre X-Forwarded-Proto, pour que les cookies de session soient marqués Secure. Le proxy doit aussi relayer les connexions WebSocket sur /api/v1/live.
Les ports propres aux services (métriques et contrôles de santé) n’ont pas d’authentification : ne les publiez jamais sur Internet.