diff --git a/api/requirements.txt b/api/requirements.txt index d1197135eeb072ccaca11906b49b2fe160bd010f..00be27c5356b417fc5da953c6bceab608e2f382c 100644 --- a/api/requirements.txt +++ b/api/requirements.txt @@ -1,3 +1,4 @@ # This file is here because many Platforms as a Service look for # requirements.txt in the root directory of a project. +-r requirements/base.txt -r requirements/production.txt diff --git a/changes/changelog.d/127.doc b/changes/changelog.d/127.doc new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/docs/index.rst b/docs/index.rst index 17e9fe7f0b699cc427c71cac4597708b5a311e31..f5acecce516ee8d6b635c91e3aa0fed2686f5739 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -15,6 +15,7 @@ Funkwhale is a self-hosted, modern free and open-source music server, heavily in installation/index configuration importing-music + upgrading changelog Indices and tables diff --git a/docs/installation/debian.rst b/docs/installation/debian.rst index 86ccb4dd3ee6df1678f758d0e8e7834bb16a4e3b..c4e54218d53bf85fc4aa647e0516be86956df319 100644 --- a/docs/installation/debian.rst +++ b/docs/installation/debian.rst @@ -89,7 +89,7 @@ First, we'll download the latest api release. curl -L -o "api-|version|.zip" "https://code.eliotberriot.com/funkwhale/funkwhale/-/jobs/artifacts/|version|/download?job=build_api" unzip "api-|version|.zip" -d extracted - mv extracted/api api + mv extracted/api/* api/ rmdir extracted @@ -100,7 +100,7 @@ Then we'll download the frontend files: curl -L -o "front-|version|.zip" "https://code.eliotberriot.com/funkwhale/funkwhale/-/jobs/artifacts/|version|/download?job=build_front" unzip "front-|version|.zip" -d extracted mv extracted/front . - rmdir extracted + rm -rf extracted You can leave the ZIP archives in the directory, this will help you know which version you've installed next time you want to upgrade your installation. diff --git a/docs/installation/docker.rst b/docs/installation/docker.rst index 34e8187c58dc2e104392badf862dec1dcadcad43..dc031caed91b8c169ff0bd68827865c432f3504d 100644 --- a/docs/installation/docker.rst +++ b/docs/installation/docker.rst @@ -17,7 +17,9 @@ Create your env file: .. parsed-literal:: + export FUNKWHALE_VERSION="|version|" curl -L -o .env "https://code.eliotberriot.com/funkwhale/funkwhale/raw/|version|/deploy/env.prod.sample" + sed -i "s/FUNKWHALE_VERSION=latest/FUNKWHALE_VERSION=$FUNKWHALE_VERSION/" .env Ensure to edit it to match your needs (this file is heavily commented) diff --git a/docs/upgrading.rst b/docs/upgrading.rst new file mode 100644 index 0000000000000000000000000000000000000000..674878ba7c4d8f4dd41f64f0dbda615ea515ba2d --- /dev/null +++ b/docs/upgrading.rst @@ -0,0 +1,94 @@ +Upgrading your funkwhale instance to a newer version +==================================================== + +.. note:: + + 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, + however, funkwhale is still in development and you'll be safer with a backup. + + +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. + +Upgrade the static files +------------------------ + +Regardless of your deployment choice (docker/non-docker) 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 + curl -L -o front.zip "https://code.eliotberriot.com/funkwhale/funkwhale/builds/artifacts/$FUNKWHALE_VERSION/download?job=build_front" + unzip -o front.zip + rm front.zip + +Upgrading the API +----------------- + +Docker setup +^^^^^^^^^^^^ + +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 + # 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 + +Non-docker setup +^^^^^^^^^^^^^^^^ + +On non docker-setup, upgrade involves a few more commands. We assume your setup +match what is described in :doc:`debian`: + +.. parsed-literal:: + + # stop the services + sudo systemctl stop funkwhale.target + + # this assumes you want to upgrade to version "|version|" + export FUNKWALE_VERSION="|version|" + cd /srv/funkwhale + + # download more recent API files + curl -L -o "api-|version|.zip" "https://code.eliotberriot.com/funkwhale/funkwhale/-/jobs/artifacts/$FUNKWALE_VERSION/download?job=build_api" + unzip "api-$FUNKWALE_VERSION.zip" -d extracted + rm -rf api/ && mv extracted/api . + rm -rf extracted + + # update os dependencies + sudo api/install_os_dependencies.sh install + # update python dependencies + source /srv/funkwhale/load_env + source /srv/funkwhale/virtualenv/bin/activate + pip install -r api/requirements.txt + + # apply database migrations + python api/manage.py migrate + # collect static files + python api/manage.py collectstatic --no-input + + # restart the services + sudo systemctl restart funkwhale.target