Docker installation

Docker is the easiest way to get a Funkwhale instance up and running.

First, ensure you have Docker and docker-compose installed.

Download the sample docker-compose file:

cd /srv/funkwhale
mkdir nginx
curl -L -o nginx/funkwhale.template "https://code.eliotberriot.com/funkwhale/funkwhale/raw/develop/deploy/docker.nginx.template"
curl -L -o nginx/funkwhale_proxy.conf "https://code.eliotberriot.com/funkwhale/funkwhale/raw/develop/deploy/funkwhale_proxy.conf"
curl -L -o docker-compose.yml "https://code.eliotberriot.com/funkwhale/funkwhale/raw/develop/deploy/docker-compose.yml"

Create your env file:

export FUNKWHALE_VERSION="0.17"
curl -L -o .env "https://code.eliotberriot.com/funkwhale/funkwhale/raw/develop/deploy/env.prod.sample"
sed -i "s/FUNKWHALE_VERSION=latest/FUNKWHALE_VERSION=$FUNKWHALE_VERSION/" .env

Ensure to edit it to match your needs (this file is heavily commented)

Then, you should be able to pull the required images:

docker-compose pull

Run the database container and the initial migrations:

docker-compose up -d postgres
docker-compose run --rm api python manage.py migrate

Warning

You may sometimes get the following warning while applying migrations:

"Your models have changes that are not yet reflected in a migration, and so won't be applied."

This is a warning, not an error, and it can be safely ignored. Never run the makemigrations command yourself.

Create your admin user:

docker-compose run --rm api python manage.py createsuperuser

Then launch the whole thing:

docker-compose up -d

Now, you just need to configure your reverse-proxy. Don’t worry, it’s quite easy.

About music acquisition

If you want to import music located on the server, you can put it in the data/music directory and it will become readable by the importer.