--- title: Backup di nextcloud sidebar: mydoc_sidebar summary: "mettere al sicuro i dati della comunità di tanto in tanto" permalink: mydoc_backup.html folder: mydoc --- # Manutenzione Cloud Dispensa ## Preliminari Verificare la versione a cui siamo: https://scan.nextcloud.com/results/50ee0a1d-6f8e-4aa4-886a-5d7676f0cbeb Se c'è scritto: NOT on latest patch level Significa che dobbiamo aggiornare. Verificare le versioni successive di nexcloud: Esempio: da scan vediamo che stiamo usando la versione: 24.0.6.1 Verfichiamo qual'è l'ultima versione della nostra "maior release", ovvero il primo numero a sinistra: esempio: 24.0.8 Qui: https://hub.docker.com/_/nextcloud o qui: https://nextcloud.com/it/changelog/ o qui: https://download.nextcloud.com/server/releases/ Esempio, dalla 24.0.6 aggiorneremo alla 24.0.8, verificheremo gli aggiornamenti del database via web: e poi procederemo ad aggiornare alla 25.0.1, verificheremo di nuovo gli aggiornamenti degl indici del database e poi faremo l'ultimo salto di versione a quella disponibile, esempio: 25.0.2 Procedere con [l'autenticarsi sul server](https://www.campiaperti.org/documentazione/mydoc_about.html#autenticarsi-ssh) ## Backup Fonte: https://docs.nextcloud.com/server/20/admin_manual/maintenance/backup.html Per fare il backup di una installazione Nextcloud ci sono 4 cose principali che devi mantenere: The config folder The data folder The theme folder The database Eseguire prima il test di salute dell'installazione. A questo punto recarsi nella cartella dove abbiamo il file docker-compose.yml cd /opt/nextcloud/ Quindi da lì impostare la modalità manutenzione: docker exec -u www-data nextcloud-app php occ maintenance:mode --on Verificare che abbia funzionato: https://campiaperti.tetaneutral.net/login Fare il backup di config, data, themes, e custom-apps, che si trovano tutte dentro la cartella app/ #tar -czvf /home/backup_dispensa/data-nextcloud_$(date +%Y%m%d%H%M).tar.gz /opt/nextcloud/app fare il backup del db: docker exec -i nextcloud-mariadb mysqldump --single-transaction -u [username] -p [db_name] > /home/backup_dispensa/nextcloud-sqlbkp_$(date +%Y%m%d%H%M).bak Ti chiederà la password del db, la trovi leggendo nel file docker-compose.yml Cancellare i backup più vecchi. ### Copiare in locale il backup Dal proprio PC, quindi in un altro terminale rispetto a quello in cui si è connessi al server, scaricare il backup del db. Il nome del backup, es: nextcloud-sqlbkp_202301101834.bak è da andare a leggere nella cartella dei backup e da sostituire nel seguente comando: scp -P 2222 -r root@campiaperti.tetaneutral.net:/home/backup_dispensa/nextcloud-sqlbkp_DATA.bak /home/$USER/ Scaricare il backup della directory app, che contiene (config, data, themes e custom-apps) scp -P 2222 -r root@campiaperti.tetaneutral.net:/home/backup_dispensa/nextcloud-app_DATA.tar.gz /home/$USER/ Se non si riesce a scaricare il backup dei dati perchè la banda di connessione o il tempo a disposizione è poco, scaricare assolutamente almeno il backup del database. ### Aggiornare Modificato il docker-compose.yml con l'immagine successiva nextcloud: esempio 24.0.8 docker-compose up Poi da Admin in grafica web abbiamo appurato che mancavano degli aggiornamenti al db, allora glieli abbiamo fatti: docker-compose exec --user www-data app php occ maintenance:mode --off TEST: https://campiaperti.tetaneutral.net, funziona! Ci chiede in grafica web di fare queste cose da console, quindi le facciamo ma dandogli i comandi puri dal container: docker-compose exec --user www-data app php occ db:add-missing-indices docker-compose exec --user www-data app php occ db:convert-filecache-bigint Bene, quindi nuovo backup delle immagini e dei volumi. zip -r /home/backups_dispensa/data-nextcloud_$(date +%Y%m%d%H%M)_6.zip /var/app root@campiaperti:/var/lib/docker/volumes# zip -r /home/backups_dispensa/volumes-nextcloud_$(date +%Y%m%d%H%M)_6.zip var_nextcloud/ zip -r /home/backups_dispensa/volumes-db_$(date +%Y%m%d%H%M)_5.zip var_db finito! C'è da aggiornare la pagina di copertina del cloud. ### NGNIX se si cambia i lcontainer di nginx ricordarsi di Open the nginx configuration file vi /etc/nginx/nginx.conf add or modify the following line inside http {…} client_max_body_size 20M; then reload nginx. [Fonte](https://websistent.com/fix-client-intended-to-send-too-large-body-nginx-error/) #### Ripristinare configurazione di nginix "client_max_body_size" docker exec -ti nextcloud-proxy /bin/bash da dentro al container vi /etc/nginx/nginx.conf aggiungere la riga dentro a http {…} client_max_body_size 20M; riavviare ad nginx nginx -s reload --- #### Togliere la modalità manutenzione docker exec -u www-data nextcloud-app php occ maintenance:mode --off {% include links.html %}