upgrading.rst 4.14 KB
Newer Older
Reg's avatar
Reg committed
1
Upgrading your Funkwhale instance to a newer version
2
3
4
5
====================================================

.. note::

6
7
8
9
    Before upgrading your instance, we strongly advise you to make at least a database backup. Ideally, you should make a full backup, including
    the database and the media files.

    We're commited to make upgrade as easy and straightforward as possible,
Reg's avatar
Reg committed
10
    however, Funkwhale is still in development and you'll be safer with a backup.
11

12

13
14
15
16
17
18
19
20
21
Reading the release notes
-------------------------

Please take a few minutes to read the :doc:`changelog`: updates should work
similarly from version to version, but some of them may require additional steps.
Those steps would be described in the version release notes.


Docker setup
22
------------
23
24
25
26
27
28
29
30
31
32

If you've followed the setup instructions in :doc:`Docker`, upgrade path is
easy:

.. parsed-literal::

    cd /srv/funkwhale
    # hardcode the targeted version your env file
    # (look for the FUNKWHALE_VERSION variable)
    nano .env
33
34
35
36
37
    # Load your environment variables
    source .env
    # Download newest nginx configuration file
    curl -L -o nginx/funkwhale.template "https://code.eliotberriot.com/funkwhale/funkwhale/raw/develop/deploy/docker.nginx.template"
    curl -L -o nginx/funkwhale_proxy.conf "https://code.eliotberriot.com/funkwhale/funkwhale/raw/develop/deploy/funkwhale_proxy.conf"
38
39
40
41
42
43
44
    # Pull the new version containers
    docker-compose pull
    # Apply the database migrations
    docker-compose run --rm api python manage.py migrate
    # Relaunch the containers
    docker-compose up -d

45
46
47
48
49
50
51
52
.. warning::

    You may sometimes get the following warning while applying migrations::

        "Your models have changes that are not yet reflected in a migration, and so won't be applied."

    This is a warning, not an error, and it can be safely ignored.
    Never run the ``makemigrations`` command yourself.
53
54


55
Non-docker setup
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
----------------

Upgrade the static files
^^^^^^^^^^^^^^^^^^^^^^^^

On non-docker setups, the front-end app
is updated separately from the API. This is as simple as downloading
the zip with the static files and extracting it in the correct place.

The following example assume your setup match :ref:`frontend-setup`.

.. parsed-literal::

    # this assumes you want to upgrade to version "|version|"
    export FUNKWHALE_VERSION="|version|"
    cd /srv/funkwhale
72
73
74
    sudo -u funkwhale curl -L -o front.zip "https://code.eliotberriot.com/funkwhale/funkwhale/builds/artifacts/$FUNKWHALE_VERSION/download?job=build_front"
    sudo -u funkwhale unzip -o front.zip
    sudo -u funkwhale rm front.zip
75
76
77

Upgrading the API
^^^^^^^^^^^^^^^^^
78

79
On non-docker, upgrade involves a few more commands. We assume your setup
80
match what is described in :doc:`/installation/debian`:
81
82
83
84

.. parsed-literal::

    # this assumes you want to upgrade to version "|version|"
85
    export FUNKWHALE_VERSION="|version|"
86
87
88
    cd /srv/funkwhale

    # download more recent API files
89
90
    sudo -u funkwhale curl -L -o "api-$FUNKWHALE_VERSION.zip" "https://code.eliotberriot.com/funkwhale/funkwhale/-/jobs/artifacts/$FUNKWHALE_VERSION/download?job=build_api"
    sudo -u funkwhale unzip "api-$FUNKWHALE_VERSION.zip" -d extracted
91
92
    sudo -u funkwhale rm -rf api/ && mv extracted/api .
    sudo -u funkwhale rm -rf extracted
93
94
95
96
97

    # update os dependencies
    sudo api/install_os_dependencies.sh install
    # update python dependencies
    source /srv/funkwhale/load_env
98
    sudo -u funkwhale -E /srv/funkwhale/virtualenv/bin/pip install -r api/requirements.txt
99
100

    # collect static files
101
102
103
104
105
106
107
    sudo -u funkwhale -E /srv/funkwhale/virtualenv/bin/python api/manage.py collectstatic --no-input

    # stop the services
    sudo systemctl stop funkwhale.target

    # apply database migrations
    sudo -u funkwhale -E /srv/funkwhale/virtualenv/bin/python api/manage.py migrate
108
109

    # restart the services
110
    sudo systemctl start funkwhale.target
111
112
113
114
115
116
117
118
119

.. warning::

    You may sometimes get the following warning while applying migrations::

        "Your models have changes that are not yet reflected in a migration, and so won't be applied."

    This is a warning, not an error, and it can be safely ignored.
    Never run the ``makemigrations`` command yourself.