How to install and configure CherryMusic on a Debian


CherryMusic depends on Python. To install Python 3, issue:

apt-get install python3

now install dependencies:

apt-get install ffmpeg imagemagick python3-unidecode lame flack vorbis-tools


Create user dedicated account:

adduser cherrymusic

The easiest way to get the latest CherryMusic code and to update CherryMusic regularly is to use Git. Install Git with:

apt-get install git

Now, switch to the newly created user:

su cherrymusic

and get CherryMusic:

git clone --branch devel git:// /home/cherrymusic/cherrymusic-devel
cd /home/cherrymusic/cherrymusic-devel
python3 ./cherrymusic --help



Now, do the initial startup to generate the configuration and data files in your home directory:

python3 ./cherrymusic

This creates the configuration file “~/.config/cherrymusic/cherrymusic.conf”

now we need to edit the config file:


under “basedir” enter the path to your music collection – to make it easier to add further libraries I set the “basedir” to a folder /home/cherrymusic/music_dir and created symlinks in that directory pointing to the location of my music

mkdir /home/cherrymusic/music_dir
ln -s Path_to_your_music /home/cherrymusic/music_dir

now we need to update the cherrymusic database:


and then start the server to test it:




By default cherrymusic will run on http – for security we will set it to run on https:

I already have certificate created and openssl installed so I go ahead and change the CherryMusic config:

cd /home/cherrymusic/cherrymusic-devel
 nano ~/.config/cherrymusic/cherrymusic.conf

and change the following lines accordingly:

 ssl_enabled = True
 ssl_certificate = /etc/ssl/certs/server.crt
 ssl_private_key = /etc/ssl/private/server.key

Now, when you connect to CherryMusic, you should automatically be redirected to the SSL port and therefore have a secure connection.

sysvinit startup script

One final thing is to set it up as a service – instructions are provided on Lord-Simon’s github:

wget --no-check-certificate -O /etc/init.d/cherrymusic

then make the file executable:

chmod +x /etc/init.d/cherrymusic

open it for editing:

nano /etc/init.d/cherrymusic

1. Add the path of your cherrymusic folder to DIR (/home/cherrymusic/cherrymusic-devel)
2. Add the python executable path to the PYTHON (/usr/bin/python3)
3. Set the USER and GROUP under which the service will run

Test the the init script by running:

service cherrymusic start


Once all is working OK do this:

update-rc.d /etc/init.d/cherrymusic defaults


Systemd startup script

I recently moved my cherrymusic service to brand new debian 8 box running systemd and so here is the systemd service script:

Description=CherryMusic Service

ExecStart=/usr/bin/python3 /home/cherrymusic/folder/cherrymusic #use your path to cm


saved that file to /etc/systemd/system as a cherrymusic.service
then to start it up just run:

systemctl start cherrymusic

to ensure it starts automatically enable the service:

systemctl enable cherrymusic