top of page
Search
  • Writer's picturechourmovs vs

Install Moode in a Docker container on Volumio Primo (Asus Tinkerboard ARMv7l)

Updated: Aug 16, 2023



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






338 views3 comments
bottom of page