📦Backup
Nextcloud back with restic
Below steps are not tested fully.
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.
Initialize restic repos
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 backupNEXTCLOUD_PG_RESTIC_REPO
is the restic repo for postgresql database dumps backupBACKUP_DIR
backup directory of nextcloud dataRESTIC_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
Set maintenance mode ON
$ docker exec -it -u www-data nextcloud php occ maintenance:mode --on
Run restic backups
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
Unset maintenance mode
$ docker exec -it -u www-data nextcloud php occ maintenance:mode --off
This shell script automates above steps with metrics
Last updated
Was this helpful?