Déplacez votre instance Discourse vers un autre serveur

:bookmark: 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.

:person_raising_hand: Niveau d’utilisateur requis : Administrateur système

:warning: 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 :

  1. Sauvegardez votre instance Discourse actuelle (serveur source).
  2. Transférez le fichier de sauvegarde vers votre instance Discourse cible (serveur de destination).
  3. Restaurez la sauvegarde sur le serveur de destination.
  4. 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

  1. Connectez-vous à votre instance Discourse source avec un compte disposant des droits d’administrateur.
  2. Assurez-vous que les serveurs source et de destination utilisent :
    • La même version de Discourse.
    • Le même ensemble de plugins.
  3. Mettez à niveau la version de Discourse sur les deux serveurs en visitant /admin/upgrade.

:exclamation: É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

  1. Accédez à /admin/backups sur votre instance Discourse source.
  2. Cliquez sur le bouton Backup (Sauvegarder) pour créer une sauvegarde :
  3. Lorsque vous êtes invité, confirmez en cliquant sur Yes (Oui).
  4. Une fois la sauvegarde terminée, allez dans l’onglet Backup files (Fichiers de sauvegarde), et localisez la sauvegarde nouvellement créée.
  5. 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.

:warning: Avant de continuer, examinez votre fichier app.yml pour 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

:bulb: Pour restaurer la sauvegarde via la ligne de commande, consultez la documentation pertinente.

  1. Connectez-vous en tant qu’administrateur à votre instance Discourse de destination.
  2. Accédez à /admin/backups/settings, et activez le paramètre allow restore (autoriser la restauration).
  3. Allez à /admin/backups et 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) :
  4. 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) :
  5. 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

  1. Connectez-vous à votre instance Discourse de destination avec vos identifiants d’administrateur.
  2. 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).
  3. Réactivez toutes les configurations facultatives en modifiant le fichier app.yml et 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_https en exécutant :
    SiteSetting.force_https = false
    
74 « J'aime »
How to migrate Discourse to new server
How to migrate my Discourse instance to a fresh new install
Move Discourse to a new server without setting up the web UI first?
Transfer from bitnami to normal discourse
Can I restore backups from older Discourse versions?
How to migrate the discourse container to another machine
Update from 2.9.0 beta2 to beta4 failed (my site is down)
Images lost when migrating to self-hosting
How to downgrade a Digital Ocean Virtual
How to backup and restore a whole /var/discourse app folder?
Exporting an AWS instance
Preserving user sessions when migrating between hosts
Postgres failing to update?
Migrate from VPS to a Dedicated
Site migration and plugins
How to migrate Discourse from one server to another with the same DNS name
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Ning forum to Discourse
Migrate a Phorum forum to Discourse
Migrate a PunBB forum to Discourse
Migrate from another forum to Discourse
Migrate a Kunena 3 forum to Discourse
Preserve user sessions when migrating to a new host
How do I move the discourse installed server to another server without loss?
Can snapshots be used when upgrading the host OS?
Unknown Primary Key
How to switch Discourse servers?
" undefined method `deprecated?' for nil:NilClass" on rebuild
How to switch Discourse servers?
Some settings aren't saving
Steps involved to downgrade from 2GB to 1GB on DO?
Moving to Another VPS Provider
Getting "permission denied" on new VPS install
How Do I transfer Discourse between servers?
Multi-instance migration failed when adding a new instance
Help Needed Migrating Discourse Forum to New Shanghai Server – db:migrate Error
Plesk server migration
Seeing "welcome to nginx" after backup restore
Issues while migrating from Kunena
Moving to New Server woes
Error: Can't notify admin while restoring backup during a migration to a fresh install
How to migrate from one Digitalocean Droplet to a another Droplet in a different Digitalocean account
How might we better structure #howto?
Trouble with postgre(maybe)
Move Digital Ocean 1-Click install to Standard supported install
Can I retain my forum content if I change its original IP?
Server upgrade from ubuntu 18 to 20
How to move Discourse to a different server when using Digital Ocean's Volumes (Block Storage)
How to migrate Discourse Forum data (Topics, Chat, and Configuration) to another server
How to clone Discourse server to a new server?
Move from standalone container to separate web and data containers
How do I move the discourse installed server to another server without loss?
Migrate a phpBB3 forum to Discourse
Migrate a vBulletin 4 forum to Discourse
Migrate from GetSatisfaction to Discourse
Migrate a NodeBB forum with Redis to Discourse
Migrate a MyBB forum to Discourse