2017-12-13 22:36:10 +00:00
|
|
|
|
Changelog
|
|
|
|
|
=========
|
|
|
|
|
|
2018-04-28 11:05:55 +00:00
|
|
|
|
You can subscribe to release announcements by:
|
|
|
|
|
|
|
|
|
|
- Following `funkwhale@mastodon.eliotberriot.com <https://mastodon.eliotberriot.com/@funkwhale>`_ on Mastodon
|
|
|
|
|
- Subscribing to the following Atom feed: https://code.eliotberriot.com/funkwhale/funkwhale/commits/develop?format=atom&search=tag
|
|
|
|
|
|
|
|
|
|
This changelog is viewable on the web at https://docs.funkwhale.audio/changelog.html.
|
|
|
|
|
|
2018-02-27 18:04:50 +00:00
|
|
|
|
.. towncrier
|
2018-02-27 16:51:27 +00:00
|
|
|
|
|
2018-05-06 14:24:12 +00:00
|
|
|
|
0.11 (unreleased)
|
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
|
|
Upgrade instructions are available at https://docs.funkwhale.audio/upgrading.html
|
|
|
|
|
|
|
|
|
|
Special thanks for this release go to @renon:matrix.org (@Hazmo on Gitlab)
|
|
|
|
|
for bringing Apache2 support to Funkwhale and contributing on other issues.
|
|
|
|
|
Thank you!
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Funkwhale now works behind an Apache2 reverse proxy (!165)
|
|
|
|
|
check out the brand new documentation at https://docs.funkwhale.audio/installation/index.html#apache2
|
|
|
|
|
if you want to try it!
|
|
|
|
|
- Users can now request password reset by email, assuming a SMTP server was
|
|
|
|
|
correctly configured (#187)
|
|
|
|
|
|
|
|
|
|
Enhancements:
|
|
|
|
|
|
|
|
|
|
- Added a fix_track_files command to run checks and fixes against library
|
|
|
|
|
(#183)
|
|
|
|
|
- Avoid fetching Actor object on every request authentication
|
|
|
|
|
- Can now relaunch errored jobs and batches (#176)
|
|
|
|
|
- List pending requests by default, added a status filter for requests (#109)
|
|
|
|
|
- More structured menus in sidebar, added labels with notifications
|
|
|
|
|
- Sample virtual-host file for Apache2 reverse-proxy (!165)
|
|
|
|
|
- Store high-level settings (such as federation or auth-related ones) in
|
|
|
|
|
database (#186)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Ensure in place imported files get a proper mimetype (#183)
|
|
|
|
|
- Federation cache suppression is now simpler and also deletes orphaned files
|
|
|
|
|
(#189)
|
|
|
|
|
- Fixed small UI glitches/bugs in federation tabs (#184)
|
|
|
|
|
- X-sendfile not working with in place import (#182)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation:
|
|
|
|
|
|
|
|
|
|
- Added a documentation area for third-party projects (#180)
|
|
|
|
|
- Added documentation for optimizing Funkwhale and reduce its memory footprint.
|
|
|
|
|
- Document that the database should use an utf-8 encoding (#185)
|
|
|
|
|
- Foundations for API documentation with Swagger (#178)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Database storage for high-level settings
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
Due to the work done in #186, the following environment variables have been
|
|
|
|
|
deprecated:
|
|
|
|
|
|
|
|
|
|
- FEDERATION_ENABLED
|
|
|
|
|
- FEDERATION_COLLECTION_PAGE_SIZE
|
|
|
|
|
- FEDERATION_MUSIC_NEEDS_APPROVAL
|
|
|
|
|
- FEDERATION_ACTOR_FETCH_DELAY
|
|
|
|
|
- PLAYLISTS_MAX_TRACKS
|
|
|
|
|
- API_AUTHENTICATION_REQUIRED
|
|
|
|
|
|
|
|
|
|
Configuration for this settings has been moved to database, as it will provide
|
|
|
|
|
a better user-experience, by allowing you to edit these values on-the-fly,
|
|
|
|
|
without restarting Funkwhale processes.
|
|
|
|
|
|
|
|
|
|
You can leave those environment variables in your .env file for now, as the
|
|
|
|
|
values will be used to populate the database entries. We'll make a proper
|
|
|
|
|
announcement when the variables won't be used anymore.
|
|
|
|
|
|
|
|
|
|
Please browse https://docs.funkwhale.audio/configuration.html#instance-settings
|
|
|
|
|
for more information about instance configuration using the web interface.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
System emails
|
|
|
|
|
^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
Starting from this release, Funkwhale will send two types
|
|
|
|
|
of emails:
|
|
|
|
|
|
|
|
|
|
- Email confirmation emails, to ensure a user's email is valid
|
|
|
|
|
- Password reset emails, enabling user to reset their password without an admin's intervention
|
|
|
|
|
|
|
|
|
|
Email sending is disabled by default, as it requires additional configuration.
|
|
|
|
|
In this mode, emails are simply outputed on stdout.
|
|
|
|
|
|
|
|
|
|
If you want to actually send those emails to your users, you should edit your
|
|
|
|
|
.env file and tweak the EMAIL_CONFIG variable. See :ref:`setting-EMAIL_CONFIG`
|
|
|
|
|
for more details.
|
|
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
|
|
As a result of these changes, the DJANGO_EMAIL_BACKEND variable,
|
|
|
|
|
which was not documented, has no effect anymore. You can safely remove it from
|
|
|
|
|
your .env file if it is set.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Proxy headers for non-docker deployments
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
For non-docker deployments, add ``--proxy-headers`` at the end of the ``daphne``
|
|
|
|
|
command in :file:`/etc/systemd/system/funkwhale-server.service`.
|
|
|
|
|
|
|
|
|
|
This will ensure the application receive the correct IP address from the client
|
|
|
|
|
and not the proxy's one.
|
|
|
|
|
|
|
|
|
|
|
2018-04-23 17:44:38 +00:00
|
|
|
|
0.10 (2018-04-23)
|
2018-04-21 17:30:55 +00:00
|
|
|
|
-----------------
|
|
|
|
|
|
2018-04-23 17:44:38 +00:00
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Can now import files in-place from the CLI importer (#155)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Enhancements:
|
|
|
|
|
|
|
|
|
|
- Avoid downloading audio files multiple times from remote libraries (#163)
|
|
|
|
|
- Better file import performance and error handling (#144)
|
|
|
|
|
- Import job and batch API and front-end have been improved with better
|
|
|
|
|
performance, pagination and additional filters (#171)
|
|
|
|
|
- Increased max_length on TrackFile.source, this will help when importing files
|
|
|
|
|
with a really long path (#142)
|
|
|
|
|
- Player is back in Queue tab (#150)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Fail graciously when AP representation includes a null_value for mediaType
|
|
|
|
|
- Fix sidebar tabs not showing under small resolution under Chrome (#173)
|
|
|
|
|
- Fixed broken login due to badly configured Axios (#172)
|
|
|
|
|
- Fixed broken playlist modal after login (#155)
|
|
|
|
|
- Fixed queue reorder or track deletion restarting currently playing track
|
|
|
|
|
(#151)
|
|
|
|
|
- Radio will now append new track if you delete the last track in queue (#145)
|
|
|
|
|
- Reset all sensitive front-end data on logout (#124)
|
|
|
|
|
- Typos/not showing text due to i18n work (#175)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation:
|
|
|
|
|
|
|
|
|
|
- Better documentation for hardware requirements and memory usage (#165)
|
|
|
|
|
|
2018-04-21 17:30:55 +00:00
|
|
|
|
|
|
|
|
|
In-place import
|
|
|
|
|
^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
This release includes in-place imports for the CLI import. This means you can
|
|
|
|
|
load gigabytes of music into funkwhale without worrying about about Funkwhale
|
|
|
|
|
copying those music files in its internal storage and eating your disk space.
|
|
|
|
|
|
2018-04-23 17:44:38 +00:00
|
|
|
|
`This new feature is documented here <https://docs.funkwhale.audio/importing-music.html#in-place-import>`_
|
|
|
|
|
and require additional configuration to ensure funkwhale and your webserver can
|
|
|
|
|
serve those files properly.
|
2018-04-21 17:30:55 +00:00
|
|
|
|
|
|
|
|
|
**Non-docker users:**
|
|
|
|
|
|
|
|
|
|
Assuming your music is stored in ``/srv/funkwhale/data/music``, add the following
|
|
|
|
|
block to your nginx configuration::
|
|
|
|
|
|
|
|
|
|
location /_protected/music {
|
|
|
|
|
internal;
|
|
|
|
|
alias /srv/funkwhale/data/music;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
And the following to your .env file::
|
|
|
|
|
|
|
|
|
|
MUSIC_DIRECTORY_PATH=/srv/funkwhale/data/music
|
|
|
|
|
|
|
|
|
|
**Docker users:**
|
|
|
|
|
|
|
|
|
|
Assuming your music is stored in ``/srv/funkwhale/data/music``, add the following
|
|
|
|
|
block to your nginx configuration::
|
|
|
|
|
|
|
|
|
|
location /_protected/music {
|
|
|
|
|
internal;
|
|
|
|
|
alias /srv/funkwhale/data/music;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Assuming you have the following volume directive in your ``docker-compose.yml``
|
|
|
|
|
(it's the default): ``/srv/funkwhale/data/music:/music:ro``, then add
|
|
|
|
|
the following to your .env file::
|
|
|
|
|
|
2018-04-23 17:44:38 +00:00
|
|
|
|
# this is the path in the container
|
2018-04-21 17:30:55 +00:00
|
|
|
|
MUSIC_DIRECTORY_PATH=/music
|
2018-04-23 17:44:38 +00:00
|
|
|
|
# this is the path on the host
|
2018-04-21 17:30:55 +00:00
|
|
|
|
MUSIC_DIRECTORY_SERVE_PATH=/srv/funkwhale/data/music
|
|
|
|
|
|
|
|
|
|
|
2018-04-17 21:20:32 +00:00
|
|
|
|
0.9.1 (2018-04-17)
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Allow null values for musicbrainz_id in Audio ActivityPub representation
|
|
|
|
|
- Fixed broken permission check on library scanning and too aggressive page
|
|
|
|
|
validation
|
|
|
|
|
|
|
|
|
|
|
2018-04-17 19:26:58 +00:00
|
|
|
|
0.9 (2018-04-17)
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Add internationalization support (#5)
|
|
|
|
|
- Can now follow and import music from remote libraries (#136, #137)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Enhancements:
|
|
|
|
|
|
|
|
|
|
- Added a i18n-extract yarn script to extract strings to PO files (#162)
|
|
|
|
|
- User admin now includes signup and last login dates (#148)
|
|
|
|
|
- We now use a proper user agent including instance version and url during
|
|
|
|
|
outgoing requests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Federation is here!
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
This is for real this time, and includes:
|
|
|
|
|
|
|
|
|
|
- Following other Funkwhale libraries
|
|
|
|
|
- Importing tracks from remote libraries (tracks are hotlinked, and only cached for a short amount of time)
|
|
|
|
|
- Searching accross federated catalogs
|
|
|
|
|
|
|
|
|
|
Note that by default, federation is opt-in, on a per-instance basis:
|
|
|
|
|
instances will request access to your catalog, and you can accept or refuse
|
|
|
|
|
those requests. You can also revoke the access at any time.
|
|
|
|
|
|
|
|
|
|
Documentation was updated with relevant instructions to use and benefit
|
|
|
|
|
from this new feature: https://docs.funkwhale.audio/federation.html
|
|
|
|
|
|
|
|
|
|
Preparing internationalization
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
Funkwhale's front-end as always been english-only, and this is a barrier
|
|
|
|
|
to new users. The work make Funkwhale's interface translatable was started
|
|
|
|
|
in this release by Baptiste. Although nothing is translated yet,
|
|
|
|
|
this release includes behind the stage changes that will make it possible in
|
|
|
|
|
the near future.
|
|
|
|
|
|
|
|
|
|
Many thank to Baptiste for the hard work and for figuring out a proper solution
|
|
|
|
|
to this difficult problem.
|
|
|
|
|
|
|
|
|
|
Upgrade path
|
|
|
|
|
^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
In addition to the usual instructions from
|
|
|
|
|
https://docs.funkwhale.audio/upgrading.html, non-docker users will have
|
|
|
|
|
to setup an additional systemd unit file for recurrent tasks.
|
|
|
|
|
|
|
|
|
|
This was forgotten in the deployment documentation, but recurrent tasks,
|
|
|
|
|
managed by the celery beat process, will be needed more and more in subsequent
|
|
|
|
|
releases. Right now, we'll be using to clear the cache for federated music files
|
|
|
|
|
and keep disk usage to a minimum.
|
|
|
|
|
|
|
|
|
|
In the future, they will also be needed to refetch music metadata or federated
|
|
|
|
|
information periodically.
|
|
|
|
|
|
|
|
|
|
Celery beat can be enabled easily::
|
|
|
|
|
|
|
|
|
|
curl -L -o "/etc/systemd/system/funkwhale-beat.service" "https://code.eliotberriot.com/funkwhale/funkwhale/raw/develop/deploy/funkwhale-beat.service"
|
|
|
|
|
# Also edit /etc/systemd/system/funkwhale.target
|
|
|
|
|
# and ensure the Wants= line contains the following:
|
|
|
|
|
# Wants=funkwhale-server.service funkwhale-worker.service funkwhale-beat.service
|
|
|
|
|
nano /etc/systemd/system/funkwhale.target
|
|
|
|
|
# reload configuration
|
|
|
|
|
systemctl daemon-reload
|
|
|
|
|
|
|
|
|
|
Docker users already have celerybeat enabled.
|
|
|
|
|
|
|
|
|
|
|
2018-04-02 18:04:38 +00:00
|
|
|
|
0.8 (2018-04-02)
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Add a detail page for radios (#64)
|
|
|
|
|
- Implemented page title binding (#1)
|
|
|
|
|
- Previous Track button restart playback after 3 seconds (#146)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Enhancements:
|
|
|
|
|
|
|
|
|
|
- Added credits to Francis Gading for the logotype (#101)
|
|
|
|
|
- API endpoint for fetching instance activity and updated timeline to use this
|
|
|
|
|
new endpoint (#141)
|
|
|
|
|
- Better error messages in case of missing environment variables (#140)
|
|
|
|
|
- Implemented a @test@yourfunkwhaledomain bot to ensure federation works
|
|
|
|
|
properly. Send it "/ping" and it will answer back :)
|
|
|
|
|
- Queue shuffle now apply only to tracks after the current one (#97)
|
|
|
|
|
- Removed player from queue tab and consistently show current track in queue
|
|
|
|
|
(#131)
|
|
|
|
|
- We now restrict some usernames from being used during signup (#139)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Better error handling during file import (#120)
|
|
|
|
|
- Better handling of utf-8 filenames during file import (#138)
|
|
|
|
|
- Converted favicon from .ico to .png (#130)
|
|
|
|
|
- Upgraded to Python 3.6 to fix weird but harmless weakref error on django task
|
|
|
|
|
(#121)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation:
|
|
|
|
|
|
|
|
|
|
- Documented the upgrade process (#127)
|
|
|
|
|
|
2018-03-29 21:38:33 +00:00
|
|
|
|
|
|
|
|
|
Preparing for federation
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
2018-04-02 18:04:38 +00:00
|
|
|
|
Federation of music libraries is one of the most asked feature.
|
|
|
|
|
While there is still a lot of work to do, this version includes
|
|
|
|
|
the foundation that will enable funkwhale servers to communicate
|
|
|
|
|
between each others, and with other federated software, such as
|
|
|
|
|
Mastodon.
|
|
|
|
|
|
|
|
|
|
Funkwhale will use ActivityPub as it's federation protocol.
|
|
|
|
|
|
2018-03-29 21:38:33 +00:00
|
|
|
|
In order to prepare for federation (see #136 and #137), new API endpoints
|
|
|
|
|
have been added under /federation and /.well-known/webfinger.
|
|
|
|
|
|
|
|
|
|
For these endpoints to work, you will need to update your nginx configuration,
|
|
|
|
|
and add the following snippets::
|
|
|
|
|
|
|
|
|
|
location /federation/ {
|
|
|
|
|
include /etc/nginx/funkwhale_proxy.conf;
|
|
|
|
|
proxy_pass http://funkwhale-api/federation/;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
location /.well-known/webfinger {
|
|
|
|
|
include /etc/nginx/funkwhale_proxy.conf;
|
|
|
|
|
proxy_pass http://funkwhale-api/.well-known/webfinger;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
This will ensure federation endpoints will be reachable in the future.
|
|
|
|
|
You can of course skip this part if you know you will not federate your instance.
|
|
|
|
|
|
2018-04-17 19:26:58 +00:00
|
|
|
|
A new ``FEDERATION_ENABLED`` env var have also been added to control whether
|
2018-03-29 21:38:33 +00:00
|
|
|
|
federation is enabled or not on the application side. This settings defaults
|
2018-04-17 19:26:58 +00:00
|
|
|
|
to True, which should have no consequences at the moment, since actual
|
2018-03-29 21:38:33 +00:00
|
|
|
|
federation is not implemented and the only available endpoints are for
|
|
|
|
|
testing purposes.
|
|
|
|
|
|
|
|
|
|
Add ``FEDERATION_ENABLED=false`` to your .env file to disable federation
|
|
|
|
|
on the application side.
|
|
|
|
|
|
2018-04-17 19:26:58 +00:00
|
|
|
|
To test and troubleshoot federation, we've added a bot account. This bot is available at @test@yourinstancedomain,
|
2018-04-02 18:04:38 +00:00
|
|
|
|
and sending it "/ping", for example, via Mastodon, should trigger
|
|
|
|
|
a response.
|
|
|
|
|
|
2018-03-29 21:38:33 +00:00
|
|
|
|
|
|
|
|
|
|
2018-03-21 20:05:03 +00:00
|
|
|
|
0.7 (2018-03-21)
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Can now filter artists and albums with no listenable tracks (#114)
|
|
|
|
|
- Improve the style of the sidebar to make it easier to understand which tab is
|
|
|
|
|
selected (#118)
|
|
|
|
|
- On artist page, albums are not sorted by release date, if any (#116)
|
|
|
|
|
- Playlists are here \o/ :tada: (#3, #93, #94)
|
|
|
|
|
- Use django-cacheops to cache common ORM requests (#117)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Fixed broken import request admin (#115)
|
|
|
|
|
- Fixed forced redirection to login event with
|
|
|
|
|
API_AUTHENTICATION_REQUIRED=False (#119)
|
|
|
|
|
- Fixed position not being reseted properly when playing the same track
|
|
|
|
|
multiple times in a row
|
|
|
|
|
- Fixed synchronized start/stop radio buttons for all custom radios (#103)
|
|
|
|
|
- Fixed typo and missing icon on homepage (#96)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation:
|
|
|
|
|
|
|
|
|
|
- Up-to-date and complete development and contribution instructions in
|
|
|
|
|
README.rst (#123)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.6.1 (2018-03-06)
|
2018-03-06 20:56:01 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Can now skip acoustid on file import with the --no-acoustid flag (#111)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Added missing batch id in output during import (#112)
|
|
|
|
|
- Added some feedback on the play button (#100)
|
|
|
|
|
- Smarter pagination which takes a fixed size (#84)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Other:
|
|
|
|
|
|
|
|
|
|
- Completely removed django-cachalot from the codebase (#110). You can safely
|
|
|
|
|
remove the CACHALOT_ENABLED setting from your .env file
|
|
|
|
|
|
|
|
|
|
|
2018-03-04 14:16:35 +00:00
|
|
|
|
0.6 (2018-03-04)
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Basic activity stream for listening and favorites (#23)
|
|
|
|
|
- Switched to django-channels and daphne for serving HTTP and websocket (#34)
|
|
|
|
|
|
|
|
|
|
Upgrades notes
|
|
|
|
|
**************
|
|
|
|
|
|
|
|
|
|
This version contains breaking changes in the way funkwhale is deployed,
|
|
|
|
|
please read the notes carefully.
|
|
|
|
|
|
|
|
|
|
Instance timeline
|
|
|
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
A new "Activity" page is now available from the sidebar, where you can
|
|
|
|
|
browse your instance activity. At the moment, this includes other users
|
|
|
|
|
favorites and listening, but more activity types will be implemented in the
|
|
|
|
|
future.
|
|
|
|
|
|
|
|
|
|
Internally, we implemented those events by following the Activity Stream
|
|
|
|
|
specification, which will help us to be compatible with other networks
|
|
|
|
|
in the long-term.
|
|
|
|
|
|
|
|
|
|
A new settings page has been added to control the visibility of your activity.
|
|
|
|
|
By default, your activity will be browsable by anyone on your instance,
|
|
|
|
|
but you can switch to a full private mode where nothing is shared.
|
|
|
|
|
|
|
|
|
|
The setting form is available in your profile.
|
|
|
|
|
|
|
|
|
|
Switch from gunicorn to daphne
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
This release include an important change in the way we serve the HTTP API.
|
|
|
|
|
To prepare for new realtime features and enable websocket support in Funkwhale,
|
|
|
|
|
we are now using django-channels and daphne to serve HTTP and websocket traffic.
|
|
|
|
|
|
|
|
|
|
This replaces gunicorn and the switch should be easy assuming you
|
|
|
|
|
follow the upgrade process described bellow.
|
|
|
|
|
|
|
|
|
|
If you are using docker, please remove the command instruction inside the
|
|
|
|
|
api service, as the up-to-date command is now included directly in the image
|
|
|
|
|
as the default entry point:
|
|
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
|
|
api:
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
image: funkwhale/funkwhale:${FUNKWHALE_VERSION:-latest}
|
|
|
|
|
command: ./compose/django/gunicorn.sh # You can remove this line
|
|
|
|
|
|
|
|
|
|
On non docker setups, you'll have to update the [Service] block of your
|
|
|
|
|
funkwhale-server systemd unit file to launch the application server using daphne instead of gunicorn.
|
|
|
|
|
|
|
|
|
|
The new configuration should be similar to this:
|
|
|
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
|
User=funkwhale
|
|
|
|
|
# adapt this depending on the path of your funkwhale installation
|
|
|
|
|
WorkingDirectory=/srv/funkwhale/api
|
|
|
|
|
EnvironmentFile=/srv/funkwhale/config/.env
|
|
|
|
|
ExecStart=/usr/local/bin/daphne -b ${FUNKWHALE_API_IP} -p ${FUNKWHALE_API_PORT} config.asgi:application
|
|
|
|
|
|
|
|
|
|
Ensure you update funkwhale's dependencies as usual to install the required
|
|
|
|
|
packages.
|
|
|
|
|
|
|
|
|
|
On both docker and non-docker setup, you'll also have to update your nginx
|
|
|
|
|
configuration for websocket support. Ensure you have the following blocks
|
|
|
|
|
included in your virtualhost file:
|
|
|
|
|
|
|
|
|
|
.. code-block:: txt
|
|
|
|
|
|
|
|
|
|
map $http_upgrade $connection_upgrade {
|
|
|
|
|
default upgrade;
|
|
|
|
|
'' close;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
server {
|
|
|
|
|
...
|
|
|
|
|
proxy_http_version 1.1;
|
|
|
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
|
|
|
proxy_set_header Connection $connection_upgrade;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Remember to reload your nginx server after the edit.
|
|
|
|
|
|
|
|
|
|
|
2018-02-28 18:29:31 +00:00
|
|
|
|
0.5.4 (2018-02-28)
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Now stop running radio when clearing queue (#98)
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Fixed queue skipping tracks (#91)
|
|
|
|
|
- Now loop properly on queue when we only have one track (#95)
|
|
|
|
|
|
|
|
|
|
|
2018-02-27 22:10:23 +00:00
|
|
|
|
0.5.3 (2018-02-27)
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Added admin interface for radios, track files, favorites and import requests (#80)
|
|
|
|
|
- Added basic instance stats on /about (#82)
|
|
|
|
|
- Search now unaccent letters for queries like "The Dø" or "Björk" yielding more results (#81)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Always use username in sidebar (#89)
|
|
|
|
|
- Click event outside of player icons (#83)
|
|
|
|
|
- Fixed broken import because of missing transaction
|
|
|
|
|
- Now always load next radio track on last queue track ended (#87)
|
|
|
|
|
- Now exclude tracks without file from radio candidates (#88)
|
|
|
|
|
- skip to next track properly on 40X errors (#86)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Other:
|
|
|
|
|
|
|
|
|
|
- Switched to towncrier for changelog management and compilation
|
|
|
|
|
|
2018-02-26 20:39:22 +00:00
|
|
|
|
|
|
|
|
|
0.5.2 (2018-02-26)
|
|
|
|
|
------------------
|
|
|
|
|
|
2018-02-26 17:27:41 +00:00
|
|
|
|
- Fixed broken file import due to wrong url (#73)
|
|
|
|
|
- More accurate mimetype detection
|
2018-02-26 19:11:21 +00:00
|
|
|
|
- Fixed really small size on small screens
|
|
|
|
|
- Added masonry layout for artists, requests and radios (#68)
|
2018-02-26 20:20:24 +00:00
|
|
|
|
- We now have a favicon!
|
2018-02-26 20:31:39 +00:00
|
|
|
|
- Fixed truncated play icon (#65)
|
2018-02-26 17:27:41 +00:00
|
|
|
|
|
2018-02-24 17:07:51 +00:00
|
|
|
|
|
|
|
|
|
0.5.1 (2018-02-24)
|
|
|
|
|
------------------
|
|
|
|
|
|
2018-02-24 16:22:40 +00:00
|
|
|
|
- Front: Fixed broken ajax call on radio builder (#69)
|
2018-02-24 16:34:06 +00:00
|
|
|
|
- Front: Shuffle now restart next track from beginning (#70)
|
2018-02-24 16:55:05 +00:00
|
|
|
|
- Front: volume slider should now have the same style everywhere (#72)
|
2017-12-27 22:43:53 +00:00
|
|
|
|
|
2018-02-24 17:07:51 +00:00
|
|
|
|
|
2018-02-24 14:37:22 +00:00
|
|
|
|
0.5 (2018-02-24)
|
2018-02-18 13:48:38 +00:00
|
|
|
|
----------------
|
|
|
|
|
|
2018-02-18 14:08:18 +00:00
|
|
|
|
- Front: Now reset player colors when track has no cover (#46)
|
2018-02-19 20:20:38 +00:00
|
|
|
|
- Front: play button now disabled for unplayable tracks
|
2018-02-24 11:21:56 +00:00
|
|
|
|
- API: You can now enable or disable registration on the fly, via a preference (#58)
|
2018-02-24 13:40:55 +00:00
|
|
|
|
- Front: can now signup via the web interface (#35)
|
|
|
|
|
- Front: Fixed broken redirection on login
|
|
|
|
|
- Front: Fixed broken error handling on settings and login form
|
2018-02-19 20:20:38 +00:00
|
|
|
|
|
2018-02-24 14:30:20 +00:00
|
|
|
|
About page:
|
|
|
|
|
|
|
|
|
|
There is a brand new about page on instances (/about), and instance
|
|
|
|
|
owner can now provide a name, a short and a long description for their instance via the admin (/api/admin/dynamic_preferences/globalpreferencemodel/).
|
|
|
|
|
|
2018-02-19 20:20:38 +00:00
|
|
|
|
Transcoding:
|
|
|
|
|
|
|
|
|
|
Basic transcoding is now available to/from the following formats : ogg and mp3.
|
|
|
|
|
|
|
|
|
|
*This is still an alpha feature at the moment, please report any bug.*
|
|
|
|
|
|
|
|
|
|
This relies internally on FFMPEG and can put some load on your server.
|
|
|
|
|
It's definitely recommended you setup some caching for the transcoded files
|
|
|
|
|
at your webserver level. Check the the exemple nginx file at deploy/nginx.conf
|
|
|
|
|
for an implementation.
|
|
|
|
|
|
|
|
|
|
On the frontend, usage of transcoding should be transparent in the player.
|
2018-02-18 13:48:38 +00:00
|
|
|
|
|
2018-02-24 14:37:22 +00:00
|
|
|
|
Music Requests:
|
|
|
|
|
|
|
|
|
|
This release includes a new feature, music requests, which allows users
|
|
|
|
|
to request music they'd like to see imported.
|
|
|
|
|
Admins can browse those requests and mark them as completed when
|
|
|
|
|
an import is made.
|
|
|
|
|
|
2018-02-18 13:48:38 +00:00
|
|
|
|
0.4 (2018-02-18)
|
|
|
|
|
----------------
|
2018-01-07 21:27:34 +00:00
|
|
|
|
|
2018-02-18 13:37:33 +00:00
|
|
|
|
- Front: ambiant colors in player based on current track cover (#59)
|
|
|
|
|
- Front: simplified front dev setup thanks to webpack proxy (#59)
|
2018-02-15 18:59:55 +00:00
|
|
|
|
- Front: added some unittests for the store (#55)
|
|
|
|
|
- Front: fixed broken login redirection when 401
|
2018-02-17 16:30:21 +00:00
|
|
|
|
- Front: Removed autoplay on page reload
|
2018-02-17 20:30:04 +00:00
|
|
|
|
- API: Added a /instance/settings endpoint
|
|
|
|
|
- Front: load /instance/settings on page load
|
|
|
|
|
- Added settings to report JS and Python error to a Sentry instance
|
|
|
|
|
This is disabled by default, but feel free to enable it if you want
|
|
|
|
|
to help us by sending your error reports :) (#8)
|
2018-02-15 18:59:55 +00:00
|
|
|
|
|
2018-01-07 21:27:34 +00:00
|
|
|
|
|
2018-01-07 22:07:41 +00:00
|
|
|
|
0.3.5 (2018-01-07)
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
- Smarter BACKEND_URL in frontend
|
|
|
|
|
|
|
|
|
|
|
2018-01-07 21:51:08 +00:00
|
|
|
|
0.3.4 (2018-01-07)
|
2018-01-07 21:49:20 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
- Fixed wrong URL construction in ajax call
|
2018-01-07 21:27:34 +00:00
|
|
|
|
|
|
|
|
|
|
2018-01-07 21:51:08 +00:00
|
|
|
|
0.3.3 (2018-01-07)
|
2017-12-27 22:36:42 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
2018-01-07 21:15:02 +00:00
|
|
|
|
- Users can now create their own dynamic radios (#51)
|
|
|
|
|
|
2017-12-13 22:36:10 +00:00
|
|
|
|
|
2017-12-27 22:43:53 +00:00
|
|
|
|
0.3.2
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
- Fixed an issue in the main dockerfile
|
|
|
|
|
|
|
|
|
|
|
2017-12-27 22:36:42 +00:00
|
|
|
|
0.3.1
|
2017-12-27 22:32:02 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
- Revamped all import logic, everything is more tested and consistend
|
|
|
|
|
- Can now use Acoustid in file imports to automatically grab metadata from musicbrainz
|
|
|
|
|
- Brand new file import wizard
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.2.7
|
2017-12-16 15:15:33 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
2017-12-17 14:38:40 +00:00
|
|
|
|
- Shortcuts: can now use the ``f`` shortcut to toggle the currently playing track
|
|
|
|
|
as a favorite (#53)
|
|
|
|
|
- Shortcuts: avoid collisions between shortcuts by using the exact modifier (#53)
|
2017-12-17 16:07:15 +00:00
|
|
|
|
- Player: Added looping controls and shortcuts (#52)
|
2017-12-17 16:23:29 +00:00
|
|
|
|
- Player: Added shuffling controls and shortcuts (#52)
|
2017-12-17 19:08:49 +00:00
|
|
|
|
- Favorites: can now modify the ordering of track list (#50)
|
|
|
|
|
- Library: can now search/reorder results on artist browsing view (#50)
|
2017-12-26 20:28:56 +00:00
|
|
|
|
- Upgraded celery to 4.1, added endpoint logic for fingerprinting audio files
|
|
|
|
|
- Fixed #56: invalidate tokens on password change, also added change password form
|
|
|
|
|
- Fixed #57: now refresh jwt token on page refresh
|
|
|
|
|
- removed ugly dividers in batch import list
|
|
|
|
|
- Fixed a few padding issues
|
|
|
|
|
- Now persist/restore queue/radio/player state automatically
|
|
|
|
|
- Removed old broken imports
|
|
|
|
|
- Now force tests paths
|
|
|
|
|
- Fixed #54: Now use pytest everywhere \o/
|
|
|
|
|
- Now use vuex to manage state for favorites
|
|
|
|
|
- Now use vuex to manage state for authentication
|
|
|
|
|
- Now use vuex to manage state for player/queue/radios
|
2017-12-17 14:38:40 +00:00
|
|
|
|
|
2017-12-16 15:15:33 +00:00
|
|
|
|
|
2017-12-16 15:37:45 +00:00
|
|
|
|
0.2.6 (2017-12-15)
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
- Fixed broken Dockerfile
|
|
|
|
|
|
2017-12-16 15:15:33 +00:00
|
|
|
|
|
|
|
|
|
0.2.5 (2017-12-15)
|
2017-12-14 22:08:41 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
2017-12-15 22:10:42 +00:00
|
|
|
|
Features:
|
|
|
|
|
|
2017-12-15 20:45:50 +00:00
|
|
|
|
- Import: can now specify search template when querying import sources (#45)
|
2017-12-15 21:23:56 +00:00
|
|
|
|
- Login form: now redirect to previous page after login (#2)
|
2017-12-15 21:45:33 +00:00
|
|
|
|
- 404: a decent 404 template, at least (#48)
|
2017-12-15 20:45:50 +00:00
|
|
|
|
|
2017-12-15 22:10:42 +00:00
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Player: better handling of errors when fetching the audio file (#46)
|
|
|
|
|
- Csrf: default CSRF_TRUSTED_ORIGINS to ALLOWED_HOSTS to avoid Csrf issues on admin (#49)
|
|
|
|
|
|
2017-12-16 14:24:00 +00:00
|
|
|
|
Tech:
|
|
|
|
|
|
|
|
|
|
- Django 2 compatibility, lot of packages upgrades (#47)
|
|
|
|
|
|
2017-12-14 22:08:41 +00:00
|
|
|
|
|
|
|
|
|
0.2.4 (2017-12-14)
|
2017-12-13 22:36:10 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
2017-12-13 22:46:09 +00:00
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Models: now store relese group mbid on Album model (#7)
|
2017-12-14 22:06:21 +00:00
|
|
|
|
- Models: now bind import job to track files (#44)
|
2017-12-13 22:46:09 +00:00
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Library: fixen broken "play all albums" button on artist cards in Artist browsing view (#43)
|