Depuis quelques semaines je me suis amusé à configurer une instance de Moode sur mon streamer Volumio Primo à base d'Asus TinkerBoard.
VolumioOS est performant mais j'aime pouvoir faire des test A/B sur cet excellent matériel et avoir accès à différentes options en fonction des besoins.
D' après mes recherches, cela n'avais jamais été tenté, et bonne nouvelle j'ai réussi !
Tout semble fonctionner, j'ai accès a mes points de montage partagés avec volumio, Spotify connect est très stable, camilladsp est bien présent même si je n'ai pas encore eu le temps de le tester.
Cet "Exploit" n'a pas été facile car Docker n'est pas initialement fait pour faire tourner un jeu d'applications complexe démonisé par "systemd" mais plutôt pour faire tourner une ou deux applications simples dans un un environnement léger et virtualisé. Vous l'aurez compris on se trouve un peu au limite du système.
Autre particularité, je n'ai pas pu créer une image via un dockerfile, là encore la taille des "layers" et la présence de systemd ne m'a pas permis d'aller au bout de ma build, du coup pour l'instant il faudra se contenter d'une recette pas à pas. C'est un peu fastidieux mais le résultat est au rendez-vous !
Voici la recette :
in a volumio ssh console
TIP: when using nano command during the recipe, displace in the opened file with arrow, change what needed simply with your keyboard, save/exit with [CTRL+X], [y] to confirm, [enter] to overwrite, that's it !
**************************************
* install docker (host side) *
**************************************
'sudo apt update
'sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
'curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
'sudo add-apt-repository "deb [arch=armhf] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
'sudo apt update
'sudo apt install docker-ce
'sudo usermod -aG docker $USER
******************************************************************************
* Optional - Prepare Alsa just in case of external DAC (host side) *
******************************************************************************
'sudo nano /etc/modprobe.d/alsa-base.conf
comment the last line with #, it will modify the order of soundcard in ALSA to make it moode compatible
# options snd-usb-audio index=1,5 vid=0x0bda pid=0x481a
'sudo reboot
*************************************************************************************
* Optional - If you want to use your device as bluetooth receiver (host side) *
*************************************************************************************
'sudo systemctl stop bluetooth.service (or deactivate it in volumio and reboot)
* this is needed to make Bluetooth accessible from within container*
************************************************************************
* create container with systemd in priviledged mode and start it *
************************************************************************
'docker volume create moode
'sudo chown volumio /var/lib/docker/volumes
'docker create --name debian-moode -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /mnt/NAS:/mnt/NAS -v moode:/boot:rw --device /dev/snd --net host --privileged -e LANG=C.UTF-8 --cap-add=NET_ADMIN --security-opt seccomp:unconfined navikey/raspbian-bullseye /lib/systemd/systemd
'docker container start debian-moode
'docker exec -ti debian-moode /bin/bash *with this command you enter the container with a console*
*********************************************
* install moode player (container side) *
*********************************************
'apt-get update -y
'apt-get upgrade -y
'apt-get install -y curl sudo libxaw7 ssh libsndfile1 libsndfile1-dev
'sudo nano /etc/ssh/sshd_config *to change ssh port to 2222 and fix openssh*
'sudo service sshd restart
'curl -1sLf 'https://dl.cloudsmith.io/public/moodeaudio/m8y/setup.deb.sh' | sudo -E distro=raspbian codename=bullseye arch=armv7hf bash -
'apt-get update -y |apt-get install moode-player -y --fix-missing
# in general this step is giving error but you can correct with
'apt --fix-broken install
'exit *with this command you come back to volumio console*
****************************************
* restart moode player (host side) *
****************************************
'docker container stop debian-moode
'docker container start debian-moode
'docker exec -ti debian-moode /bin/bash *with this command you enter the container with a console*
***************************************
* configure nginx (host side) *
***************************************
'nano /etc/nginx/sites-available/moode-http.conf *to change http port to 8008 for example*
'systemctl restart nginx
****************************
* Access Moode web UI *
****************************
http://volumioip:8008
Enjoy
Comentários