funkwhale merge requestshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests2020-11-19T17:01:01Zhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1233Remove manual entry of Import Reference on front-end import (#1284)2020-11-19T17:01:01ZjovuitRemove manual entry of Import Reference on front-end import (#1284)Closes #1284
- Manual entry of Import Reference is removed, it is kept though in the URL (and editable)
- Tab "Summary" is removed as it is not needed anymore, the import from server option is moved to the tab "Uploading", where it act...Closes #1284
- Manual entry of Import Reference is removed, it is kept though in the URL (and editable)
- Tab "Summary" is removed as it is not needed anymore, the import from server option is moved to the tab "Uploading", where it actually belongs
- Regarding the import from server option, it was unnice, as the Result section was disappearing while a new import was started/pending. I solved this with 131273b00d41d5d1b990a71a6bba5d75e535fd7c, not sure though if it is the right way to do so, but now it seems to work and it's nicer that way I guess. Let me know if there is a way to fix this properly...
- Changelog fragment added
New upload interface:
![image](/uploads/61644be5d82f075cc5a48bb4fb2a1c9f/image.png)https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1232Replaced token password with passphrase2020-11-15T23:46:58ZFred UgglaReplaced token password with passphraseFix #1269, [comment](https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1269#note_20010) <!-- it's okay to have no issue for small changes -->
This changes get_token() to return a passphrase rather than a password. The wordlist is...Fix #1269, [comment](https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1269#note_20010) <!-- it's okay to have no issue for small changes -->
This changes get_token() to return a passphrase rather than a password. The wordlist is from [eff.org](https://www.eff.org/files/2016/09/08/eff_short_wordlist_2_0.txt).
I'm not really sure if test/changelog is necessary, or how to actually fix it :)
This Merge Request includes:
- [ ] Tests
- [ ] A changelog fragmenthttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1231Remove API zip file after being extracted in non-docker upgrade doc (Fix #1236)2020-11-15T15:52:24ZjovuitRemove API zip file after being extracted in non-docker upgrade doc (Fix #1236)Minimal doc enhancement in non-docker setup upgrade procedure, closing #1236Minimal doc enhancement in non-docker setup upgrade procedure, closing #1236https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1230Fixed requirements specifications2020-10-25T17:54:43ZAgateFixed requirements specifications1.2.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1229Resolve "The feed does not pass w3c validation"2021-08-04T20:47:34ZKuba OrlikResolve "The feed does not pass w3c validation"Feeds generated by Funkwhale do not pass validation with the [w3c
validator](https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fpodcast.midline.pl%2Fapi%2Fv1%2Fchannels%2FMidline%2Frss).
This commit addresses the problems identifi...Feeds generated by Funkwhale do not pass validation with the [w3c
validator](https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fpodcast.midline.pl%2Fapi%2Fv1%2Fchannels%2FMidline%2Frss).
This commit addresses the problems identified during validation:
1. The `isPermalink` is not recognized -> changed it to
`isPermaLink` (capital "L")
2. `itunes:summary` and `itunes:subtitle` are 256 characters after
truncating, but the maximum is 255. The truncating function trims the
text to 255 chars, but then adds `…`, so the text is one character
too long
3. The tags within `itunes:keywords` are now separated with commas
instead of spaces (https://validator.w3.org/feed/docs/warning/InvalidKeywords.html)
Closes #1250https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1228fix #1238: Add number of tracks and discs of an album to API2021-02-11T13:48:11ZSoran Alatasfix #1238: Add number of tracks and discs of an album to APIThe number of tracks were missing. I added them in class TrackAlbumSerializer and adapted the test_track_album_serializer test to include it. Ran black through files to resolve flake8 issues.The number of tracks were missing. I added them in class TrackAlbumSerializer and adapted the test_track_album_serializer test to include it. Ran black through files to resolve flake8 issues.1.1Georg KrauseGeorg Krausehttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1227fix #1238: Add number of tracks and discs of an album to API2020-10-15T10:49:58ZSoran Alatasfix #1238: Add number of tracks and discs of an album to APIThe number of tracks were missing. I added them in class TrackAlbumSerializer and adapted the test_track_album_serializer test to include it. Ran black through files to resolve flake8 issues.The number of tracks were missing. I added them in class TrackAlbumSerializer and adapted the test_track_album_serializer test to include it. Ran black through files to resolve flake8 issues.https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1226fix #1238: Add number of tracks and discs of an album to API2020-10-15T09:20:55ZSoran Alatasfix #1238: Add number of tracks and discs of an album to APIThe number of tracks were missing. I added them in class TrackAlbumSerializer and adapted the test_track_album_serializer test to include itThe number of tracks were missing. I added them in class TrackAlbumSerializer and adapted the test_track_album_serializer test to include ithttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1225Allow genre tags to be updated when rescanning files in-place2021-11-22T10:44:58ZCédric SchieliAllow genre tags to be updated when rescanning files in-placeRelated issue: #1246
This Merge Request includes:
- [X] Tests
- [X] A changelog fragment
- [X] Documentation updateRelated issue: #1246
This Merge Request includes:
- [X] Tests
- [X] A changelog fragment
- [X] Documentation updatehttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1224Resolve "Multi-CD albums - display gets chaotic while browsing album tracks"2020-10-01T11:46:59ZCiarán Ainsworthsporiff@funkwhale.audioResolve "Multi-CD albums - display gets chaotic while browsing album tracks"Closes #1228
Fix implemented by rfinz, fixes the issue of multi-page albums being broken up when paginated
### Outcome
![image](/uploads/6e589f3e081d86dcdf48b8f3d4f1e0f7/image.png)
![image](/uploads/b517f57cbe56d4a3da303f6543b02503/...Closes #1228
Fix implemented by rfinz, fixes the issue of multi-page albums being broken up when paginated
### Outcome
![image](/uploads/6e589f3e081d86dcdf48b8f3d4f1e0f7/image.png)
![image](/uploads/b517f57cbe56d4a3da303f6543b02503/image.png)Ciarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1223Use higher-resolution variant of album covers in track queue2020-09-14T11:31:16ZTony WasserkaUse higher-resolution variant of album covers in track queueDisclaimer: This is UNTESTED, and I had to make an educated guess about which file to edit since I don't have a FW dev setup on this machine right now.
I noticed that when expanding the play queue, the current album cover would be shown...Disclaimer: This is UNTESTED, and I had to make an educated guess about which file to edit since I don't have a FW dev setup on this machine right now.
I noticed that when expanding the play queue, the current album cover would be shown at about 450x450, yet only the 200x200 version of it would be fetched from the server. This of course causes ugly artifacts, hence let's use the higher-resolution image instead.https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1222Resolve "UI - allow to play / queue specific volume part of multi-cd / volume...2020-09-12T08:59:57ZAgateResolve "UI - allow to play / queue specific volume part of multi-cd / volumes album"Closes #1226Closes #1226backloghttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1221Fix #1217: Fixed "scope=subscribed" on albums, artists, uploads and libraries...2020-09-03T14:04:29ZAgateFix #1217: Fixed "scope=subscribed" on albums, artists, uploads and libraries APICloses #1217Closes #12171.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1220Fix #1205: Added a new, large thumbnail size for cover images2020-08-28T19:05:15ZAgateFix #1205: Added a new, large thumbnail size for cover imagesCloses #1205Closes #12051.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1219Added link to origin pod for track, album, artist, profile, channel and library2020-08-28T18:47:18ZAgateAdded link to origin pod for track, album, artist, profile, channel and library1.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1218Fix #1210: Enforce authentication when viewing remote channels, profiles and ...2020-08-28T18:23:38ZAgateFix #1210: Enforce authentication when viewing remote channels, profiles and librariesCloses #1210
This is important to avoid exposing duplicate pages regarding content hosted elsewhereCloses #1210
This is important to avoid exposing duplicate pages regarding content hosted elsewhere1.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1217WIP: Compose for multi-container installation refactorized2021-05-13T04:03:48ZMeliurwenWIP: Compose for multi-container installation refactorizedRelated issue: `None`
This Merge Request includes:
- [ ] Tests
- [ ] A changelog fragment (cf https://docs.funkwhale.audio/contributing.html#changelog-management)
## Why
The official docker-compose works, but is written in some very...Related issue: `None`
This Merge Request includes:
- [ ] Tests
- [ ] A changelog fragment (cf https://docs.funkwhale.audio/contributing.html#changelog-management)
## Why
The official docker-compose works, but is written in some very questionable way;
creating serious issues in security, portability, modularity, readability and
maintenability of the entire stack. The installation is also not automated, but
requires extra steps (excluding configuration that doesn't count) to initialize
for the first time the instance.
## What changed
There has been a **_lot_** of changes, I will list the most notable ones:
### Network
+ **Before:** _(see [the appendix](###Network-Before))_
+ the containers were all under the same network which gave them internet access;
+ the `api` and `nginx` (the reverse-proxy) services were exposing to the public (using the `port` directive), respectively the `5000/tcp` and `80/tcp` ports;
+ the ports of `postgres` and `redis` were not documented (no `expose` directive used).
+ **Now:** _(see [the appendix](###Network-Now))_
+ There are _three_ distinct networks with precise purposes:
1. An internal network (no Internet access) containing all the services;
2. A network with Internet access with only the services that _really_ need it, namely: `api` and `celeryworker`;
if you want the whole app without internet access (but still reachable via web browser) set `NO_INTERNET_ACC` to `true`;
3. An optional external network to hook the `nginx` service only (in case you have a main reverse-proxy on your server).
+ the `api` and `nginx` (the reverse-proxy) services no longer expose their ports to the public, they are only documented with the `expose` directive;
+ the ports of `postgres` and `redis` services are now documented with the `expose` directive.
### Environment variables
> **Info:** read [this](https://docs.docker.com/compose/env-file/) and [this](https://docs.docker.com/compose/compose-file/#env_file) on the official Docker docs to understand the difference between `.env` file and env files imported with `env_file`.
+ **Before:**
+ All the environment variables for all services were mixed together inside the same `*.env` file (`.env`);
+ The `.env` file (which is automatically loaded by Docker Compose to be used within the `.yml` file), is also directly injected in all serivices with the `env_file` directive, exposing information to services that doesn't (and shouldn't) need it.
+ **Now:**
+ The environment variables are now separated in different files depending on the service or set of services that does need them; the `.env` file now has only variables concerning the configuration at the _stack level_, not service, except for the `FUNKWHALE_HOSTNAME` variable which is passed inside the containers via the `environment` directive.
+ The `env_file` is now used only when needed and import `*.env` files containing variables only needed for the target service.
### Other
+ Configurable paths for the volumes mounting point **_inside_** the containers has been removed, it's something that has no sense to exist and unnecessarily complicate things.
+ Has been added the possibility to configure the `restart` and `container_name` directive on all the containers.
+ Has been added the possibility to configure the **_tag_** on all services and **_image_** on some (`nginx`, `postgres`, `redis`).
+ In the `funkwhale.template` has been removed all the unnecessary variables and replaced with static paths which reflects the static volume mountpoints I set for the service.
+ The `funkwhale_proxy.conf` and `funkwhale.template` has been moved to a dedicated subfolder called `nginx`.
+ In case the system administrator has intention to hook the `nginx` service to the network of its _main_ reverse-proxy which happens to have a companion (for example [docker-gen](https://github.com/jwilder/docker-gen)) I've set some variables with dummy values already in the `nginx.env` file.
+ The directives in the `docker-compose.yml` file now are no longer sorted randomly; the order is the same for all and follows a criteria that (arguably) makes more sense.
+ Except for `DJANGO_SECRET_KEY`, `FUNKWHALE_HOSTNAME` and `REVERSE_PROXY_NETWORK` which are mandatory variables to manually set, all the optional variables are left empty in the `*.var` files by default and has a correspondent default value defined in the `docker-compose.yml` file (except for `funkwhale.env`).
+ `postgres` service image tag has been upgraded from `11` to `12.4` and `redis` from to `5` to `6`.
## What Didn't Change
+ The overall stack structure remained the same, with the same container images.
+ The name of the services (but they should be changed to a more generic ones,
like: `web`, `api`, `db`, `cache`, etc...).
+ The extra manual steps necessary to initialize for the first time the app
+ The extra manual steps necessary to partially initialize the database in case
to upgrade to a new version (tables or columns has been added/removed)
+ The extra manual steps in case of bump to a new version of the service that is
not backward compatible (for example posgres likes to break compatibility at every
major release).
## Appendix
### Network Before
![network-before](/uploads/717be8a4b7f6856fd630ab55e91282dd/network-before.png)
### Network Now
![network-now](/uploads/493d866281e9dcbf876cfb721d408f7e/network-now.png)https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1216[plugin, scrobbler] Use last.fm API v2 for scrobbling if API key and secret a...2020-08-26T10:26:28ZAgate[plugin, scrobbler] Use last.fm API v2 for scrobbling if API key and secret are provided1.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1215Plugins can now register .env settings2020-08-25T08:01:27ZAgatePlugins can now register .env settings1.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1214Fix #1999: broken federation with pods using allow-listing2020-08-24T11:58:37ZAgateFix #1999: broken federation with pods using allow-listingCloses #1199Closes #11991.0