Backup “Native” Instanz

Backup, siehe github

Datenbank und data, siehe Skript

# database
mysqldump --single-transaction -u nextcloud_user -p nextcloud > /mnt/data/archive/backup/nextcloud/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

# nextcloud data
cd /var/www/html/data
tar czvf /mnt/data/archive/backup/nextcloud/nextcloud-data_`date +"%Y%m%d"`.tar.gz .

# nextcloud apps
cd /var/www/html/apps
tar czvf /mnt/data/archive/backup/nextcloud/nextcloud-apps_`date +"%Y%m%d"`.tar.gz .

# nextcloud config
cp config.php /mnt/data/archive/backup/nextcloud/

Nextcloud Docker Instanz starten

 docker-compose up -d

Nextcloud-Wizard abschließen (u.a. Host: db)

Restore Docker Instanz

Datenbank

docker cp ./database.dmp nextcloud_db_1:/dmp
docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp"
docker-compose exec db rm /dmp

data

cd /mnt/data/archive/docker-volumes/nextcloud/data
tar xzvf /mnt/data/archive/backup/nextcloud/nextcloud-data_20190801.tar.gz

apps

spezifisch kopieren, z.B. twofactor_totp, bookmarks, ..

config

copy config (zumindest instanceid, passwordsalt, secret)

Externer Speicher

  • Ereignisse (/mnt/data/Ereignisse)
  • Fotos (/mnt/data/Fotos)
  • Dokumente (/mnt/data/Dokumente)

Konfiguration

Cron

Standard Docker-Image kann keine cronjobs ausführen. Zwei Möglichkeiten:

  1. Beispiel-Dockerfile enthält cron
  2. Host ruft von außen cron im Container auf, siehe github

/etc/cron.d/nextcloud:

*/10 * * * * root 	docker exec -u www-data nextcloud_app_1 php -f /var/www/html/cron.php

Backup

html, config, custom_apps, data liegen auf NAS und werde dort gesichert.

Datenbank wird mittels Cronjob am Host 1x in der Nacht gesichert:

0 3 * * * 	root 	docker exec nextcloud_db_1 mysqldump --single-transaction -u nextcloud -pPASS nextcloud > /mnt/data/archive/backup/nextcloud/nextcloud-sqlbkp.bak