funkwhale issueshttps://dev.funkwhale.audio/groups/funkwhale/-/issues2023-09-23T19:03:01Zhttps://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/ansible/-/issues/36Old version of pyopenssl causes trouble2023-09-22T09:20:15ZGeorg KrauseOld version of pyopenssl causes troubleReport: https://forum.funkwhale.audio/d/369-404-during-install/13
https://forum.funkwhale.audio/d/383-update-1210-to-133-failedReport: https://forum.funkwhale.audio/d/369-404-during-install/13
https://forum.funkwhale.audio/d/383-update-1210-to-133-failedhttps://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/pyfed/-/issues/3Migrate to pydantic v22023-09-12T07:07:33ZGeorg KrauseMigrate to pydantic v2Pydantic version 2 is released and changes basically all internals, so we need to refactor our base class accordingly.
Some help might be found in this thread: https://github.com/pydantic/pydantic/discussions/7008Pydantic version 2 is released and changes basically all internals, so we need to refactor our base class accordingly.
Some help might be found in this thread: https://github.com/pydantic/pydantic/discussions/7008https://dev.funkwhale.audio/funkwhale/pyfed/-/issues/2Implement isort including pre-commit hook2023-09-12T07:07:14ZGeorg KrauseImplement isort including pre-commit hookhttps://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.audio/-/issues/30donations page is still too complex2023-10-12T14:09:34ZMathieu Jourdandonations page is still too complexThe new donation page on next.funkwhale.audio has issues:
- people would have to choose between 3 call to actions of equal importance
- the first donation method suggested is Open Collective, arguably the lesser known method
- the layou...The new donation page on next.funkwhale.audio has issues:
- people would have to choose between 3 call to actions of equal importance
- the first donation method suggested is Open Collective, arguably the lesser known method
- the layout looks unbalanced
- icons feel not really relevant here
- the monthly donation amount can't be changed
![screenshot](/uploads/1251f971d9716d1ca0b6d45ec95a71a8/image.png)
For comparison sake, the initial mockup:
![mockup](/uploads/4ee9617aaa5290993f739e5420e5deb3/image.png)
I noticed Stripes offers to choose between wiretransfer and card method, which is great!
However, I couldn't find in the docs if/how it was possible to choose between one-time donation and recurring donations right from the same Stripe page. Does anyone have any idea on that?
If not, would it be possible to use a custom form of ours to choose between those two kind of donations, select the desired amount, and set the appropriate link behind the "Donate" button?Release new websitehttps://dev.funkwhale.audio/funkwhale/blog.funkwhale.audio/-/issues/10Accessibility issues2023-11-21T11:19:21ZGeorg KrauseAccessibility issuesNew
The accessibility scanning found an error of the following type: WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail
Learn more
Message: This element has insufficient contrast at this conformance level. Expected a contrast ratio of at l...New
The accessibility scanning found an error of the following type: WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail
Learn more
Message: This element has insufficient contrast at this conformance level. Expected a contrast ratio of at least 4.5:1, but text in this element has a contrast ratio of 3.46:1. Recommendation: change text colour to #7c7474.
New
The accessibility scanning found an error of the following type: WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail
Learn more
Message: This element has insufficient contrast at this conformance level. Expected a contrast ratio of at least 4.5:1, but text in this element has a contrast ratio of 3.46:1. Recommendation: change text colour to #7c7474.
The accessibility scanning found an error of the following type: WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail
Learn more
Message: This element has insufficient contrast at this conformance level. Expected a contrast ratio of at least 4.5:1, but text in this element has a contrast ratio of 3.46:1. Recommendation: change text colour to #7c7474.
The accessibility scanning found an error of the following type: WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail
Learn more
Message: This element has insufficient contrast at this conformance level. Expected a contrast ratio of at least 4.5:1, but text in this element has a contrast ratio of 3.46:1. Recommendation: change text colour to #7c7474.https://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/ui/-/issues/31Unified popover component2023-09-25T07:13:51ZMathieu JourdanUnified popover componentIn order to have a cohesive list of actions behind 3-dots buttons related to audio content, we have detailed the popovers for several use-cases.
It answers questions like:
- spacing between elements
- how to deal with multiple items sele...In order to have a cohesive list of actions behind 3-dots buttons related to audio content, we have detailed the popovers for several use-cases.
It answers questions like:
- spacing between elements
- how to deal with multiple items selection vs how to deal with a single item
- what is possible with your own content vs what is possible with remote content
- how to handle items in the queue, in comparison with albums or playlist pages
The mockups are in our [Design System](https://design.funkwhale.audio/#/view/e3a00150-0f5e-11ed-adb9-fff9e854a67c?page-id=ad975ea0-50b3-11ed-bd61-0125e9b2a5bf§ion=interactions&index=0&share-id=0b1bb873-5fc1-8192-8003-08eafcc22967).https://dev.funkwhale.audio/funkwhale/ansible/-/issues/34Migrate to pipx installed Ansible2023-08-23T12:21:57ZGeorg KrauseMigrate to pipx installed AnsibleRight now we are using two different ways to install ansible:
- Install ansible with `pip install --user`, which is the method we used in the past
- Install using custom venv, which we needed to use because debian 12 with python 3.11 do...Right now we are using two different ways to install ansible:
- Install ansible with `pip install --user`, which is the method we used in the past
- Install using custom venv, which we needed to use because debian 12 with python 3.11 doesn't like installations with `--user`
~~Sadly we cannot use pipx, because Debian 12 is still supported and doesn't ship a package, so we can only migrate everyone to a pipx installed ansible after it got EOL, which is 30 Jun 2024.~~
Debian 11 doesn't have a pipx package available, so we need to figure how to handle this and the EOL of Debian 10 doesn't really matter.2024-07-31https://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/pyfed/-/issues/1Release alpha version2023-08-22T09:52:04ZCiarán Ainsworthsporiff@funkwhale.audioRelease alpha versionAs discussed in our meeting today, we should release the initial ActivityStreams support as an alpha package and begin implementing this in Funkwhale. We can use this to do the following:
1. Test the library
2. Test the release process
...As discussed in our meeting today, we should release the initial ActivityStreams support as an alpha package and begin implementing this in Funkwhale. We can use this to do the following:
1. Test the library
2. Test the release process
3. Document the library as we goGeorg KrauseGeorg Krausehttps://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.