Maintenir votre radio en ligne#

Radiotomate lui-même est assez stable et conçu pour diffuser en continu, mais parfois l'univers n'aide pas : les machines/disques durs/réseaux/bâtiments peuvent tomber en panne ou prendre feu. Cette section contient quelques conseils pour garder la radio en marche, même si cela signifie « redémarrer depuis une nouvelle machine ».

Vérifier que les conteneurs fonctionnent#

Radiotomate est conçu pour fonctionner dans des conteneurs podman lancés en tant que service système grâce à l'intégration de podman à systemd, les quadlets).

Vous pouvez vérifier que ces conteneurs fonctionnent avec podman ps -a. Le résultat normal ressemble à ceci:

$ podman ps -a
CONTAINER ID  IMAGE                                                COMMAND     CREATED         STATUS         PORTS                                           NAMES
da9ad3bcdbfe  localhost/podman-pause:5.4.2-1766335321                          14 minutes ago  Up 14 minutes                                                  5a96db1d31b2-service
65ba145efb71  localhost/podman-pause:5.4.2-1766335321                          14 minutes ago  Up 14 minutes  0.0.0.0:5811->6811/tcp, 0.0.0.0:6800->6800/tcp  c09122c475cd-infra
cb17f5fd53dd  docker.io/martinkirch/radiotomate-playout:latest                 14 minutes ago  Up 14 minutes  0.0.0.0:5811->6811/tcp, 0.0.0.0:6800->6800/tcp  radiotomate-playout
66c761d7eafc  docker.io/martinkirch/radiotomate-webapps:latest                 14 minutes ago  Up 14 minutes  0.0.0.0:5811->6811/tcp, 0.0.0.0:6800->6800/tcp  radiotomate-interface
44a5068f61a0  docker.io/martinkirch/radiotomate-webapps:latest                 14 minutes ago  Up 14 minutes  0.0.0.0:5811->6811/tcp, 0.0.0.0:6800->6800/tcp  radiotomate-scheduler
6d0260419bfc  docker.io/martinkirch/radiotomate-webapps:latest                 14 minutes ago  Up 14 minutes  0.0.0.0:5811->6811/tcp, 0.0.0.0:6800->6800/tcp  radiotomate-dropbox

Si les conteneurs sont arrêtés, vous pouvez les redémarrer avec:

systemctl --user restart radiotomate.service

Vous pouvez aussi les arrêter avec:

systemctl --user stop radiotomate.service

Si les conteneurs ne démarrent pas#

Après une mise à jour ou un changement de configuration, vous remarquerez peut-être que le système ne démarre plus, ou pas complètement. Dans ces cas-là, le résultat de podman ps -a ressemblera plutôt à:

$ podman ps -a
CONTAINER ID  IMAGE                                                COMMAND     CREATED             STATUS             PORTS                                           NAMES
fed10cbcf33c  localhost/podman-pause:5.4.2-1766335321                          About a minute ago  Up About a minute                                                  5a96db1d31b2-service
f0c33a3e1e7c  localhost/podman-pause:5.4.2-1766335321                          About a minute ago  Up About a minute  0.0.0.0:5811->6811/tcp, 0.0.0.0:6800->6800/tcp  e88a1371e1a1-infra
d2c2b5154aed  docker.io/martinkirch/radiotomate-playout:latest                 About a minute ago  Up 1 second        0.0.0.0:5811->6811/tcp, 0.0.0.0:6800->6800/tcp  radiotomate-playout
419231c669ff  docker.io/martinkirch/radiotomate-webapps:latest                 About a minute ago  Up About a minute  0.0.0.0:5811->6811/tcp, 0.0.0.0:6800->6800/tcp  radiotomate-interface
7dad7e826c72  docker.io/martinkirch/radiotomate-webapps:latest                 About a minute ago  Up About a minute  0.0.0.0:5811->6811/tcp, 0.0.0.0:6800->6800/tcp  radiotomate-scheduler
28b5e7824288  docker.io/martinkirch/radiotomate-webapps:latest                 About a minute ago  Up About a minute  0.0.0.0:5811->6811/tcp, 0.0.0.0:6800->6800/tcp  radiotomate-dropbox

Ce qui signifie que le conteneur radiotomate-playout redémarre en boucle (le nom du conteneur est la colonne la plus à droite). Le système essaie sans arrêt de le redémarrer, mais il plante tout de suite. Cela vient souvent d'une erreur de configuration. Vérifiez le fichier de configuration, radiotomate.yaml, les blocs doivent être alignés correctement, avec des espaces plutôt que des tabulations, et doivent correspondre aux exemples de la documentation de la configuration. En dernier recours, vous pouvez restaurer une version précédente de la configuration et re-essayer - conservez toujours un copie de la configuration précédente avant de la modifier.

Vous pouvez aussi voir les messages d'erreur détaillés avec:

podman logs radiotomate-playout

Si quelque chose ne fonctionne pas mais que tous les conteneurs semblent actifs, lisez plutôt les journaux applicatifs.

