Ceci est un guide pour déplacer votre instance Discourse d’un serveur à un autre, y compris tous les paramètres et données. Ce guide s’applique aux instances Discourse auto-hébergées utilisant Docker.
Niveau d’utilisateur requis : Administrateur système
Cette procédure implique des changements de domaine et de DNS. Assurez-vous d’avoir accès aux serveurs source et de destination.
Ce guide vous explique le processus de migration de votre instance Discourse d’un serveur à un autre, en veillant à ce que vos données, paramètres et configurations soient préservés.
Avertissement ajouté par @pfaffman 2025-09-12T05:00:00Z.
Ces instructions ne fonctionnent pas bien maintenant car vous utilisez désormais https et Let’s Encrypt, ce qui nécessite que le nouveau serveur ait le DNS pointé vers lui afin qu’il puisse demander des clés. Ce que je recommande, c’est de suivre Déplacer un site Discourse vers un autre VPS avec rsync (en utilisant peut-être --exclude postgres* puis en sauvegardant et restaurant la base de données depuis la ligne de commande.) C’est astucieux car si vous savez comment faire, vous pouvez ajuster votre DNS local pour qu’il pointe vers le nouveau serveur afin de tester son fonctionnement pendant que le reste d’Internet voit toujours l’ancien site.
Sommaire
Vous effectuerez les étapes clés suivantes dans ce guide :
- Sauvegardez votre instance Discourse actuelle (serveur source).
- Transférez le fichier de sauvegarde vers votre instance Discourse cible (serveur de destination).
- Restaurez la sauvegarde sur le serveur de destination.
- Mettez à jour les paramètres DNS (si applicable).
Ajustement des paramètres DNS (si nécessaire)
Si vous utilisez le même domaine pour le nouveau serveur, réduisez le TTL (temps de vie) de votre entrée DNS à l’avance. Cela garantit un temps d’arrêt minimal pendant la propagation des enregistrements DNS mis à jour. Si vous utiliserez un nouveau domaine, cette étape peut être ignorée.
Connexion et préparation du serveur source
- Connectez-vous à votre instance Discourse source avec un compte disposant des droits d’administrateur.
- Assurez-vous que les serveurs source et de destination utilisent :
- La même version de Discourse.
- Le même ensemble de plugins.
- Mettez à niveau la version de Discourse sur les deux serveurs en visitant
/admin/upgrade.
Évitez de restaurer une sauvegarde plus récente sur une ancienne version de Discourse, ou des versions incompatibles de PostgreSQL, car cela pourrait entraîner des erreurs.
Création et téléchargement de la sauvegarde
- Accédez à
/admin/backupssur votre instance Discourse source. - Cliquez sur le bouton Backup (Sauvegarder) pour créer une sauvegarde :
- Lorsque vous êtes invité, confirmez en cliquant sur Yes (Oui).
- Une fois la sauvegarde terminée, allez dans l’onglet Backup files (Fichiers de sauvegarde), et localisez la sauvegarde nouvellement créée.
- Cliquez sur Download (Télécharger) pour recevoir un e-mail avec un lien de téléchargement. Cliquez sur le lien dans l’e-mail pour enregistrer le fichier de sauvegarde localement.
Avant de continuer, examinez votre fichier
app.ymlpour vous assurer que tous les paramètres facultatifs, tels que les configurations CDN, les plugins installés ou la prise en charge HTTPS, sont cohérents entre les serveurs source et de destination.
Restauration de la sauvegarde sur le serveur de destination
Pour restaurer la sauvegarde via la ligne de commande, consultez la documentation pertinente.
- Connectez-vous en tant qu’administrateur à votre instance Discourse de destination.
- Accédez à
/admin/backups/settings, et activez le paramètreallow restore(autoriser la restauration). - Allez à
/admin/backupset cliquez sur l’onglet Backup files (Fichiers de sauvegarde). Téléchargez le fichier de sauvegarde que vous avez téléchargé précédemment en cliquant sur le bouton Upload (Téléverser) :
- Une fois le téléchargement terminé, cliquez sur le menu ⋮ (plus d’options) à côté de la sauvegarde téléchargée, puis cliquez sur Restore (Restaurer) :
- Confirmez en cliquant sur Yes (Oui) lorsque vous y êtes invité.
Le processus de restauration va commencer. Cela peut prendre un certain temps en fonction de la taille de votre base de données. Une fois le processus terminé, vous serez automatiquement déconnecté.
Finalisation et connexion
- Connectez-vous à votre instance Discourse de destination avec vos identifiants d’administrateur.
- Si le site a été sauvegardé en utilisant HTTPS, assurez-vous que HTTPS est activé sur le nouveau serveur. Si ce n’est pas correctement configuré, utilisez la console Rails pour désactiver temporairement le paramètre « force https » (forcer https).
- Réactivez toutes les configurations facultatives en modifiant le fichier
app.ymlet en reconstruisant votre instance. Cela peut inclure :- Activation du support CDN.
- Installation de plugins supplémentaires.
- Configuration des paramètres HTTPS.
Problèmes courants et solutions
Le fichier de sauvegarde ne se restaure pas
- Vérifiez que les versions de Discourse et de PostgreSQL correspondent entre les serveurs source et de destination.
Impossible de se connecter après la restauration (avec HTTPS activé)
- Utilisez la console Rails pour désactiver temporairement
force_httpsen exécutant :SiteSetting.force_https = false



