diff --git a/docs/admin/backup.rst b/docs/admin/backup.rst new file mode 100644 index 0000000000000000000000000000000000000000..d474678ae3ba48a5c0a51b9114200673148c894e --- /dev/null +++ b/docs/admin/backup.rst @@ -0,0 +1,79 @@ +Backup your Funkwhale instance +============================== + +.. 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. + + +Docker setup +------------ + +If you've followed the setup instructions in :doc:`../installation/docker`, here is the backup path: + +Multi-container installation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Backup the db +^^^^^^^^^^^^^ + +On docker setups, you have to ``pg_dumpall`` in container ``funkwhale_postgres_1``: + +.. code-block:: shell + + docker exec -t funkwhale_postgres_1 pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql + +Backup the media files +^^^^^^^^^^^^^^^^^^^^^^ + +To backup docker data volumes, as the volumes are bound mounted to the host, the ``rsync`` way would go like this: + +.. code-block:: shell + + rsync -avzhP /srv/funkwhale/data/media /path/to/your/backup/media + rsync -avzhP /srv/funkwhale/data/music /path/to/your/backup/music + + +Backup the configuration files +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +On docker setups, the configuration file is located at the root level: + +.. code-block:: shell + + rsync -avzhP /srv/funkwhale/.env /path/to/your/backup/.env + + +Non-docker setup +---------------- + +Backup the db +^^^^^^^^^^^^^ + +On non-docker setups, you have to ``pg_dump`` as user ``postgres``: + +.. code-block:: shell + + sudo -u postgres -H pg_dump funkwhale > /path/to/your/backup/dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql + +Backup the media files +^^^^^^^^^^^^^^^^^^^^^^ + +A simple way to backup your media files is to use ``rsync``: + +.. code-block:: shell + + rsync -avzhP /srv/funkwhale/data/media /path/to/your/backup/media + rsync -avzhP /srv/funkwhale/data/music /path/to/your/backup/music + +Backup the configuration files +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: shell + + rsync -avzhP /srv/funkwhale/config/.env /path/to/your/backup/.env + +.. note:: + You may also want to backup your proxy configuration file. + + For frequent backups, you may want to use deduplication and compression to keep the backup size low. In this case, a tool like ``borg`` will be more appropriate.