Journaux#

Chacun des 4 processus de Radiotomate a son propre journal, un fichier texte où il note ce qui se passe. Par défaut, ces fichiers sont tous situés dans le dossier radiotomate_data. Leurs noms sont :

  • playout.log, écrit par le processus de lecture, celui qui joue réellement les sons. C'est un bon point de départ si vous entendez quelque chose d'inattendu à l'antenne.
  • scheduler.log, écrit par le processus planificateur, celui qui envoie les sons au lecteur à l'heure prévue (pour les cartouches sonores ou les relais de flux) ou selon les besoins (auto-DJ). Il stocke également les métadonnées des sons au fur et à mesure qu'ils sont joués et les relaie (si activé).
  • interface.log, écrit par l'interface Web avec laquelle la plupart des utilisateurs interagiront.
  • audit.log, également écrit par l'interface Web, enregistre chaque action effectuée par les utilisateurices : leur nom, le verbe HTTP et le chemin de chaque requête.
  • dropbox.log journalise ce qui se passe avec les fichiers qui apparaissent dans le dossier de dropbox musicale.

Avant de signaler un bug ou de demander de l'aide, veuillez consulter ces journaux pour les erreurs et copier les erreurs que vous jugez pertinentes dans votre message.

S'assurer que le système reste actif#

La toute première interruption potentielle vient de l'alimentation électrique. Si vous exécutez Radiotomate sur votre propre matériel, veillez à le configurer pour qu'il démarre automatiquement au retour du courant (c'est une option classique du BIOS).

Vous voudrez également mettre à jour votre machine régulièrement, ce qui impliquera de la redémarrer et d'interrompre le flux pendant une longue minute. Nous vous conseillons de préparer une source de flux alternative pour de telles opérations.

Par défaut, l'installeur utilise des quadlets, donc les processus de Radiotomate sont considérés comme des services systemd de niveau utilisateur. Pour s'assurer qu'ils démarrent au démarrage du système, radiotomate exécutera loginctl enable-linger pour l'utilisateur exécutant radiotomate. Cela garantit également qu'il redémarre automatiquement en cas de plantage : si un processus ne démarre pas, il peut être bloqué par une erreur de configuration.

Le son de démarrage#

Radiotomate redémarre automatiquement, mais cela ne devrait pas se produire régulièrement. S'il redémarre souvent, quelque chose ne va pas, mais il redémarre si vite que cela peut être difficile à remarquer (c'est arrivé) : c'est pourquoi il dispose d'un son de démarrage.

Par défaut, Radiotomate démarre en émettant un klaxon, depuis le fichier radiotomate_data/default_start_sound.wav. Changez-le à votre guise. Si vous l'entendez trop souvent, et surtout quand vous ne redémarrez pas vous-même l'application, il est temps de consulter les journaux.

Sauvegarder#

La sauvegarde commence dès l'installation : nous vous conseillons de copier-coller chaque commande et action effectuée, dans un fichier séparé. Cela facilitera votre prochaine installation. Il sera plus confortable de procéder à une installation pérenne après une phase de test. Ce sera une bouée de sauvetage quand votre machine tombera complètement en panne et que vous devrez réinstaller dans l'urgence.

Par défaut, Radiotomate place toutes ses données dans un seul dossier : radiotomate_data. C'est ce dossier que vous voulez sauvegarder. Gardez une copie complète de ce dossier sur une autre machine. Si possible, gardez une deuxième copie complète dans un autre bâtiment.

La façon minimale et rapide de sauvegarder est d'utiliser rsync. Démarrez un terminal dans le dossier parent de la racine des données de Radiotomate et invoquez-le ainsi :

rsync -av radiotomate_data /media/hdd2/radio_backup

Si vous souhaitez pouvoir restaurer vos données à un moment précis sans garder 50 copies complètes de vos données, vous devriez envisager un programme de sauvegarde spécialisé comme restic ou borg.

Restaurer#

La restauration comporte deux étapes :

  1. réinstaller l'application (le pod et les conteneurs de Radiotomate)
  2. restaurer les données de votre radio

La restauration de l'application nécessite de lancer l'installeur avec les mêmes paramètres que la fois précédente.

Une fois cela fait, arrêtez la nouvelle radio (vide) entièrement :

systemctl --user stop radiotomate.service

Puis copiez le dossier de données de votre radio vers la nouvelle racine des données. Une fois cela fait, redémarrez la radio :

systemctl --user start radiotomate.service

Nous vous conseillons d'essayer de restaurer régulièrement, en utilisant n'importe quelle machine de rechange disponible. Cela vous permettra de vous assurer que votre sauvegarde fonctionne correctement, ce qui est important car vous ne voulez pas découvrir ce qui ne va pas lors d'une vraie urgence. Cela vous apportera également une machine de test, ce qui peut être intéressant si vous souhaitez expérimenter de nouvelles configurations, de nouveaux plannings d'émissions ou une nouvelle version de Radiotomate.