For the past few weeks I have been amused to configure an instance of Moode on my streamer Volumio Primo based on Asus TinkerBoard.
VolumioOS is powerful, but I like being able to A/B test this excellent hardware and have access to different options depending on my needs.
According to my research, this had never been attempted before, and the good news is that I succeeded.
Everything seems to work, I have access to my shared mount points with volumio, spotify connect is very stable, camilladsp is present even if I haven't had the time to test it yet.
This "exploit" wasn't easy, as Docker wasn't initially designed to run a complex set of applications demonetized by systemd, but rather to run one or two simple applications in a light, virtualized environment. As you can see, we're at the very limits of the system.
Another particularity is that I was unable to create an image via a dockerfile. Here again, the size of the layers and the presence of systemd prevented me from completing my build, so for the time being I'll have to make do with a step-by-step recipe. It's a bit tedious, but the result is there!
Here's the recipe:
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
Don't hesitate to try it out and let me know what you think.
News of 15.08.23 : github host my automated script https://github.com/chourmovs/moode_tinkerboard
Changelog :
04.08.23 : v 1.0 initial release
14.08.23 : v 1.1 added Bluetooth functionality and various fixes and improvements.
15.08.23 ; v1.2 fix mpd confict that break Moode radio (optional)
creation of a script hosted on github
Screenshots
![](https://static.wixstatic.com/media/da1999_74f03381fe084306b446822b75eb7ab3~mv2.png/v1/fill/w_980,h_749,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/da1999_74f03381fe084306b446822b75eb7ab3~mv2.png)
![](https://static.wixstatic.com/media/da1999_969d19cebed94beda712dac3ca695835~mv2.png/v1/fill/w_980,h_366,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/da1999_969d19cebed94beda712dac3ca695835~mv2.png)
![](https://static.wixstatic.com/media/da1999_f9d36290f89f4975867300575a7968a5~mv2.png/v1/fill/w_980,h_477,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/da1999_f9d36290f89f4975867300575a7968a5~mv2.png)
![](https://static.wixstatic.com/media/da1999_9015cc653f9344438e524eb134512ed1~mv2.png/v1/fill/w_980,h_437,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/da1999_9015cc653f9344438e524eb134512ed1~mv2.png)
![](https://static.wixstatic.com/media/da1999_aa8492735ee342fe88acb01dee84aa0b~mv2.png/v1/fill/w_516,h_376,al_c,q_85,enc_auto/da1999_aa8492735ee342fe88acb01dee84aa0b~mv2.png)
Nice. Why dont you use Dockerfile for creating the docker image?It would be nice to see the image on Docker Hub
yesss ! It works like a charm, Greetings from Germany.