Questa guida spiega come ripristinare un backup di Discourse dalla riga di comando senza utilizzare l’interfaccia web di Discourse.
Livello utente richiesto: Amministratore
Accesso alla console richiesto
Ecco come ripristinare un backup di Discourse dalla riga di comando, senza avviare mai l’interfaccia web di Discourse. Questo è utile quando si sta cambiando server.
Prerequisiti
Prima di iniziare, assicurati di completare i seguenti passaggi:
- Scarica l’ultimo file di backup dall’istanza Discourse di origine.
- Avvia l’istanza Discourse di destinazione eseguendo
./discourse-setupo copiando il tuo fileapp.ymlesistente. - Assicurati che l’istanza Discourse di destinazione sia aggiornata all’ultima versione. Aggiornala se necessario.
Trasferisci il backup
- Accedi al server di destinazione tramite SSH, o crea la cartella di backup lì in altro modo:
mkdir -p /var/discourse/shared/standalone/backups/default
- Carica il tuo file di backup sul server di destinazione.
scp /path/to/backup/backup.tar.gz root@192.168.1.1:/var/discourse/shared/standalone/backups/default
Assicurati di sostituire i percorsi, i nomi dei file e i nomi dei server con quelli che stai utilizzando – ma vuoi che il file di backup finisca in:
/var/discourse/shared/standalone/backups/default
Puoi anche caricare e scaricare il tuo file di backup di Discourse da siti di archiviazione web popolari come Google Drive, Dropbox, OneDrive, ecc. – dovrai cercare le istruzioni specifiche della riga di comando in base al tuo provider di archiviazione web preferito.
NON CAMBIARE IL NOME DEL FILE DI BACKUP! Discourse tratta il nome del file di backup come metadati, quindi se modifichi il nome del file, il ripristino non funzionerĂ . Mantieni il nome originale del file.
Sostituisci /path/to/backup/discourse-xyz.tar.gz con il percorso locale del tuo file di backup e sostituisci \u003cserver_ip_address\u003e con l’indirizzo IP del server di destinazione.
Se Nginx è usato come proxy inverso (Running other websites on the same machine as Discourse) assicurati che tutti i percorsi verso il backup siano leggibili dal container e che Nginx possa leggere il file
.sock.
Ripristina il backup
- Accedi al tuo server di destinazione e naviga nella cartella Discourse:
cd /var/discourse
- Accedi al container dell’app Docker di Discourse:
./launcher enter app
- Abilita la funzionalitĂ di ripristino:
discourse enable_restore
- Ripristina il file di backup:
discourse restore sitename-2019-02-03-042252-v20190130013015.tar.gz
Suggerimento: Se esegui
discourse restoresenza un nome file, elencherĂ tutti i file di backup disponibili.
Se l’impostazione
backup_locationdel tuo sito è configurata per utilizzare S3, ma hai caricato manualmente il file di backup nel filesystem locale, devi specificare--location local:discourse restore --location local sitename-2019-02-03-042252-v20190130013015.tar.gzAllo stesso modo, usa
--location s3per ripristinare direttamente da un backup S3 senza scaricarlo prima.
- Esci dal container dell’app Docker di Discourse:
exit
Ricostruisci
Dopo aver ripristinato il backup, potresti scegliere di ricostruire l’istanza di destinazione per assicurarti che tutte le impostazioni e le configurazioni vengano applicate correttamente.
Ora è un buon momento per aggiornare
/var/discourse/containers/app.ymlcon HTTPS completo, plugin aggiuntivi o configurazione CDN. Confronta la configurazione diapp.ymldi entrambe le istanze per esserne sicuro!
cd /var/discourse
./launcher rebuild app
Abilita Email
Quando viene ripristinato un backup, la posta in uscita per gli utenti non staff viene disabilitata. Non vuoi che il tuo server di prova, il nuovo server o il server su cui hai appena ripristinato un backup per qualsiasi altro motivo inizi a inviare email ai tuoi utenti! Cambia l’impostazione del sito disable_emails in “no” per riabilitare le email.
Ecco fatto. Il tuo server Discourse è stato ripristinato con successo.