Funkwhale - A modern, convivial and free music server
-
@rmdes I can add it to the Master Catalogue
Once added, Cloudron users can install it using a link.
Do you have a publicly available docker image ?
Or I can make one from the repo@timconsidine you can make one from the repo or use this one : https://hub.docker.com/r/rmdes/funkwhale-cloudron
this is the one I'm using in "production" -
@rmdes I can add it to the Master Catalogue
Once added, Cloudron users can install it using a link.
Do you have a publicly available docker image ?
Or I can make one from the repo@timconsidine I'd be happy to implement whatever is necessary to make this possible, is there any documentation somewhere about this?
-
@timconsidine I'd be happy to implement whatever is necessary to make this possible, is there any documentation somewhere about this?
@rmdes ah, documentation - always the Achilles heel. Sorry, will make some, but in the interim ...
-
ensure the source git repo is publicly available, no login (just checked : it is already)
-
a prebuilt docker image on publicly available link (e.g. hub.docker.com
If no pre-built docker image available, I can build one.
With that information (just 2 URLs), I manually add the details to my
CustomAppGatewayand hey presto, users can install the app from a one-line install command, but better from CCAI-P as that has update process.Planning to add update process for the one-liner install also.
-
-
The app is stable but it is based on the funkwhale v2, which is itself in RC, but in my experience is pretty stable, I have been running it for months in RC, in a bare-metal deployment, but then I really wanted to see this application on the cloudron store, so I went on an packaged it, studied the Taiga package to create this mono-container with 3 process running frontend by nginx, from what I'm seeing its running really well on our cloudron, including federation.
I migrated from my bare-metal and dumped the postgres to the postgres cloudron addon and after syncing the media files, everything was up and running without any data loss or federation activity gap, so i'm pretty confident its ready to be used by others.
I'll be alert to follow funkwhale releases and upgrade the docker image when necessary until it reach stable release
-
Funkwhale now on CustomAppGateway, alongside Indiekit
-
Many thanks, I just pushed a new docker image with this last addition :

which is going to allow users to maintain the funkwhale app with ease
documented here : https://github.com/rmdes/funkwhale-cloudron?tab=readme-ov-file#scheduler-tasks
-
Many thanks, I just pushed a new docker image with this last addition :

which is going to allow users to maintain the funkwhale app with ease
documented here : https://github.com/rmdes/funkwhale-cloudron?tab=readme-ov-file#scheduler-tasks
-
Installed via CustomAppGateway - works flawless, thanks!
But I can‘t login.
I did enter the commandsource /app/code/venv/bin/activate funkwhale-manage fw users create --superuser --username abc --email hello@domain.tld --password aX7sxn5WtWLpok9MPRV3endgxb7LaW(obviously a different password but the same length and composition) without error; then restarted the app.
But when I want to login I get the error
We can't log you in
Please check that your username and password are correct and that you have confirmed your email address.
… and I did not get an activation mail. And the email address does exist.
-
Tried the whole setup again this morning, to no avail:
Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /settings.json HTTP/1.1" 200 75 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /assets/index-BRedch81.js.map HTTP/1.1" 200 2884363 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /api/v2/instance/nodeinfo/2.1/ HTTP/1.1" 200 1103 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /api/v2/instance/settings/ HTTP/1.1" 200 180683 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /api/v2/instance/nodeinfo/2.1/ HTTP/1.1" 200 1103 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /assets/network-iftOS4y9.png HTTP/1.1" 200 120672 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /assets/Lato-Italic-DOTKc3_v.ttf HTTP/1.1" 200 75792 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /assets/bootstrap-icons-dSOGREQ0.woff2 HTTP/1.1" 200 130608 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /assets/Lato-Black-BGKY3P7n.ttf HTTP/1.1" 200 69500 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /assets/Lato-Bold-B5iD31kO.ttf HTTP/1.1" 200 73332 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /assets/Lato-BlackItalic-Bn3AYdVg.ttf HTTP/1.1" 200 72000 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /assets/Lato-BoldItalic-CT6m3OwA.ttf HTTP/1.1" 200 77732 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 2026-02-15 07:15:35,853 django.request WARNING Unauthorized: /api/v2/users/me/ Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /api/v2/users/me/ HTTP/1.1" 401 58 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /assets/vue-router-D6mGRgoF.js.map HTTP/1.1" 200 723024 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:35 2026-02-15 07:15:35,915 django.request WARNING Unauthorized: /api/v2/users/me/ Feb 15 08:15:35 172.18.0.1 - - [15/Feb/2026:07:15:35 +0000] "GET /api/v2/users/me/ HTTP/1.1" 401 58 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:36 172.18.0.1 - - [15/Feb/2026:07:15:36 +0000] "GET /serviceWorker.js HTTP/1.1" 200 10891 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:40 172.18.0.1 - - [15/Feb/2026:07:15:40 +0000] "GET /api/v2/instance/nodeinfo/2.1/ HTTP/1.1" 200 1103 "-" "Mozilla (CloudronHealth)" Feb 15 08:15:40 172.18.0.1 - - [15/Feb/2026:07:15:40 +0000] "GET /assets/Lato-Light-hJCcuSzX.ttf HTTP/1.1" 200 77208 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:40 172.18.0.1 - - [15/Feb/2026:07:15:40 +0000] "GET /assets/Lato-Thin-BBFgnKgu.ttf HTTP/1.1" 200 69976 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:41 2026-02-15 07:15:41,510 django.request WARNING Bad Request: /api/v2/users/login Feb 15 08:15:41 172.18.0.1 - - [15/Feb/2026:07:15:41 +0000] "POST /api/v2/users/login HTTP/1.1" 400 68 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:41 2026-02-15 07:15:41,517 django.request WARNING Bad Request: /api/v2/users/login Feb 15 08:15:41 172.18.0.1 - - [15/Feb/2026:07:15:41 +0000] "POST /api/v2/users/login HTTP/1.1" 400 68 "https://audio.domain.tld/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15" Feb 15 08:15:43 2026-02-15 07:15:43,545 django.request WARNING Bad Request: /api/v2/users/login