Ce guide explique comment restaurer une sauvegarde Discourse depuis la ligne de commande sans utiliser l’interface utilisateur web de Discourse.
Niveau d’utilisateur requis : Administrateur
Accès à la console requis
Voici comment restaurer une sauvegarde Discourse depuis la ligne de commande, sans jamais démarrer l’interface utilisateur web de Discourse. Ceci est utile lorsque vous déplacez des serveurs.
Prérequis
Avant de commencer, assurez-vous d’avoir effectué les étapes suivantes :
- Téléchargez le dernier fichier de sauvegarde depuis l’instance Discourse source.
- Initialisez l’instance Discourse de destination en exécutant
./discourse-setupou en copiant votreapp.ymlexistant. - Assurez-vous que l’instance Discourse de destination est à jour. Mettez-la à jour si nécessaire.
Transférer la sauvegarde
- Connectez-vous en SSH au serveur de destination, ou créez le dossier de sauvegarde là-bas de toute autre manière :
mkdir -p /var/discourse/shared/standalone/backups/default
- Téléchargez votre fichier de sauvegarde sur le serveur de destination.
scp /chemin/vers/sauvegarde/backup.tar.gz root@192.168.1.1:/var/discourse/shared/standalone/backups/default
Assurez-vous de remplacer les chemins, les noms de fichiers et les noms de serveurs par ceux que vous utilisez – mais vous voulez que le fichier de sauvegarde se termine dans :
/var/discourse/shared/standalone/backups/default
Vous pouvez également télécharger votre fichier de sauvegarde Discourse depuis des sites de stockage web populaires tels que Google Drive, Dropbox, OneDrive, etc. – vous devrez consulter les instructions spécifiques de la ligne de commande en fonction de votre fournisseur de stockage web préféré.
NE CHANGEZ PAS LE NOM DU FICHIER DE SAUVEGARDE ! Discourse traite le nom du fichier de sauvegarde comme des métadonnées, donc si vous modifiez le nom du fichier, la restauration ne fonctionnera pas. Conservez le nom de fichier original.
Remplacez /chemin/vers/sauvegarde/discourse-xyz.tar.gz par le chemin local de votre fichier de sauvegarde, et remplacez \u003cserver_ip_address\u003e par l’adresse IP du serveur de destination.
Si Nginx est utilisé comme proxy inverse (Running other websites on the same machine as Discourse) assurez-vous que tous les chemins d’accès à la sauvegarde sont lisibles par le conteneur et que Nginx peut lire le fichier
.sock.
Restaurer la sauvegarde
- Accédez à votre serveur de destination et naviguez jusqu’au dossier Discourse :
cd /var/discourse
- Entrez dans le conteneur de l’application Docker Discourse :
./launcher enter app
- Activez la fonctionnalité de restauration :
discourse enable_restore
- Restaurez le fichier de sauvegarde :
discourse restore sitename-2019-02-03-042252-v20190130013015.tar.gz
Astuce : Si vous exécutez
discourse restoresans nom de fichier, il listera tous les fichiers de sauvegarde disponibles.
Si le paramètre
backup_locationde votre site est configuré pour utiliser S3, mais que vous avez téléchargé manuellement le fichier de sauvegarde sur le système de fichiers local, vous devez spécifier--location local:discourse restore --location local sitename-2019-02-03-042252-v20190130013015.tar.gzDe même, utilisez
--location s3pour restaurer directement à partir d’une sauvegarde S3 sans la télécharger au préalable.
- Quittez le conteneur de l’application Docker Discourse :
exit
Reconstruire
Après avoir restauré la sauvegarde, vous pouvez choisir de reconstruire l’instance de destination pour vous assurer que tous les paramètres et configurations sont appliqués correctement.
C’est le bon moment pour mettre à jour
/var/discourse/containers/app.ymlavec le HTTPS complet, les plugins supplémentaires ou la configuration CDN. Comparez la configurationapp.ymldes deux instances pour en être sûr !
cd /var/discourse
./launcher rebuild app
Activer l’e-mail
Lorsqu’une sauvegarde est restaurée, l’envoi d’e-mails pour les non-membres du personnel est désactivé. Vous ne voulez pas que votre serveur de test, nouveau serveur, ou serveur sur lequel vous venez de restaurer une sauvegarde pour une autre raison commence à envoyer des e-mails à vos utilisateurs ! Modifiez le paramètre de site disable_emails à “no” pour réactiver l’envoi d’e-mails.
Voilà. Votre serveur Discourse est restauré avec succès.