Diary of Beets on ARM (Odroid-HC4, Armbian)

I got a sorta NAS device which is arm based. I’m also getting ready for my third, and I hope against hope final, beets database. (Reason for that is for another thread.)

I’m starting ‘from scratch’ on a new platform, which seems like it will work. I will document my progress until it becomes clear I should switch back to x86.

So far (from root, bad habit) :

sudo apt install python3-pip python3-setuptools
pip3 install wheel
pip3 install -U beets
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
pip install git+https://github.com/x1ppy/freezetag

Pip install on its own failed, probably for armbian related reasons of not including the above tools by default.

beets installed without wheel, but it did note an error. I installed wheel to be safe. As python experts know, the pip version of beets is far more current than whatever is in the Debian / Armbian repo.


I will be moving to linuxserver.io container, managed by portainer. More info as I work.

Mapped a volume with my music so the container can see it. Used a “bind” which has security issues, but at least I did it read only.

apk add git
python3 -m pip install git+https://github.com/JOJ0/beets-dirfields
# make the beets config point to a file I control with Samba
rm /config/config.yaml
ln --symbolic /blk/black/mysys/beets_config.yaml /config/config.yaml


Don’t want to maintain my own container, so I have to rerun the above commands on every fresh boot. Ideally the container will have months of uptime once it’s all set up. So nbd hopefully.

Need to reset my docker shell every time I restart the container. The ID changes so I can’t just say docker exec -it 8f2563ef7b1d /bin/bash every time. Portainer has a web shell.

edit: perf is starting to be an issue even with a 4 album library. I suspect it’s the slow 25MBps usb port I have my music on. I’m noticing this with calliope.

1 Like

Sorry for the bumps- can’t edit old posts. I think there’s a way to compile edits to a container so I don’t have to keep rerunning this. A project for another day.

alpine linux container instructions

# install dependencies to compile C code on ARM/alpine
# all but git are used for calliope and its dependency on splitstream
apk add git gcc musl-dev python3-dev libc-dev
python3 -m pip install git+https://github.com/JOJ0/beets-dirfields calliope-music m3u8

# make the beets config point to a file I control with Samba
rm /config/config.yaml
ln --symbolic /blk/black/mysys/beet/beets_config.yaml /config/config.yaml