diff --git a/changes/changelog.d/272.feature b/changes/changelog.d/272.feature index 8a14193704f2ca1b835fc674967036a7a336e6d3..58d4f758467d7f091089a02246db9af9a64f2b4f 100644 --- a/changes/changelog.d/272.feature +++ b/changes/changelog.d/272.feature @@ -1,13 +1 @@ Audio transcoding is back! (#272) - - -Audio transcoding is back! --------------------------- - -After removal of our first, buggy transcoding implementation, we're proud to announce -that this feature is back. It is enabled by default, and can be configured/disabled -in your instance settings! - -This feature works in the browser, with federated/non-federated tracks and using Subsonic clients. -Transcoded tracks are generated on the fly, and cached for a configurable amount of time, -to reduce the load on the server. diff --git a/changes/changelog.d/308.feature b/changes/changelog.d/308.feature index 7e968ef461212ded9359a4ecf6370ed9520f4414..7771f40e896e1caf7ed908da80bdcbc4b287e12b 100644 --- a/changes/changelog.d/308.feature +++ b/changes/changelog.d/308.feature @@ -1,25 +1 @@ Store licensing and copyright information from file metadata, if available (#308) - -Licensing and copyright information -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Funkwhale is now able to parse copyright and license data from file and store -this information. Apart from displaying it on each track detail page, -no additional behaviour is currently implemented to use this new data, but this -will change in future releases. - -License and copyright data is also broadcasted over federation. - -License matching is done on the content of the ``License`` tag in the files, -with a fallback on the ``Copyright`` tag. - -Funkwhale will successfully extract licensing data for the following licenses: - -- Creative Commons 0 (Public Domain) -- Creative Commons 1.0 (All declinations) -- Creative Commons 2.0 (All declinations) -- Creative Commons 2.5 (All declinations and countries) -- Creative Commons 3.0 (All declinations and countries) -- Creative Commons 4.0 (All declinations) - -Support for other licenses such as Art Libre or WTFPL will be added in future releases. diff --git a/changes/changelog.d/578.feature b/changes/changelog.d/578.feature index 3fff0bd09a7b364d3b7069a3e18cacf89dfc32e1..3d98dd71b05464d9e5513d89825985551db3d53a 100644 --- a/changes/changelog.d/578.feature +++ b/changes/changelog.d/578.feature @@ -1,48 +1 @@ Allow embedding of albums and tracks available in public libraries via an <iframe> (#578) - -Iframe widget to embed public tracks and albums [manual action required] -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Funkwhale now support embedding a lightweight audio player on external websites -for album and tracks that are available in public libraries. Important pages, -such as artist, album and track pages also include OpenGraph tags that will -enable previews on compatible apps (like sharing a Funkwhale track link on Mastodon -or Twitter). - -To achieve that, we had to tweak the way Funkwhale front-end is served. You'll have -to modify your nginx configuration when upgrading to keep your instance working. - -**On docker setups**, edit your ``/srv/funkwhale/nginx/funkwhale.template`` and replace -the ``location /api/`` and `location /` blocks by the following snippets:: - - location / { - include /etc/nginx/funkwhale_proxy.conf; - # this is needed if you have file import via upload enabled - client_max_body_size ${NGINX_MAX_BODY_SIZE}; - proxy_pass http://funkwhale-api/; - } - - location /front/ { - alias /frontend/; - } - -The change of configuration will be picked when restarting your nginx container. - -**On non-docker setups**, edit your ``/etc/nginx/sites-available/funkwhale.conf`` file, -and replace the ``location /api/`` and `location /` blocks by the following snippets:: - - - location / { - include /etc/nginx/funkwhale_proxy.conf; - # this is needed if you have file import via upload enabled - client_max_body_size ${NGINX_MAX_BODY_SIZE}; - proxy_pass http://funkwhale-api/; - } - - location /front/ { - alias ${FUNKWHALE_FRONTEND_PATH}/; - } - -Replace ``${FUNKWHALE_FRONTEND_PATH}`` by the corresponding variable from your .env file, -which should be ``/srv/funkwhale/front/dist`` by default, then reload your nginx process with -``sudo systemctl reload nginx``. diff --git a/changes/changelog.d/626.enhancement b/changes/changelog.d/626.enhancement index 8f2f20100dc9507dcb77188b1f2d0cd608f78c26..cacf4f81ab4685f210f2e81967b02b40fcf4a0f0 100644 --- a/changes/changelog.d/626.enhancement +++ b/changes/changelog.d/626.enhancement @@ -1,10 +1 @@ Load env file in config/.env automatically to avoid sourcing it by hand (#626) - -Automatically load .env file -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -On non-docker deployments, earlier versions required you to source -the config/.env file before launching any Funkwhale command, with ``export $(cat config/.env | grep -v ^# | xargs)`` -This led to more complex and error prode deployment / setup. - -This is not the case anymore, and Funkwhale will automatically load this file if it's available. diff --git a/changes/changelog.d/front-performance.enhancement b/changes/changelog.d/front-performance.enhancement index 03ca0e47861919cf8f8980c7e24481cc0f86da7f..f3105932fe3251ba617bcfeecdae846e99441fe5 100644 --- a/changes/changelog.d/front-performance.enhancement +++ b/changes/changelog.d/front-performance.enhancement @@ -1,51 +1,2 @@ Improved front-end performance by stripping unused dependencies, reducing bundle size and enabling gzip compression - -Enable gzip compression [manual action suggested] -------------------------------------------------- - -Gzip compression will be enabled on new instances by default -and will reduce the amount of bandwidth consumed by your instance. - -If you with to benefit from gzip compression on your instance, -edit your reverse proxy virtualhost file (located at ``/etc/nginx/sites-available/funkwhale.conf``) and add the following snippet -in the server block, then reload your nginx server:: - - server { - # ... exiting configuration - - # compression settings - gzip on; - gzip_comp_level 5; - gzip_min_length 256; - gzip_proxied any; - gzip_vary on; - - gzip_types - application/atom+xml - application/javascript - application/json - application/ld+json - application/activity+json - application/manifest+json - application/rss+xml - application/vnd.geo+json - application/vnd.ms-fontobject - application/x-font-ttf - application/x-web-app-manifest+json - application/xhtml+xml - application/xml - font/opentype - image/bmp - image/svg+xml - image/x-icon - text/cache-manifest - text/css - text/plain - text/vcard - text/vnd.rim.location.xloc - text/vtt - text/x-component - text/x-cross-domain-policy; - # end of compression settings - } diff --git a/changes/changelog.d/moderation-tools.feature b/changes/changelog.d/moderation-tools.feature index 4b3e670caad95dbeb6c82a2ecefc1f44a2234534..acc10726e9cff662e31d744a52e8604d390c12e5 100644 --- a/changes/changelog.d/moderation-tools.feature +++ b/changes/changelog.d/moderation-tools.feature @@ -1,20 +1,2 @@ First set of instance level moderation tools (#580, !521) - - -Instance-level moderation tools -------------------------------- - -This release includes a first set of moderation tools that will give more control -to admins about the way their instance federate with other instance and accounts on the network. -Using these tools, it's now possible to: - -- Browse known accounts and domains, and associated data (storage size, software version, etc.) -- Purge data belonging to given accounts and domains -- Block or partially restrict interactions with any account or domain - -All those features are usable using a brand new "moderation" permission, meaning -you can appoints one or nultiple moderators to help with this task. - -I'd like to thank all Mastodon contributors, because some of the these tools are heavily -inspired from what's being done in Mastodon. Thank you so much! diff --git a/changes/notes.rst b/changes/notes.rst new file mode 100644 index 0000000000000000000000000000000000000000..2b4e847eb596ee717549f34491424bb2c2f34808 --- /dev/null +++ b/changes/notes.rst @@ -0,0 +1,167 @@ +Next release notes +================== + +.. note:: + + Those release notes refer to the current development branch and are reset + after each release. + +Audio transcoding is back! +-------------------------- + +After removal of our first, buggy transcoding implementation, we're proud to announce +that this feature is back. It is enabled by default, and can be configured/disabled +in your instance settings! + +This feature works in the browser, with federated/non-federated tracks and using Subsonic clients. +Transcoded tracks are generated on the fly, and cached for a configurable amount of time, +to reduce the load on the server. + + +Automatically load .env file +---------------------------- + +On non-docker deployments, earlier versions required you to source +the config/.env file before launching any Funkwhale command, with ``export $(cat config/.env | grep -v ^# | xargs)`` +This led to more complex and error prode deployment / setup. + +This is not the case anymore, and Funkwhale will automatically load this file if it's available. + +Licensing and copyright information +----------------------------------- + +Funkwhale is now able to parse copyright and license data from file and store +this information. Apart from displaying it on each track detail page, +no additional behaviour is currently implemented to use this new data, but this +will change in future releases. + +License and copyright data is also broadcasted over federation. + +License matching is done on the content of the ``License`` tag in the files, +with a fallback on the ``Copyright`` tag. + +Funkwhale will successfully extract licensing data for the following licenses: + +- Creative Commons 0 (Public Domain) +- Creative Commons 1.0 (All declinations) +- Creative Commons 2.0 (All declinations) +- Creative Commons 2.5 (All declinations and countries) +- Creative Commons 3.0 (All declinations and countries) +- Creative Commons 4.0 (All declinations) + +Support for other licenses such as Art Libre or WTFPL will be added in future releases. + + +Enable gzip compression [manual action suggested] +------------------------------------------------- + +Gzip compression will be enabled on new instances by default +and will reduce the amount of bandwidth consumed by your instance. + +If you with to benefit from gzip compression on your instance, +edit your reverse proxy virtualhost file (located at ``/etc/nginx/sites-available/funkwhale.conf``) and add the following snippet +in the server block, then reload your nginx server:: + + server { + # ... exiting configuration + + # compression settings + gzip on; + gzip_comp_level 5; + gzip_min_length 256; + gzip_proxied any; + gzip_vary on; + + gzip_types + application/atom+xml + application/javascript + application/json + application/ld+json + application/activity+json + application/manifest+json + application/rss+xml + application/vnd.geo+json + application/vnd.ms-fontobject + application/x-font-ttf + application/x-web-app-manifest+json + application/xhtml+xml + application/xml + font/opentype + image/bmp + image/svg+xml + image/x-icon + text/cache-manifest + text/css + text/plain + text/vcard + text/vnd.rim.location.xloc + text/vtt + text/x-component + text/x-cross-domain-policy; + # end of compression settings + } + +Instance-level moderation tools +------------------------------- + +This release includes a first set of moderation tools that will give more control +to admins about the way their instance federate with other instance and accounts on the network. +Using these tools, it's now possible to: + +- Browse known accounts and domains, and associated data (storage size, software version, etc.) +- Purge data belonging to given accounts and domains +- Block or partially restrict interactions with any account or domain + +All those features are usable using a brand new "moderation" permission, meaning +you can appoints one or nultiple moderators to help with this task. + +I'd like to thank all Mastodon contributors, because some of the these tools are heavily +inspired from what's being done in Mastodon. Thank you so much! + + +Iframe widget to embed public tracks and albums [manual action required] +------------------------------------------------------------------------ + +Funkwhale now support embedding a lightweight audio player on external websites +for album and tracks that are available in public libraries. Important pages, +such as artist, album and track pages also include OpenGraph tags that will +enable previews on compatible apps (like sharing a Funkwhale track link on Mastodon +or Twitter). + +To achieve that, we had to tweak the way Funkwhale front-end is served. You'll have +to modify your nginx configuration when upgrading to keep your instance working. + +**On docker setups**, edit your ``/srv/funkwhale/nginx/funkwhale.template`` and replace +the ``location /api/`` and `location /` blocks by the following snippets:: + + location / { + include /etc/nginx/funkwhale_proxy.conf; + # this is needed if you have file import via upload enabled + client_max_body_size ${NGINX_MAX_BODY_SIZE}; + proxy_pass http://funkwhale-api/; + } + + location /front/ { + alias /frontend/; + } + +The change of configuration will be picked when restarting your nginx container. + +**On non-docker setups**, edit your ``/etc/nginx/sites-available/funkwhale.conf`` file, +and replace the ``location /api/`` and `location /` blocks by the following snippets:: + + + location / { + include /etc/nginx/funkwhale_proxy.conf; + # this is needed if you have file import via upload enabled + client_max_body_size ${NGINX_MAX_BODY_SIZE}; + proxy_pass http://funkwhale-api/; + } + + location /front/ { + alias ${FUNKWHALE_FRONTEND_PATH}/; + } + +Replace ``${FUNKWHALE_FRONTEND_PATH}`` by the corresponding variable from your .env file, +which should be ``/srv/funkwhale/front/dist`` by default, then reload your nginx process with +``sudo systemctl reload nginx``. diff --git a/docs/installation/index.rst b/docs/installation/index.rst index 0b530c096aed1debe47a1840568c8b7fe2949dc7..6ad60022b924733449777c3e776528612dda2950 100644 --- a/docs/installation/index.rst +++ b/docs/installation/index.rst @@ -80,7 +80,7 @@ Funkwhale packages are available for the following platforms: Running Funkwhale on the develop branch --------------------------------------- -Traditional deployments are done using specific releases. However, you +Traditional deployments are done using tagged releases. However, you may want to benefits from the latest change available, or the help detect bugs before they are included in actual releases. @@ -97,6 +97,9 @@ You simply need to use ``export FUNKWHALE_VERSION=develop`` in the installation and upgrade process instead of a real version number, as we build artifacts on the development branch the same way we do for releases. +It's also recommended to check out the `develop release notes <https://dev.funkwhale.audio/funkwhale/funkwhale/blob/develop/changes/notes.rst>_` before upgrading, +since you may have to apply manual actions for your instance to continue to work. Such actions are labelled with ``[manual action required]`` in the releases notes. + .. _frontend-setup: Frontend setup