Version bump and release for 0.17
This commit is contained in:
parent
1bc9cdd5cf
commit
dc1e4fb0c7
194
CHANGELOG
194
CHANGELOG
|
@ -10,6 +10,200 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog.
|
||||||
|
|
||||||
.. towncrier
|
.. towncrier
|
||||||
|
|
||||||
|
0.17 (2018-10-07)
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Per user libraries
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This release contains a big change in music management. This has a lot of impact
|
||||||
|
on how Funkwhale behaves, and you should have a look at
|
||||||
|
https://docs.funkwhale.audio/upgrading/0.17.html for information
|
||||||
|
about what changed and how to migrate.
|
||||||
|
|
||||||
|
|
||||||
|
Features:
|
||||||
|
|
||||||
|
- Per user libraries (#463, also fixes #160 and #147)
|
||||||
|
- Authentication using a LDAP directory (#194)
|
||||||
|
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
|
||||||
|
- Add configuration option to set Musicbrainz hostname
|
||||||
|
- Add sign up link in the sidebar (#408)
|
||||||
|
- Added a library widget to display libraries associated with a track, album
|
||||||
|
and artist (#551)
|
||||||
|
- Ensure from_activity field is not required in django's admin (#546)
|
||||||
|
- Move setting link from profile page to the sidebar (#406)
|
||||||
|
- Simplified and less error-prone nginx setup (#358)
|
||||||
|
|
||||||
|
Bugfixes:
|
||||||
|
|
||||||
|
- Do not restart current song when rordering queue, deleting tracks from queue
|
||||||
|
or adding tracks to queue (#464)
|
||||||
|
- Fix broken icons in playlist editor (#515)
|
||||||
|
- Fixed a few untranslated strings (#559)
|
||||||
|
- Fixed splitted album when importing from federation (#346)
|
||||||
|
- Fixed toggle mute in volume bar does not restore previous volume level (#514)
|
||||||
|
- Fixed wrong env file URL and display bugs in deployment documentation (#520)
|
||||||
|
- Fixed wrong title in PlayButton (#435)
|
||||||
|
- Remove transparency on artist page button (#517)
|
||||||
|
- Set sane width default for ui cards and center play button (#530)
|
||||||
|
- Updated wrong icon and copy in play button dropdown (#436)
|
||||||
|
|
||||||
|
|
||||||
|
Documentation:
|
||||||
|
|
||||||
|
- Fixed wrong URLs for docker / nginx files in documentation (#537)
|
||||||
|
|
||||||
|
|
||||||
|
Other:
|
||||||
|
|
||||||
|
- Added a merge request template and more documentation about the changelog
|
||||||
|
|
||||||
|
|
||||||
|
Using a LDAP directory to authenticate to your Funkwhale instance
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Funkwhale now support LDAP as an authentication source: you can configure
|
||||||
|
your instance to delegate login to a LDAP directory, which is especially
|
||||||
|
useful when you have an existing directory and don't want to manage users
|
||||||
|
manually.
|
||||||
|
|
||||||
|
You can use this authentication backend side by side with the classic one.
|
||||||
|
|
||||||
|
Have a look at https://docs.funkwhale.audio/installation/ldap.html
|
||||||
|
for detailed instructions on how to set this up.
|
||||||
|
|
||||||
|
|
||||||
|
Simplified nginx setup [Docker: Manual action required]
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
We've received a lot of user feedback regarding our installation process,
|
||||||
|
and it seems the proxy part is the one which is the most confusing and difficult.
|
||||||
|
Unfortunately, this is also the one where errors and mistakes can completely break
|
||||||
|
the application.
|
||||||
|
|
||||||
|
To make things easier for everyone, we now offer a simplified deployment
|
||||||
|
process for the reverse proxy part. This will make upgrade of the proxy configuration
|
||||||
|
significantly easier on docker deployments.
|
||||||
|
|
||||||
|
On non-docker instances, you have nothing to do.
|
||||||
|
|
||||||
|
If you have a dockerized instance, here is the upgrade path.
|
||||||
|
|
||||||
|
First, tweak your .env file::
|
||||||
|
|
||||||
|
# remove the FUNKWHALE_URL variable
|
||||||
|
# and add the next variables
|
||||||
|
FUNKWHALE_HOSTNAME=yourdomain.funkwhale
|
||||||
|
FUNKWHALE_PROTOCOL=https
|
||||||
|
|
||||||
|
# add the following variable, matching the path your app is deployed
|
||||||
|
# leaving the default should work fine if you deployed using the same
|
||||||
|
# paths as the documentation
|
||||||
|
FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/front/dist
|
||||||
|
|
||||||
|
Then, add the following block at the end of your docker-compose.yml file::
|
||||||
|
|
||||||
|
# existing services
|
||||||
|
api:
|
||||||
|
...
|
||||||
|
celeryworker:
|
||||||
|
...
|
||||||
|
|
||||||
|
# new service
|
||||||
|
nginx:
|
||||||
|
image: nginx
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
# Override those variables in your .env file if needed
|
||||||
|
- "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-30M}"
|
||||||
|
volumes:
|
||||||
|
- "./nginx/funkwhale.template:/etc/nginx/conf.d/funkwhale.template:ro"
|
||||||
|
- "./nginx/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro"
|
||||||
|
- "${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:ro"
|
||||||
|
- "${MEDIA_ROOT}:${MEDIA_ROOT}:ro"
|
||||||
|
- "${STATIC_ROOT}:${STATIC_ROOT}:ro"
|
||||||
|
- "${FUNKWHALE_FRONTEND_PATH}:/frontend:ro"
|
||||||
|
ports:
|
||||||
|
# override those variables in your .env file if needed
|
||||||
|
- "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80"
|
||||||
|
command: >
|
||||||
|
sh -c "envsubst \"`env | awk -F = '{printf \" $$%s\", $$1}'`\"
|
||||||
|
< /etc/nginx/conf.d/funkwhale.template
|
||||||
|
> /etc/nginx/conf.d/default.conf
|
||||||
|
&& cat /etc/nginx/conf.d/default.conf
|
||||||
|
&& nginx -g 'daemon off;'"
|
||||||
|
links:
|
||||||
|
- api
|
||||||
|
|
||||||
|
By doing that, you'll enable a dockerized nginx that will automatically be
|
||||||
|
configured to serve your Funkwhale instance.
|
||||||
|
|
||||||
|
Download the required configuration files for the nginx container:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cd /srv/funkwhale
|
||||||
|
mkdir nginx
|
||||||
|
curl -L -o nginx/funkwhale.template "https://code.eliotberriot.com/funkwhale/funkwhale/raw/|version|/deploy/docker.nginx.template"
|
||||||
|
curl -L -o nginx/funkwhale_proxy.conf "https://code.eliotberriot.com/funkwhale/funkwhale/raw/|version|/deploy/funkwhale_proxy.conf"
|
||||||
|
|
||||||
|
Update the funkwhale.conf configuration of your server's reverse-proxy::
|
||||||
|
|
||||||
|
# the file should match something like that, upgrade all variables
|
||||||
|
# between ${} to match the ones in your .env file,
|
||||||
|
# and your SSL configuration if you're not using let's encrypt
|
||||||
|
# The important thing is that you only have a single location block
|
||||||
|
# that proxies everything to your dockerized nginx.
|
||||||
|
|
||||||
|
sudo nano /etc/nginx/sites-enabled/funkwhale.conf
|
||||||
|
upstream fw {
|
||||||
|
# depending on your setup, you may want to update this
|
||||||
|
server ${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT};
|
||||||
|
}
|
||||||
|
map $http_upgrade $connection_upgrade {
|
||||||
|
default upgrade;
|
||||||
|
'' close;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name ${FUNKWHALE_HOSTNAME};
|
||||||
|
location / { return 301 https://$host$request_uri; }
|
||||||
|
}
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
listen [::]:443 ssl;
|
||||||
|
server_name ${FUNKWHALE_HOSTNAME};
|
||||||
|
|
||||||
|
# TLS
|
||||||
|
ssl_protocols TLSv1.2;
|
||||||
|
ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
ssl_session_cache shared:SSL:10m;
|
||||||
|
ssl_certificate /etc/letsencrypt/live/${FUNKWHALE_HOSTNAME}/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/${FUNKWHALE_HOSTNAME}/privkey.pem;
|
||||||
|
|
||||||
|
# HSTS
|
||||||
|
add_header Strict-Transport-Security "max-age=31536000";
|
||||||
|
|
||||||
|
location / {
|
||||||
|
include /etc/nginx/funkwhale_proxy.conf;
|
||||||
|
proxy_pass http://fw/;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Check that your configuration is valid then reload:
|
||||||
|
|
||||||
|
sudo nginx -t
|
||||||
|
sudo systemctl reload nginx
|
||||||
|
|
||||||
|
|
||||||
0.16.3 (2018-08-21)
|
0.16.3 (2018-08-21)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
__version__ = "0.16.3"
|
__version__ = "0.17"
|
||||||
__version_info__ = tuple(
|
__version_info__ = tuple(
|
||||||
[
|
[
|
||||||
int(num) if num.isdigit() else num
|
int(num) if num.isdigit() else num
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
Authentication using a LDAP directory (#194)
|
|
||||||
|
|
||||||
Using a LDAP directory to authenticate to your Funkwhale instance
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Funkwhale now support LDAP as an authentication source: you can configure
|
|
||||||
your instance to delegate login to a LDAP directory, which is especially
|
|
||||||
useful when you have an existing directory and don't want to manage users
|
|
||||||
manually.
|
|
||||||
|
|
||||||
You can use this authentication backend side by side with the classic one.
|
|
||||||
|
|
||||||
Have a look at https://docs.funkwhale.audio/installation/ldap.html
|
|
||||||
for detailed instructions on how to set this up.
|
|
|
@ -1 +0,0 @@
|
||||||
- Fixed splitted album when importing from federation (#346)
|
|
|
@ -1,128 +0,0 @@
|
||||||
Simplified and less error-prone nginx setup (#358)
|
|
||||||
|
|
||||||
|
|
||||||
Simplified nginx setup [Docker: Manual action required]
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
We've received a lot of user feedback regarding our installation process,
|
|
||||||
and it seems the proxy part is the one which is the most confusing and difficult.
|
|
||||||
Unfortunately, this is also the one where errors and mistakes can completely break
|
|
||||||
the application.
|
|
||||||
|
|
||||||
To make things easier for everyone, we now offer a simplified deployment
|
|
||||||
process for the reverse proxy part. This will make upgrade of the proxy configuration
|
|
||||||
significantly easier on docker deployments.
|
|
||||||
|
|
||||||
On non-docker instances, you have nothing to do.
|
|
||||||
|
|
||||||
If you have a dockerized instance, here is the upgrade path.
|
|
||||||
|
|
||||||
First, tweak your .env file::
|
|
||||||
|
|
||||||
# remove the FUNKWHALE_URL variable
|
|
||||||
# and add the next variables
|
|
||||||
FUNKWHALE_HOSTNAME=yourdomain.funkwhale
|
|
||||||
FUNKWHALE_PROTOCOL=https
|
|
||||||
|
|
||||||
# add the following variable, matching the path your app is deployed
|
|
||||||
# leaving the default should work fine if you deployed using the same
|
|
||||||
# paths as the documentation
|
|
||||||
FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/front/dist
|
|
||||||
|
|
||||||
Then, add the following block at the end of your docker-compose.yml file::
|
|
||||||
|
|
||||||
# existing services
|
|
||||||
api:
|
|
||||||
...
|
|
||||||
celeryworker:
|
|
||||||
...
|
|
||||||
|
|
||||||
# new service
|
|
||||||
nginx:
|
|
||||||
image: nginx
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
# Override those variables in your .env file if needed
|
|
||||||
- "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-30M}"
|
|
||||||
volumes:
|
|
||||||
- "./nginx/funkwhale.template:/etc/nginx/conf.d/funkwhale.template:ro"
|
|
||||||
- "./nginx/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro"
|
|
||||||
- "${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:ro"
|
|
||||||
- "${MEDIA_ROOT}:${MEDIA_ROOT}:ro"
|
|
||||||
- "${STATIC_ROOT}:${STATIC_ROOT}:ro"
|
|
||||||
- "${FUNKWHALE_FRONTEND_PATH}:/frontend:ro"
|
|
||||||
ports:
|
|
||||||
# override those variables in your .env file if needed
|
|
||||||
- "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80"
|
|
||||||
command: >
|
|
||||||
sh -c "envsubst \"`env | awk -F = '{printf \" $$%s\", $$1}'`\"
|
|
||||||
< /etc/nginx/conf.d/funkwhale.template
|
|
||||||
> /etc/nginx/conf.d/default.conf
|
|
||||||
&& cat /etc/nginx/conf.d/default.conf
|
|
||||||
&& nginx -g 'daemon off;'"
|
|
||||||
links:
|
|
||||||
- api
|
|
||||||
|
|
||||||
By doing that, you'll enable a dockerized nginx that will automatically be
|
|
||||||
configured to serve your Funkwhale instance.
|
|
||||||
|
|
||||||
Download the required configuration files for the nginx container:
|
|
||||||
|
|
||||||
.. parsed-literal::
|
|
||||||
|
|
||||||
cd /srv/funkwhale
|
|
||||||
mkdir nginx
|
|
||||||
curl -L -o nginx/funkwhale.template "https://code.eliotberriot.com/funkwhale/funkwhale/raw/|version|/deploy/docker.nginx.template"
|
|
||||||
curl -L -o nginx/funkwhale_proxy.conf "https://code.eliotberriot.com/funkwhale/funkwhale/raw/|version|/deploy/funkwhale_proxy.conf"
|
|
||||||
|
|
||||||
Update the funkwhale.conf configuration of your server's reverse-proxy::
|
|
||||||
|
|
||||||
# the file should match something like that, upgrade all variables
|
|
||||||
# between ${} to match the ones in your .env file,
|
|
||||||
# and your SSL configuration if you're not using let's encrypt
|
|
||||||
# The important thing is that you only have a single location block
|
|
||||||
# that proxies everything to your dockerized nginx.
|
|
||||||
|
|
||||||
sudo nano /etc/nginx/sites-enabled/funkwhale.conf
|
|
||||||
upstream fw {
|
|
||||||
# depending on your setup, you may want to update this
|
|
||||||
server ${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT};
|
|
||||||
}
|
|
||||||
map $http_upgrade $connection_upgrade {
|
|
||||||
default upgrade;
|
|
||||||
'' close;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
listen [::]:80;
|
|
||||||
server_name ${FUNKWHALE_HOSTNAME};
|
|
||||||
location / { return 301 https://$host$request_uri; }
|
|
||||||
}
|
|
||||||
server {
|
|
||||||
listen 443 ssl;
|
|
||||||
listen [::]:443 ssl;
|
|
||||||
server_name ${FUNKWHALE_HOSTNAME};
|
|
||||||
|
|
||||||
# TLS
|
|
||||||
ssl_protocols TLSv1.2;
|
|
||||||
ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
|
|
||||||
ssl_prefer_server_ciphers on;
|
|
||||||
ssl_session_cache shared:SSL:10m;
|
|
||||||
ssl_certificate /etc/letsencrypt/live/${FUNKWHALE_HOSTNAME}/fullchain.pem;
|
|
||||||
ssl_certificate_key /etc/letsencrypt/live/${FUNKWHALE_HOSTNAME}/privkey.pem;
|
|
||||||
|
|
||||||
# HSTS
|
|
||||||
add_header Strict-Transport-Security "max-age=31536000";
|
|
||||||
|
|
||||||
location / {
|
|
||||||
include /etc/nginx/funkwhale_proxy.conf;
|
|
||||||
proxy_pass http://fw/;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Check that your configuration is valid then reload:
|
|
||||||
|
|
||||||
sudo nginx -t
|
|
||||||
sudo systemctl reload nginx
|
|
|
@ -1 +0,0 @@
|
||||||
Document that server clock needs to be synced via NTP to avoid federation issues (#380)
|
|
|
@ -1 +0,0 @@
|
||||||
Move setting link from profile page to the sidebar (#406)
|
|
|
@ -1 +0,0 @@
|
||||||
Add sign up link in the sidebar (#408)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed wrong title in PlayButton (#435)
|
|
|
@ -1 +0,0 @@
|
||||||
Updated wrong icon and copy in play button dropdown (#436)
|
|
|
@ -1,9 +0,0 @@
|
||||||
- Per user libraries (#463, also fixes #160 and #147)
|
|
||||||
|
|
||||||
Per user libraries
|
|
||||||
^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
This release contains a big change in music management. This has a lot of impact
|
|
||||||
on how Funkwhale behaves, and you should have a look at
|
|
||||||
https://docs.funkwhale.audio/upgrading/0.17.html for information
|
|
||||||
about what changed and how to migrate.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Do not restart current song when rordering queue, deleting tracks from queue or
|
|
||||||
adding tracks to queue (#464)
|
|
|
@ -1 +0,0 @@
|
||||||
Add configuration option to set Musicbrainz hostname
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed toggle mute in volume bar does not restore previous volume level (#514)
|
|
|
@ -1 +0,0 @@
|
||||||
Fix broken icons in playlist editor (#515)
|
|
|
@ -1 +0,0 @@
|
||||||
Remove transparency on artist page button (#517)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed wrong env file URL and display bugs in deployment documentation (#520)
|
|
|
@ -1 +0,0 @@
|
||||||
Set sane width default for ui cards and center play button (#530)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed wrong URLs for docker / nginx files in documentation (#537)
|
|
|
@ -1 +0,0 @@
|
||||||
Ensure from_activity field is not required in django's admin (#546)
|
|
|
@ -1 +0,0 @@
|
||||||
Technical documentation of music federation (#549)
|
|
|
@ -1 +0,0 @@
|
||||||
Added a library widget to display libraries associated with a track, album and artist (#551)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed a few untranslated strings (#559)
|
|
|
@ -1 +0,0 @@
|
||||||
Added a merge request template and more documentation about the changelog
|
|
Loading…
Reference in New Issue