funkwhale issueshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues2023-12-12T08:54:59Zhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2236Allow to search for tracks with artist/album hints2023-12-12T08:54:59ZppomAllow to search for tracks with artist/album hints
## What is the problem you are facing?
Funkwhale's search engine doesn't permit to search in the title and on the album/artist name at the same time.
When searching for a track that only has common words (for example "Love", "You & I"...
## What is the problem you are facing?
Funkwhale's search engine doesn't permit to search in the title and on the album/artist name at the same time.
When searching for a track that only has common words (for example "Love", "You & I"),
I can get tons of results. Sometimes the shorter path to finding that song is to first search for this album and go on its page, then to hit the song's "track details".
## Possible solution and drawbacks
I see in the data model that Tracks have a `body_text` field that tokenize the track title. Maybe it's an easy pick to add the artist's and album's name in the field?
The search can be a little slower, but if it's a real field (not a SQL JOIN), it should not be that much ifaik.
Also the field could get outdated when we change an artist or album name, but that doesn't happen a lot. I'd say that an imperfect implementation is better than none.
I saw in [this issue](https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2095) something that seems to be close to what I'm suggesting:
> What we could do to improve these results is what I've been discussing with @JuniorJPDJ privately - to create a dynamic field on the `Track` model that contains the track title, album title and artist name (all transliterated to support diacritics the 'easy way') and search it either by fuzzy matching or by words from the search query. My only concern to this approach is the performance, but I am not a back-end developer, so I can't tell if there would be a performance hit or not.https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2234Play Next behaviour is not as expected - Appends to queue instead2023-12-14T10:52:30ZAMoonRabbitPlay Next behaviour is not as expected - Appends to queue instead<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue re...<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure your bug report is as useful as possible, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## Steps to reproduce
<!--
Describe the steps to reproduce the issue, like:
1. Visit the page at /artists/
2. Type that
3. Submit
-->
1. Have an existing queue playing.
2. Click play next on a track/album
3. Track/album is added to the end of the play queue rather than after the currently playing track.
## What happens?
When using the Play Next option, tracks are appended to the end of the queue rather than being inserted immediately after the current track.
## What is expected?
Tracks should be inserted immediately after the currently playing track.
## Context
<!--
The version of your instance can be found on the footer : Source code (x.y)
-->
**Funkwhale version(s) affected**: 1.3.3
<!--
If relevant, share additional context here like:
- Browser type and version (for front-end bugs)
- Instance configuration (Docker/non-docker, nginx/apache as proxy, etc.)
- Error messages, screenshots and logs
-->https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2233PWA not available for v1.3.X - App manifest issues still?2024-02-26T20:11:12ZAMoonRabbitPWA not available for v1.3.X - App manifest issues still?<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue re...<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure your bug report is as useful as possible, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## Steps to reproduce
<!--
Describe the steps to reproduce the issue, like:
1. Visit the page at /artists/
2. Type that
3. Submit
-->
1. Visit Open.audio (which currently is on 1.2.10) and note that "Install as App icon in toolbar".
2. Visit an instance on 1.3.X and note that this no longer appears.
## What happens?
<!--
Describe what happens once the previous steps are completed.
-->
Instances on v1.3.X no longer give the option to install the website as a PWA. However on desktop this can be worked around in some chromium browsers as they support making some sites as apps anyway. On mobile however, I have not found a work around.
## What is expected?
<!--
Describe the expected behaviour.
-->
The site should be available to install as a PWA.
## Context
<!--
The version of your instance can be found on the footer : Source code (x.y)
-->
**Funkwhale version(s) affected**: 1.3.X
<!--
If relevant, share additional context here like:
- Browser type and version (for front-end bugs)
- Instance configuration (Docker/non-docker, nginx/apache as proxy, etc.)
- Error messages, screenshots and logs
-->
Screenshot of the address bar in Edge for Open.audio
![image](/uploads/e399449e945e877efc64741cc87c05b5/image.png)
My instance on v1.3.3
![image](/uploads/bad52a88749d4c14c843c6ce3cfbfe4f/image.png)
Looking at the console, my instance has a error for instance.ts which Open.audio does not, but I am not clued up enough to know if this is PWA related. There are no manifest file errors at least which I think have been present before.
![image](/uploads/00d0fe0803ce05690f7f520eeb26d56c/image.png)
Also, looking at the application tab in the browser console, Manifests has a few more errors present
![image](/uploads/87b1d6edbdc92465d96520785a078f9d/image.png)
Start URL and other items which are present on Open.audio are missing
![image](/uploads/c37ed8445f5d3466e7c032f0aa26b2cb/image.png)1.4.1https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2229Scrobbler plugin failing to reset invalid auth sessions for last.fm2023-10-26T11:12:42ZMiv2nirScrobbler plugin failing to reset invalid auth sessions for last.fm## Steps to reproduce
1. Go to funkwhale's account settings -\> Manage plugins
2. Enable and connect a last.fm scrobbler the normal way.
3. Go to your last.fm account -\> Settings -\> Applications.
4. Disconnect the Funkwhale applicatio...## Steps to reproduce
1. Go to funkwhale's account settings -\> Manage plugins
2. Enable and connect a last.fm scrobbler the normal way.
3. Go to your last.fm account -\> Settings -\> Applications.
4. Disconnect the Funkwhale application.
5. Attempt to reconnect your last.fm to funkwhale again.
## What happens?
Nothing happens, track listens do not get logged on last.fm (they still do in Funkwhale itself), the app does not connect back to your last.fm account
## What is expected?
Funkwhale app is expected to connect back to your last.fm account and keep on logging track listens.
## Context & Possible Fix
I stumbled upon this bug when I accidentally disconnected my Funkwhale scrobbler from my last.fm account. Upon trying to rerun the scrobbler plugin setup it wouldn't work at all.
`journalctl -u funkwhale-server` has given me the following:
```plaintext
-- Logs begin at Tue 2022-04-12 17:57:52 UTC, end at Sat 2023-10-07 12:56:39 UTC. --
Oct 07 12:35:29 funkwhalemiv2nir gunicorn[1208]: 2023-10-07 12:35:29,946 plugins WARNING Plugin scrobbler errored during hook listening_created: <?xml version="1.0" encoding="UTF-8"?>
Oct 07 12:35:29 funkwhalemiv2nir gunicorn[1208]: <lfm status="failed">
Oct 07 12:35:29 funkwhalemiv2nir gunicorn[1208]: <error code="9">Invalid session key - Please re-authenticate</error>
Oct 07 12:35:29 funkwhalemiv2nir gunicorn[1208]: </lfm>
```
It seems like Funkwhale was using the expired session that has been saved in the system to authenticate with last.fm and failing repeatedly.
Upon further digging I figured out where those sessions are stored and typed in the following into funkwhale's shell:
1. from django.core.cache import caches
2. cache.keys('scrobbler\*')
3. cache.delete(\<insert retrieved keys here\>)
Upon doing so the last.fm session stored in Funkwhale has been reset, allowing for a new one to properly generate and so my scrobbling has been restored. I suppose doing this automatically or providing users an option to do so could be a solution to this issue.
**Funkwhale version(s) affected**: 1.2.9Nina MärtensNina Märtenshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2228Troi real world review2024-01-26T15:14:56ZpetitminionTroi real world reviewDb context :
- 289 library follows
- 93666 tracks
Result :
- only 3 match for a 50 tracks playlist (daily jams for my user)
- only 6 match for a 50 tracks playlist (daily jams for my user 2th test)
- only 13 match for a 50 tracks play...Db context :
- 289 library follows
- 93666 tracks
Result :
- only 3 match for a 50 tracks playlist (daily jams for my user)
- only 6 match for a 50 tracks playlist (daily jams for my user 2th test)
- only 13 match for a 50 tracks playlist (daily jams for my user 3th test)
To do :
- [ ] Lacking some patch in troi (add `UserRecordingRecommendationsElement` has a troi patch)
- [ ] Various duplicates (same track but different fw ids) (https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2231)
- [ ] Add a new error for the frontend explaining that there is a problem in musicbrainz side (for now if there is a problem we throw a `no more radio candidate` but this is confusing)
- [ ] make troi use local tracks
To follow some ideas about how to resolve some issues we are speaking about it here :
- https://community.metabrainz.org/t/sort-troi-patches-by-stability-and-use/658650
- https://forum.funkwhale.audio/d/394-troi-implementation-going-onpetitminionpetitminionhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2227Inconsistent default language picking2023-09-27T20:21:57ZCodingNekoInconsistent default language picking## Steps to reproduce
## What happens?
Language appears to be IP location based in some circumstances, but naviator.language location based in others? I opened Funkwhale in Chrome 17.0.5938.92 (Official Build) (64-bit) and the page sho...## Steps to reproduce
## What happens?
Language appears to be IP location based in some circumstances, but naviator.language location based in others? I opened Funkwhale in Chrome 17.0.5938.92 (Official Build) (64-bit) and the page shows up in Catalan (correct location-wise, but incorrect system language-wise). However, when I open the page in an incognito window, it shows up in English (correct system language). Firefox doesn't show up in Catalan at all.
I tried removing cookies to see if it was just me having the language saved in some cookie for some reason (don't recall opening funkwhale ever, even less setting the language to Catalan), but it does not do anything, still get the same behaviour.
## What is expected?
Language should be set using the [navigator.language](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/language) property always, regardless of browser.
## Context
**Funkwhale version(s) affected**: at least 1.2.9+git.e38c97d9
**Browsers affected:** at least Chrome 17.0.5938.92 (Official Build) (64-bit)https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2226Support `musicFolderId` paramater in subsonic api2023-09-23T19:03:01ZCassandra McCarthySupport `musicFolderId` paramater in subsonic api## What is the problem you are facing?
I connect to Funkwhale with the play:Sub iOS client. This client supports filtering folders using the [`getMusicFolders` endpoint](http://www.subsonic.org/pages/api.jsp#getMusicFolders). However, F...## What is the problem you are facing?
I connect to Funkwhale with the play:Sub iOS client. This client supports filtering folders using the [`getMusicFolders` endpoint](http://www.subsonic.org/pages/api.jsp#getMusicFolders). However, Funkwhale's Subsonic implementation returns static data:
https://dev.funkwhale.audio/funkwhale/funkwhale/-/blob/f5200eecea7eb0e740e7432d81a32d467554d6e1/api/funkwhale_api/subsonic/views.py#L752-760
Some Subsonic API endpoints such as [`getAlbumList2`](http://www.subsonic.org/pages/api.jsp#getAlbumList2) support the `musicFolderId` parameter, but it's also currently unsupported. I would like to be able to filter between the libraries on my instance so I can choose to either look at my list of albums/artists, another user's, or everyone's.
## What are the possible drawbacks or issues with the requested changes?
Since the `getMusicFolders` endpoint is currently static, there is likely no existing functionality that depends on this data. This feature would be only additive. However, I'm not familiar with the Funkwhale codebase at all, so I don't know the answer to this question.
## Context
Supplied above.
Also, I'm sorry but I don't know what happened to the needs triage line, it didn't seem to apply even though I left it alone.https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2225Avoid indexing of development version of the docs2023-09-14T04:20:25ZGeorg KrauseAvoid indexing of development version of the docsThere is a suggestion on our chats to avoid google indexing the development version of the docs using a `robots.txt`:
```txt
User-agent: *
Disallow: /develop/
```There is a suggestion on our chats to avoid google indexing the development version of the docs using a `robots.txt`:
```txt
User-agent: *
Disallow: /develop/
```https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2224Add a hint to add CSP to S3 provider2023-09-12T11:04:46ZGeorg KrauseAdd a hint to add CSP to S3 providerIf users are using a S3 storage to serve their media files directly, they _might_ need to configure their S3 bucket so the Funkwhale frontend is able to fetch those files.
For OVH there is an example in our forum: https://forum.funkwhal...If users are using a S3 storage to serve their media files directly, they _might_ need to configure their S3 bucket so the Funkwhale frontend is able to fetch those files.
For OVH there is an example in our forum: https://forum.funkwhale.audio/d/384-s3-storage-upload-stucked/3https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2223add create_playlist_from_folder_structure command2023-09-12T07:16:13Zpetitminionadd create_playlist_from_folder_structure commandjust a little tool for people using the in-place import and that might want to have their folder converted into playlistjust a little tool for people using the in-place import and that might want to have their folder converted into playlisthttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2210Get rid of --no-dry-run option for commands2023-08-29T08:05:20ZGeorg KrauseGet rid of --no-dry-run option for commandsThis is originally noted by @jooola in !2506:
> I understand you want to be careful, but this option feels a bit weird.
>
> You might prefer asking a confirmation using a prompt, and allow bypassing the prompt using a --force or --yes ...This is originally noted by @jooola in !2506:
> I understand you want to be careful, but this option feels a bit weird.
>
> You might prefer asking a confirmation using a prompt, and allow bypassing the prompt using a --force or --yes option.
>
> Or using --dry-run to test the command without real action, but --no-dry-run is weird.
So the ideal option would be to rename the option to `--force` or `--yes`. The only thing we need to take care of is a deprecation-period or doing it in a backward compatible manner for now. This needs some planninghttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2207--watch flag doesn't work on NFS mountpints2023-08-14T14:49:32ZDistopico--watch flag doesn't work on NFS mountpints<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue re...<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure your bug report is as useful as possible, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## Steps to reproduce
- Mount an NFS partition and configure it as `in-place`.
- Import Files using `in-place`
- Run `import_files` again with `--watch` option.
- Change some files
- Notice that changes will not taken
## What happens?
`--watch` options doesn't work with NFS. Keeps "Watching for changes at /music...", had my suspicions that this would happen and is looks like NFS doesn't support by default.
- https://github.com/fsnotify/fsnotify/issues/9
- https://unix.stackexchange.com/questions/81663/why-are-inotify-events-different-on-an-nfs-mount
python watchdog require `PollingObserver` https://github.com/gorakhargosh/watchdog/issues/504 for NFS
## What is expected?
It should take changes using `--watch` in NFS
## Context
Funkwhale 1.3.1 in Debian installation
<!--
If relevant, share additional context here like:
- Browser type and version (for front-end bugs)
- Instance configuration (Docker/non-docker, nginx/apache as proxy, etc.)
- Error messages, screenshots and logs
-->https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2204Tracks loading efficiency on album page2023-08-14T19:28:48ZChengChungTracks loading efficiency on album page<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue re...<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure your bug report is as useful as possible, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## Steps to reproduce
For a album with hundreds of tracks, it takes quite a long time to call apis to load all of them, and the page becomes available only after we finished loading the tracks.
<!--
Describe the steps to reproduce the issue, like:
1. Visit the page at /artists/
2. Type that
3. Submit
-->
## What happens?
when we visited `library/albums/{album_id}`
it takes about 1 seconds on my server to load the first page of tracks, then load the second page according to `next` field of the previous response and so on
so if I have a album with 400 tracks, 50 tracks per page, then I have to wait for 8 seconds to see the track list become available
Also there is no significant difference in the time taken between loading 50 items per page and loading 400 items per page, both taking around 1 second
It takes about 900ms per page for a album of 357 tracks, 520ms for 142, 400ms for 99, and 220ms for 27 ones.
BTW, there is typo on `next` field of API `api/v1/tracks/` ,
for example, it will be `api/v1/tracks/?album=430&include_channels=true&ordering=disc_number%2Cposition&page=2&page_size=50` for the second page,
and `api/v1/tracks/?album=430&album=430&include_channels=true&include_channels=true&ordering=disc_number%2Cposition&ordering=disc_number%2Cposition&page=3&page_size=50&page_size=50` for the third page
the larger the page number is, the longer the url is.
<!--
Describe what happens once the previous steps are completed.
-->
## What is expected?
a better page loading efficiency is expected
Paginate can be finished on font-end, not backend
<!--
Describe the expected behaviour.
-->
## Context
<!--
The version of your instance can be found on the footer : Source code (x.y)
-->
**Funkwhale version(s) affected**: 1.3.1+git.cc7fde67
<!--
If relevant, share additional context here like:
- Browser type and version (for front-end bugs)
- Instance configuration (Docker/non-docker, nginx/apache as proxy, etc.)
- Error messages, screenshots and logs
-->https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2200The concurrency of uploading files cannot be controlled2023-08-14T12:24:50ZChengChungThe concurrency of uploading files cannot be controlled<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue re...<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure your bug report is as useful as possible, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## Steps to reproduce
1.Open the upload page from webui
2.Drag a lot of files to upload
## What happens?
The concurrency of uploading is too big since 1.3.0, all files in queue will be uploaded simultaneously, it is bad if the backend cannot handle workload this much. It will even worse if I have a good connection with the server, that means the workload will be much heavier.
Some error response like Cannot upload this file, ensure it is not too big is likely to be triggered
Such error will not appear if I upload files one by one.
Also with such hints, if I press restart/retry button, the reupload process cannot be completed, it is stuck on Uploading… 0%
Also the numerical precision is far more than enough on percentage of Current usage in My Library Page
for example, it shows 24.288456832617186%
## What is expected?
<!--
Describe the expected behaviour.
-->
The concurrency of uploading music files should be limited or configurable
## Context
<!--
The version of your instance can be found on the footer : Source code (x.y)
-->
**Funkwhale version(s) affected**: 1.3.1+git.cc7fde67
<!--
If relevant, share additional context here like:
- Browser type and version (for front-end bugs)
- Instance configuration (Docker/non-docker, nginx/apache as proxy, etc.)
- Error messages, screenshots and logs
-->https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2198cache the docker cache directory between pipeline builds to speed them up2023-09-28T08:58:52Zpetitminioncache the docker cache directory between pipeline builds to speed them upfollowup of https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2532followup of https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2532petitminionpetitminionhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2197Developer Documentation2023-07-31T16:24:36ZGeorg KrauseDeveloper DocumentationWe state the following in our docs:
> Add the following variables to load images and enable access to Django admin pages:
>
> ```
> MEDIA_URL=http://localhost:8000/media/
> STATIC_URL=http://localhost:8000/staticfiles/
> ```
However, ...We state the following in our docs:
> Add the following variables to load images and enable access to Django admin pages:
>
> ```
> MEDIA_URL=http://localhost:8000/media/
> STATIC_URL=http://localhost:8000/staticfiles/
> ```
However, this is not in all cases needed. If you spin up traefik (which is also required to test federation-related things anyways), this is actually wrong. So we should either remove it from the docs or make this clear.
I am in favor of running everything through traefik, since its more close to the actual production setup and when using `localhost:8000` we provoke errors, eg when visiting the profile page (simply because Funkwhale will think the own actor is remote and tries to resolve it). Its better to have one working setup we can automate instead of maintaining two different setups.
Ping @devilcius for opinions
Ping @funkwhale/documentation for inputhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2191Updating Podcasts doesn't work2023-08-16T07:04:51ZGeorg KrauseUpdating Podcasts doesn't workReported at https://forum.funkwhale.audio/d/357-new-podcasts-not-being-fetched/3
```
[2023-07-08 02:57:02,805: WARNING/MainProcess] File "/var/www/funkwhale/venv/lib/python3.9/site-packages/celery/beat.py", line 515, in __init__
[2023-0...Reported at https://forum.funkwhale.audio/d/357-new-podcasts-not-being-fetched/3
```
[2023-07-08 02:57:02,805: WARNING/MainProcess] File "/var/www/funkwhale/venv/lib/python3.9/site-packages/celery/beat.py", line 515, in __init__
[2023-07-08 02:57:02,806: WARNING/MainProcess]
[2023-07-08 02:57:02,806: WARNING/MainProcess] super().__init__(*args, **kwargs)
[2023-07-08 02:57:02,806: WARNING/MainProcess] File "/var/www/funkwhale/venv/lib/python3.9/site-packages/celery/beat.py", line 271, in __init__
[2023-07-08 02:57:02,806: WARNING/MainProcess]
[2023-07-08 02:57:02,806: WARNING/MainProcess] self.setup_schedule()
[2023-07-08 02:57:02,806: WARNING/MainProcess] File "/var/www/funkwhale/venv/lib/python3.9/site-packages/celery/beat.py", line 543, in setup_schedule
[2023-07-08 02:57:02,807: WARNING/MainProcess]
[2023-07-08 02:57:02,807: WARNING/MainProcess] self._create_schedule()
[2023-07-08 02:57:02,807: WARNING/MainProcess] File "/var/www/funkwhale/venv/lib/python3.9/site-packages/celery/beat.py", line 576, in _create_schedule
[2023-07-08 02:57:02,807: WARNING/MainProcess]
[2023-07-08 02:57:02,807: WARNING/MainProcess] self._store['entries'] = {}
[2023-07-08 02:57:02,807: WARNING/MainProcess] File "/usr/lib/python3.9/shelve.py", line 125, in __setitem__
[2023-07-08 02:57:02,808: WARNING/MainProcess]
[2023-07-08 02:57:02,808: WARNING/MainProcess] self.dict[key.encode(self.keyencoding)] = f.getvalue()
[2023-07-08 02:57:02,808: WARNING/MainProcess] _dbm
[2023-07-08 02:57:02,808: WARNING/MainProcess] .
[2023-07-08 02:57:02,808: WARNING/MainProcess] error
[2023-07-08 02:57:02,808: WARNING/MainProcess] :
[2023-07-08 02:57:02,808: WARNING/MainProcess] cannot add item to database
[2023-07-08 02:57:02,998: WARNING/MainProcess] Exception ignored in:
[2023-07-08 02:57:02,998: WARNING/MainProcess] <function Shelf.__del__ at 0x7f93825820>
[2023-07-08 02:57:02,998: WARNING/MainProcess] Traceback (most recent call last):
[2023-07-08 02:57:02,998: WARNING/MainProcess] File "/usr/lib/python3.9/shelve.py", line 162, in __del__
[2023-07-08 02:57:02,999: WARNING/MainProcess]
[2023-07-08 02:57:02,999: WARNING/MainProcess] self.close()
[2023-07-08 02:57:02,999: WARNING/MainProcess] File "/usr/lib/python3.9/shelve.py", line 144, in close
[2023-07-08 02:57:02,999: WARNING/MainProcess]
[2023-07-08 02:57:03,000: WARNING/MainProcess] self.sync()
[2023-07-08 02:57:03,000: WARNING/MainProcess] File "/usr/lib/python3.9/shelve.py", line 168, in sync
[2023-07-08 02:57:03,000: WARNING/MainProcess]
[2023-07-08 02:57:03,000: WARNING/MainProcess] self[key] = entry
[2023-07-08 02:57:03,000: WARNING/MainProcess] File "/usr/lib/python3.9/shelve.py", line 125, in __setitem__
[2023-07-08 02:57:03,001: WARNING/MainProcess]
[2023-07-08 02:57:03,001: WARNING/MainProcess] self.dict[key.encode(self.keyencoding)] = f.getvalue()
[2023-07-08 02:57:03,001: WARNING/MainProcess] _dbm
[2023-07-08 02:57:03,001: WARNING/MainProcess] .
[2023-07-08 02:57:03,001: WARNING/MainProcess] error
[2023-07-08 02:57:03,001: WARNING/MainProcess] :
[2023-07-08 02:57:03,001: WARNING/MainProcess] cannot add item to database
celery beat v5.2.7 (dawn-chorus) is starting.
__ - ... __ - _
LocalTime -> 2023-07-08 02:57:02
Configuration ->
. broker -> redis://127.0.0.1:6379/0
. loader -> celery.loaders.app.AppLoader
. scheduler -> celery.beat.PersistentScheduler
. db -> celerybeat-schedule
. logfile -> [stderr]@%INFO
. maxinterval -> 5.00 minutes (300s)
```https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2190Can't change FUNKWHALE_API_PORT in docker setup, breaks API2023-08-31T18:00:01ZcodlCan't change FUNKWHALE_API_PORT in docker setup, breaks API## Steps to reproduce
1. Follow the docker install guide at https://docs.funkwhale.audio/administrator/installation/docker.html up to editing `.env`
2. In `.env`, set `FUNKWHALE_API_PORT` to anything but 5000, for example, 3456
3. Finis...## Steps to reproduce
1. Follow the docker install guide at https://docs.funkwhale.audio/administrator/installation/docker.html up to editing `.env`
2. In `.env`, set `FUNKWHALE_API_PORT` to anything but 5000, for example, 3456
3. Finish following the guide and set up a reverse proxy to forward to 127.0.0.1:3456
## What happens?
Frontend is accessible via the reverse proxy, but all API requests return 502 errors. It's not possible to log in.
In the docker logs, the frontend complains that it cannot connect to the api at [some internal docker address]:3456, says connection refused.
## What is expected?
Frontend is accessible via the reverse proxy and logging in works fine.
## Context
**Funkwhale version(s) affected**: 1.3.1
I needed to change which external port funkwhale listened on, but [a comment](https://dev.funkwhale.audio/funkwhale/funkwhale/-/blob/1.3.1/deploy/docker-compose.yml#L93) in `docker-compose.yml` prompted me to change that variable in `.env` rather than change the port mapping directly. It seems that changing the variable changes the port mapping *and* which port the frontend looks for the API at, but *not* which port the API listens on.
I worked around this by just editing the port mapping in `docker-compose.yml` like I was going to in the first place.https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2181Funkwhale /media/albums/covers not displaying song covers2023-11-10T11:55:13ZАндрейFunkwhale /media/albums/covers not displaying song coversI am using a local installation of Funkwhale in an LXC container (version 1.2.9), and it works perfectly. I migrated the project to Docker with an upgrade to version 1.3.1 following the official instructions. After the migration, I notic...I am using a local installation of Funkwhale in an LXC container (version 1.2.9), and it works perfectly. I migrated the project to Docker with an upgrade to version 1.3.1 following the official instructions. After the migration, I noticed that approximately half of my songs are missing their album covers, which are located in the path `/media/albums/covers/...` The actual cover images exist on the server, but the frontend cannot see them and returns an error:
```
"Sorry, the page you were looking for does not exist:
https://music.local/media/albums/covers/2019/09/23/9a274ded-583a-4860-abab-8b942e07a2fa.jpg"
```
If I reupload a song, the cover ends up in the path `/media/attachments` and is displayed correctly. However, there are thousands of such songs! How can I automate this process? I have looked at the changelog and performed the following actions before the migration:
```
source /var/calculate/www/funkwhale/virtualenv/bin/activate
rm -rf /var/calculate/www/funkwhale/data/media/sized/
python manage.py fw media generate-thumbnails
```
Funkwhale is set up behind Nginx Proxy Manager with socket support, etc.
Here is my .env configuration:
```
POSTGRES_USER=funkwhale
POSTGRES_PASSWORD=funkwhale
POSTGRES_DB=funkwhale
LANG=ru_RU.utf8
FUNKWHALE_VERSION=1.3.0
FUNKWHALE_API_IP=127.0.0.1
FUNKWHALE_API_PORT=5000
FUNKWHALE_WEB_WORKERS=4
FUNKWHALE_HOSTNAME=music.local
FUNKWHALE_PROTOCOL=https
LOGLEVEL=error
EMAIL_CONFIG=smtp://mysmtp:25
DEFAULT_FROM_EMAIL=noreply@funkwhale.calculate.ru
REVERSE_PROXY_TYPE=nginx
DATABASE_URL=postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres/$POSTGRES_DB
CACHE_URL=redis://redis:6379/0
DJANGO_SETTINGS_MODULE=config.settings.production
DJANGO_SECRET_KEY=secret
DJANGO_ADMIN_URL=^api/admin/
PROXY_MEDIA=true
MEDIA_ROOT=/data/media
STATIC_ROOT=/data/static
MUSIC_DIRECTORY_PATH=/data/music
FUNKWHALE_FRONTEND_PATH=/data/front/dist
MUSIC_DIRECTORY_SERVE_PATH=./music
NGINX_MAX_BODY_SIZE=100M
#THUMBNAIL_JPEG_RESIZE_QUALITY=70
```
My docker-compose.yml file:
```
#https://docs.funkwhale.audio/administrator/installation/docker.html
# https://dev.funkwhale.audio/funkwhale/funkwhale/raw/1.3.0/deploy/docker-compose.yml
version: "3.9"
services:
postgres:
image: postgres:15-alpine
env_file: .env
volumes:
- ./postgres-15:/var/lib/postgresql/data
networks:
- local
restart: unless-stopped
redis:
image: redis:7-alpine
env_file: .env
volumes:
- ./redis:/data
networks:
- local
restart: unless-stopped
celeryworker:
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
env_file: .env
command:
- celery
- --app=funkwhale_api.taskapp
- worker
- --loglevel=INFO
- --concurrency=${CELERYD_CONCURRENCY-0}
depends_on:
- postgres
- redis
volumes:
- "./music:/music:ro"
- "./media:${MEDIA_ROOT}"
networks:
- local
restart: unless-stopped
celerybeat:
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
env_file: .env
command:
- celery
- --app=funkwhale_api.taskapp
- beat
- --loglevel=INFO
depends_on:
- postgres
- redis
networks:
- local
restart: unless-stopped
api:
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
env_file: .env
depends_on:
- postgres
- redis
volumes:
- "./music:${MUSIC_DIRECTORY_PATH-/music}:ro"
- "./media:${MEDIA_ROOT}"
- "./static:${STATIC_ROOT}"
healthcheck:
test: ["CMD-SHELL", "funkwhale-manage test"]
interval: 5s
timeout: 5s
retries: 10
networks:
- local
- proxy
restart: unless-stopped
funkwhale:
image: funkwhale/front:${FUNKWHALE_VERSION:-latest}
env_file: .env
depends_on:
api:
condition: service_healthy
volumes:
- "./music:${MUSIC_DIRECTORY_PATH-/music}:ro"
- "./media:${MEDIA_ROOT}:ro"
- "./static:/usr/share/nginx/html/staticfiles:ro"
networks:
- proxy
- local
restart: unless-stopped
networks:
local:
proxy:
external: true
# https://dev.funkwhale.audio/funkwhale/funkwhale/raw/1.3.0/deploy/docker-compose.yml
version: "3.9"
services:
postgres:
image: postgres:15-alpine
env_file: .env
volumes:
- ./postgres-15:/var/lib/postgresql/data
networks:
- local
restart: unless-stopped
redis:
image: redis:7-alpine
env_file: .env
volumes:
- ./redis:/data
networks:
- local
restart: unless-stopped
celeryworker:
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
env_file: .env
command:
- celery
- --app=funkwhale_api.taskapp
- worker
- --loglevel=INFO
- --concurrency=${CELERYD_CONCURRENCY-0}
depends_on:
- postgres
- redis
volumes:
- "./music:/music:ro"
- "./media:${MEDIA_ROOT}"
networks:
- local
restart: unless-stopped
celerybeat:
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
env_file: .env
command:
- celery
- --app=funkwhale_api.taskapp
- beat
- --loglevel=INFO
depends_on:
- postgres
- redis
networks:
- local
restart: unless-stopped
api:
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
env_file: .env
depends_on:
- postgres
- redis
volumes:
- "./music:${MUSIC_DIRECTORY_PATH-/music}:ro"
- "./media:${MEDIA_ROOT}"
- "./static:${STATIC_ROOT}"
healthcheck:
test: ["CMD-SHELL", "funkwhale-manage test"]
interval: 5s
timeout: 5s
retries: 10
networks:
- local
- proxy
restart: unless-stopped
funkwhale:
image: funkwhale/front:${FUNKWHALE_VERSION:-latest}
env_file: .env
depends_on:
api:
condition: service_healthy
volumes:
- "./music:${MUSIC_DIRECTORY_PATH-/music}:ro"
- "./media:${MEDIA_ROOT}:ro"
- "./static:/usr/share/nginx/html/staticfiles:ro"
networks:
- proxy
- local
restart: unless-stopped
networks:
local:
proxy:
external: true
```
A list of migrations might be helpful:
```
33cd7f4470b9:/data/media# funkwhale-manage showmigrations
account
[X] 0001_initial
[X] 0002_email_max_length
admin
[X] 0001_initial
[X] 0002_logentry_remove_auto_add
[X] 0003_logentry_add_action_flag_choices
audio
[X] 0001_initial
[X] 0002_channel_metadata
[X] 0003_channel_rss_url
[X] 0004_alter_channel_metadata
auth
[X] 0001_initial
[X] 0002_alter_permission_name_max_length
[X] 0003_alter_user_email_max_length
[X] 0004_alter_user_username_opts
[X] 0005_alter_user_last_login_null
[X] 0006_require_contenttypes_0002
[X] 0007_alter_validators_add_error_messages
[X] 0008_alter_user_username_max_length
[X] 0009_alter_user_last_name_max_length
[X] 0010_alter_group_name_max_length
[X] 0011_update_proxy_permissions
[X] 0012_alter_user_first_name_max_length
authtoken
[X] 0001_initial
[X] 0002_auto_20160226_1747
[X] 0003_tokenproxy
common
[X] 0001_initial
[X] 0002_mutation
[X] 0003_cit_extension
[X] 0004_auto_20191111_1338
[X] 0005_auto_20191125_1421
[X] 0006_content
[X] 0007_auto_20200116_1610
[X] 0008_auto_20200701_1317
[X] 0009_auto_20220627_1915
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
dynamic_preferences
[X] 0001_initial
[X] 0002_auto_20150712_0332
[X] 0003_auto_20151223_1407
[X] 0004_move_user_model
[X] 0005_auto_20181120_0848
[X] 0006_auto_20191001_2236
favorites
[X] 0001_initial
federation
[X] 0001_initial
[X] 0002_auto_20180403_1620
[X] 0003_auto_20180407_1010
[X] 0004_auto_20180410_2025
[X] 0005_auto_20180413_1723
[X] 0006_auto_20180521_1702
[X] 0007_auto_20180807_1748
[X] 0008_auto_20180807_1748
[X] 0009_auto_20180822_1956
[X] 0010_auto_20180904_2011
[X] 0011_auto_20180910_1902
[X] 0012_auto_20180920_1803
[X] 0013_auto_20181226_1935
[X] 0014_auto_20181205_0958
[X] 0015_populate_domains
[X] 0016_auto_20181227_1605
[X] 0017_auto_20190130_0926
[X] 0018_fetch
[X] 0019_auto_20190611_0851
[X] 0020_auto_20190730_0846
[X] 0021_auto_20191029_1257
[X] 0022_auto_20191204_1539
[X] 0023_actor_summary_obj
[X] 0024_actor_attachment_icon
[X] 0025_auto_20200317_0820
[X] 0026_public_key_format
[X] 0027_auto_20220627_1915
[X] 0028_auto_20221027_1141
history
[X] 0001_initial
[X] 0002_auto_20180325_1433
moderation
[X] 0001_initial
[X] 0002_auto_20190213_0927
[X] 0003_report
[X] 0004_note
[X] 0005_auto_20200317_0820
[X] 0006_auto_20200803_1222
[X] 0007_auto_20220627_1915
music
[X] 0001_initial
[X] 0002_auto_20151215_1645
[X] 0003_auto_20151222_2233
[X] 0004_track_tags
[X] 0005_deduplicate
[X] 0006_unique_mbid
[X] 0007_track_position
[X] 0008_auto_20160529_1456
[X] 0009_auto_20160920_1614
[X] 0010_auto_20160920_1742
[X] 0011_rename_files
[X] 0012_auto_20161122_1905
[X] 0013_auto_20171213_2211
[X] 0014_importjob_track_file
[X] 0015_bind_track_file_to_import_job
[X] 0016_trackfile_acoustid_track_id
[X] 0017_auto_20171227_1728
[X] 0018_auto_20180218_1554
[X] 0019_populate_mimetypes
[X] 0020_importbatch_status
[X] 0021_populate_batch_status
[X] 0022_importbatch_import_request
[X] 0023_auto_20180407_1010
[X] 0024_populate_uuid
[X] 0025_auto_20180419_2023
[X] 0026_trackfile_accessed_date
[X] 0027_auto_20180515_1808
[X] 0028_importjob_replace_if_duplicate
[X] 0029_auto_20180807_1748
[X] 0030_auto_20180825_1411
[X] 0031_auto_20180914_2007
[X] 0032_track_file_to_upload
[X] 0033_auto_20181023_1837
[X] 0034_auto_20181127_0325
[X] 0035_auto_20181203_1515
[X] 0036_track_disc_number
[X] 0037_auto_20190103_1757
[X] 0038_attributed_to
[X] 0039_auto_20190423_0820
[X] 0040_auto_20191021_1318
[X] 0041_auto_20191021_1705
[X] 0042_album_attachment_cover
[X] 0043_album_cover_attachment
[X] 0044_full_text_search
[X] 0045_full_text_search_stop_words
[X] 0046_auto_20200113_1018
[X] 0047_auto_20200116_1246
[X] 0048_auto_20200120_0900
[X] 0049_auto_20200122_1020
[X] 0050_auto_20200129_1344
[X] 0051_auto_20200319_1249
[X] 0052_auto_20200505_0810
[X] 0053_denormalize_audio_permissions
[X] 0054_alter_uploadversion_mimetype
[X] 0055_auto_20220627_1915
[X] 0056_alter_artist_content_category
[X] 0057_auto_20221118_2108
playlists
[X] 0001_initial
[X] 0002_auto_20180316_2217
[X] 0003_auto_20180319_1214
[X] 0004_auto_20180320_1713
radios
[X] 0001_initial
[X] 0002_radiosession_session_key
[X] 0003_auto_20160521_1708
[X] 0004_auto_20180107_1813
[X] 0005_auto_20200803_1222
[X] 0006_radiosession_config
[X] 0006_alter_radio_config
[X] 0007_merge_20220715_0801
requests
[X] 0001_initial
sessions
[X] 0001_initial
sites
[X] 0001_initial
[X] 0002_set_site_domain_and_name
[X] 0003_auto_20171214_2205
[X] 0004_alter_site_options
socialaccount
[X] 0001_initial
[X] 0002_token_max_lengths
[X] 0003_extra_data_default_dict
tags
[X] 0001_initial
[X] 0002_auto_20200803_1222
users
[X] 0001_initial
[X] 0002_auto_20171214_2205
[X] 0003_auto_20171226_1357
[X] 0004_user_privacy_level
[X] 0005_user_subsonic_api_token
[X] 0006_auto_20180517_2324
[X] 0007_auto_20180524_2009
[X] 0008_auto_20180617_1531
[X] 0009_auto_20180619_2024
[X] 0010_user_avatar
[X] 0011_auto_20180721_1317
[X] 0012_user_upload_quota
[X] 0013_auto_20181206_1008
[X] 0014_oauth
[X] 0015_application_scope
[X] 0016_auto_20190920_0857
[X] 0017_actor_avatar
[X] 0018_auto_20200705_0829
[X] 0019_auto_20200718_0741
[X] 0020_application_token
[X] 0021_auto_20210703_1810
[X] 0022_auto_20221119_1819
[X] 0022_alter_user_settings
[X] 0023_merge_20221125_1902
```https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2180Cannot remove license of a track2023-07-07T10:45:49ZtusooaCannot remove license of a track<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using ...<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using Funkwhale, try asking in our
[forum's support board](https://forum.funkwhale.audio/support) or our [support
chat room](https://riot.im/app/#/room/#funkwhale-support:tchncs.de).
* If you think you've found a bug but aren't sure, you can ask in one of the above channels
first. Once you're confident it's a bug, go ahead and create an issue for us to investigate.
Select the **Bug** template in the **Description** dropdown menu. This template contains
helpful tips for creating your report.
* For smaller additions and enhancements, please file a feature request.
Select the **Feature Request** template in the **Description** dropdown
menu. This template contains helpful tips for creating your request.
* If you have ideas for new features or use cases, consider opening a thread in our
[forum](https://forum.funkwhale.audio/t/development). This enables us to
discuss the feature, its use cases, and the development effort it requires.
We always like hearing ideas from our community. If you're still not sure, click
the **Create issue** button and we'll work with you to sort out the issue.
Happy listening! :whale:
-->
0. Publish a track with some license.
1. Edit it and clear the license field.
2. Submit
3. "Error while submitting edit: You must update at least one field"