Skip to content
Tags give the ability to mark specific points in history as being important
  • 0.6
    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.
  • 0.6.1
    0.6.1 (unreleased)
    ------------------
    
    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
  • 0.7
    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)