60 lines
1.9 KiB
Gherkin
60 lines
1.9 KiB
Gherkin
Switched to django-channels and daphne for serving HTTP and websocket (#34)
|
|
|
|
Upgrade notes
|
|
^^^^^^^^^^^^^
|
|
|
|
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.
|