Hello Funkwhale community,
I installed Funkwhale with Docker-Compose following the instructions on my server running OpenMediaVault and also set up Nginx as a reverse proxy with a SSL certificate generated by acme.sh. This all works, I can access my pod via my domain and log in with my account.
Then I imported my music library in-place (as it's quite big and already on my server, so I didn't want to copy everything). As per the instructions found here, I added the bind mounts in the docker-compose.yml in the volumes sections of both celeryworker and api:
- type: bind
source: /export/Share/Musik
target: /srv/funkwhale/data/music/local
and changed the variables in my .env file:
MUSIC_DIRECTORY_PATH=/srv/funkwhale/data/music/local
MUSIC_DIRECTORY_SERVE_PATH=/export/Share/Musik
and then imported everything with the following command (replacing $LIBRARY_ID with my library ID):
sudo docker compose run --rm api funkwhale-manage import_files $LIBRARY_ID "/srv/funkwhale/data/music/local/" --recursive --noinput --in-place --watch --prune
This worked too, I can now see and access all of my music. However, whenever I try to play something (no matter which album), it doesn't work, nothing happens. Looking at the network tab in the browser devtools I see a GET request to what I assume is the music file fails with error 404. The same errors appear in /var/log/nginx/access.log:
<IP_ADDRESS> - - [25/Feb/2025:11:43:14 +0100] "GET /api/v1/listen/921e6802-9239-4945-b040-d60be1e170d8/?upload=94e733b1-7bf5-40e0-a606-110021b00c68&token=eyJ1c2VyX2lkIjoxLCJ1c2VyX3NlY3JldCI6Ijc5ODI3ZTFlLTk4M2UtNDdjNi05OWNmLTA3ZGM3NTYwY2QxZCIsInNjb3BlcyI6WyJyZWFkOmxpYnJhcmllcyJdfQ%3A1tmsOh%3Arbs0tma6jgwxE1zd95SJ1AWkyjOk3rNJR8lY1iZIO1A HTTP/2.0" 404 555 "https://<DOMAIN>/library/albums/2150" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
<IP_ADDRESS> - - [25/Feb/2025:11:43:15 +0100] "GET /api/v1/listen/bfa7882b-d454-46da-9910-bb206cd313ff/?upload=e003072e-19a5-418d-82c9-f8bca51e9f7d&token=eyJ1c2VyX2lkIjoxLCJ1c2VyX3NlY3JldCI6Ijc5ODI3ZTFlLTk4M2UtNDdjNi05OWNmLTA3ZGM3NTYwY2QxZCIsInNjb3BlcyI6WyJyZWFkOmxpYnJhcmllcyJdfQ%3A1tmsOh%3Arbs0tma6jgwxE1zd95SJ1AWkyjOk3rNJR8lY1iZIO1A HTTP/2.0" 404 555 "https://<DOMAIN>/library/albums/2150" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
<IP_ADDRESS> - - [25/Feb/2025:11:43:19 +0100] "GET /api/v1/listen/d39a0645-f2be-4841-9b08-75c3c8aa1fa8/?upload=eaf78f47-2956-487b-9152-a39609c6f278&token=eyJ1c2VyX2lkIjoxLCJ1c2VyX3NlY3JldCI6Ijc5ODI3ZTFlLTk4M2UtNDdjNi05OWNmLTA3ZGM3NTYwY2QxZCIsInNjb3BlcyI6WyJyZWFkOmxpYnJhcmllcyJdfQ%3A1tmsOh%3Arbs0tma6jgwxE1zd95SJ1AWkyjOk3rNJR8lY1iZIO1A HTTP/2.0" 404 555 "https://<DOMAIN>/library/albums/2150" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
I tried looking for a solution online and found that the media and music folders also have to be included in the config of Nginx (/etc/nginx/sites-enabled/funkwhale.conf), so I added the following there:
location ~ /_protected/media/(.+) {
internal;
alias /srv/funkwhale/data/media/$1;
add_header Access-Control-Allow-Origin '*';
}
location /_protected/music {
internal;
alias /srv/funkwhale/data/music/local;
add_header Access-Control-Allow-Origin '*';
}
and restarted both Nginx (sudo systemctl restart nginx) and docker (sudo docker compose restart), but nothing changed, I still get the same errors. I've tried all kinds of different combinations for the the paths but I just cannot get it to work. I'd appreciate any help you could give me in finding my error.
A friend of mine who has more experience working with servers than me also tried the docker install on their server, but got to the same error at the end with no idea for a solution. However, they could confirm that music uploaded via the upload function on the webpage works.