This repository has been archived by the owner on Dec 1, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
Nextcloud Backup & Restore
Veerendra edited this page Apr 21, 2023
·
1 revision
These are basic steps to perform backup nextcloud with restic
From nextcloud docs, there 2 location that need to be backed up. There are
- Nextcloud data directory
- Postgresql database dumps For these, we need to create 2 restic repos to maintain.
NEXTCLOUD_DATA_RESTIC_REPO="/media/disk1/nextcloud_data_restic_repo"
NEXTCLOUD_PG_RESTIC_REPO="/media/disk1/nextcloud_pg_restic_repo"
BACKUP_DIR="/media/disk2/nextcloud"
RESTIC_PASSWORD_FILE="/home/veerendra/pass.txt"
-
NEXTCLOUD_DATA_RESTIC_REPO
is the restic repo for nextcloud data directory backup -
NEXTCLOUD_PG_RESTIC_REPO
is the restic repo for postgresql database dumps backup -
BACKUP_DIR
backup directory of nextcloud data -
RESTIC_PASSWORD_FILE
Restic repo password file for both repos
Init the repos
$ restic -r $NEXTCLOUD_DATA_RESTIC_REPO init
$ restic -r $NEXTCLOUD_PG_RESTIC_REPO init
$ docker exec -it -u www-data nextcloud php occ maintenance:mode --on
Backup nextcloud data
$ restic -r $NEXTCLOUD_DATA_RESTIC_REPO \
-p $RESTIC_PASSWORD_FILE \
--json \
backup $BACKUP_DIR
Backup postgresql database dump
$ docker exec postgres \
bash -c 'pg_dump -c -U `cat $POSTGRES_USER_FILE` `cat $POSTGRES_DB_FILE`' | \
restic backup --stdin --json \
-r $NEXTCLOUD_PG_RESTIC_REPO \
-p /home/veerendra/pass.txt \
--stdin-filename db_postgres_nextcloud.sql
$ docker exec -it -u www-data nextcloud php occ maintenance:mode --off
This shell script automates above steps with metrics
TODO