Lien du repo : https://github.com/urlab/musicman
Le but de ce projet est de regrouper tous les services de musique qui sont sur hal1 pour les porter en docker (avec un joli docker-compose) sur hal2.
La liste des services est la suivante :
- Navidrome Server
- Sound Via LAN (stream son depuis un device jusqu'à la machine)
- UrSoundDownloader
- Raspotify
Note : Concernant SoundViaLAN qui est un sound server avec pulseaudio, c'est fastidieux et inutile de passer par un docker, puisque pulseaudio fait ça très bien (voir doc pa) et que le mettre dans un docker reviendra à faire discuter pulseaudio dans le docker avec pulseaudio en dehors du docker, tout ça pour une ligne de config.
Après moult tests, utiliser la direct connection est une mauvaise idée surtout que si on lit la documentation ça demande de restart pulseaudio côté client dès qu'on veut changer en plus de devoir setup un tunnel avec ssh ou pulse. Cependant, il y a une super technologie de tunnel qui fait tout très bien et aussi mentionnée dans la doc : Zeroconf
Et l'installation est toute simple.
Des deux côtés installer pulseaudio et pulseaudio-module-zeroconf
Côté serveur :
Dans /etc/pulse/default.pa.d/soundViaLAN.pa
ajouter :
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;172.23.100.0/24
et
load-module module-zeroconf-publish
Côté client :
Dans /etc/pulse/default.pa.d/soundViaLAN.pa
ajouter :
load-module module-zeroconf-discover
Puis faut relancer pulseaudio des deux côtés et avahi-daemon si nécessaire. (Attention pulseaudio est un service user)
J'ai ajouté un tuto d'install client dans le wiki music.lan.
Si ça marche pas quand vous coupez la connection ssh au serveur de son, ça vient d'une histoire de user et le plus simple est de passer pulseaudio au niveau system côté serveur, voir archwiki pour ça et attention mv /etc/pulse/default.pa.d/soundViaLAN.pa /etc/pulse/system.pa.d/soundViaLAN.pa