Nextcloud docker Migration
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:
- Beispiel-Dockerfile enthält cron
- 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