Changez le nom de domaine ou renommez votre Discourse

:bookmark: This guide explains how-to change the domain name of your Discourse site, and includes information about setting up DNS changes, editing configuration files, updating site settings, and correcting social logins and post content to reflect your new domain name.

:warning: This guide is for self-hosted Discourse instances that were installed using our installation guide on GitHub. If you are hosted by Discourse, please see Configure your domain name for hosted Discourse for specific instructions.

You may eventually want to change the domain name of your Discourse instance, from say

=BEFORE==AFTER=

Let’s get started.

Setting the DNS TTL low in advance

First, change the Time-To-Live (TTL) setting for your DNS to a low value like 60 minutes. This should be done days ahead of the actual domain change to ensure the change can propagate quickly across the internet.

Remove old domain name from any site settings

Visit /admin/site_settings in your Discourse admin interface, and search for any settings containing the old domain name. Update these settings to the new domain name.

Changing DNS Records

Update your DNS settings to disable the old domain and point the new domain to the IP address of your Discourse server.

Editing the site name in app.yml

You can edit the app.yml file manually to input the new domain information.

Here’s how to edit it manually:

cd /var/discourse
nano containers/app.yml

Locate the following line and replace it:

DISCOURSE_HOSTNAME: 'your.newdomain.com'

If using a Content Delivery Network (CDN), temporarily disable it by commenting out the respective line in app.yml. Rebuild your Discourse site with:

./launcher rebuild app

:information_source: Alternatively, you can run ./discourse-setup again and input the new domain information instead of editing app.yml.

Check that your site is operational under the new domain.

Fixing social logins

:exclamation: Depending on how you logged in, you may need to do this first or you won’t be able to log in once the name is changed.

If you use social logins, update the credentials on the platforms (Twitter, Facebook, Google, Yahoo, GitHub) to reflect the new domain. Look for guides on the Discourse how-to category.

Remapping domain names in posts

All the existing posts will still refer to the old domain.

You’ll need to change old domain references in your posts to the new domain:

./launcher enter app

then

discourse remap =BEFORE= =AFTER=

Alternatively, use Rake if discourse binary is unavailable, you can use the rake version:

bundle exec rake posts:remap["=BEFORE=", "=AFTER="]

Finalize with:

rake posts:rebake

This ensures that the domain name remaps in existing posts, and content is regenerated as necessary.

:information_source: If you have a CDN, remember to reactivate it post-domain change.

wondering how we created that form?

Last edited by @SaraDev 2024-12-13T00:50:25Z

Check documentPerform check on document:
191 « J'aime »

Il n’y a vraiment aucune raison pour un rebake ?
Le remap s’est déjà occupé de mapper l’ancienne URL vers la nouvelle URL.

4 « J'aime »

@SaraDev Merci de garder les choses en ordre. Peux-tu jeter un œil à :

et

Peut-être que je rate quelque chose, mais… Si vous utilisez la méthode ./discourse-setup, vous devrez définir l’adresse IP du nouveau domaine avant d’exécuter ./discourse-setup pour éviter l’échec redouté de la vérification du domaine, ouille.

En utilisant la convention talk.foo.comtalk.bar.com

Nom d’hôte pour votre Discourse ? [talk.foo.com]: talk.bar.com

Vérification de votre nom de domaine . . .
AVERTISSEMENT : Le port 443 de l’ordinateur ne semble pas accessible en utilisant le nom d’hôte : talk.bar.com.
AVERTISSEMENT : La connexion à http://talk.bar.com (port 80) échoue également.

2 « J'aime »

Salut @philh,

Merci d’avoir mentionné ceci :

C’est exact, et si vous exécutez ./discourse-setup et que vous saisissez les informations du nouveau domaine au lieu de modifier app.yml, vous devrez d’abord configurer les enregistrements DNS pour votre nouveau domaine.

Ces informations ont été mises à jour dans le guide pour refléter le bon ordre de mise à jour du domaine dans cette situation. :slightly_smiling_face:

1 « J'aime »

Merci Sara !

Au fait : Je suis à peu près sûr qu’il y a une vérification de domaine lors de la reconstruction en exécutant ./launcher rebuild app :wink: ce qui suggérerait que le DNS devrait être mis à jour en premier, que ce soit par modification directe de app.yml ou par ./discourse-setup
Merci encore d’avoir travaillé à maintenir les choses en ordre. Des instructions à jour aident les nouveaux arrivants. :slight_smile:

2 « J'aime »

Je veux faire ça, mais j’utilise Digital Ocean, et je ne suis pas un expert. Y a-t-il quelque chose que je doive y changer ?

Par exemple, je vois ceci :

Mais je crois que ce n’est qu’un nom que je lui ai donné, ce n’est pas un réglage réel ?

Donc, tant que je suis les instructions sur cette page, je n’ai pas à faire de changements dans Digital Ocean (peut-être à part mettre à jour ce nom avec le nouveau domaine, pour éviter la confusion ?)

Pour que votre nouveau site fonctionne correctement, vous devez mettre à jour les paramètres DNS chez votre fournisseur de nom de domaine.


Exemple :

Si votre site précédent était :

forum.example.com → 1.1.1.1

Alors vous devriez le changer en :

forum.newname.com → 1.1.1.1


Changez-vous le sous-domaine ou le domaine complet ?

Dans l’exemple ci-dessus :

  • Domaine : example.com
  • Sous-domaine : forum

Assurez-vous de mettre à jour vos enregistrements DNS en conséquence, selon que vous changez uniquement le sous-domaine ou le nom de domaine complet.



:label: Changez-vous le sous-domaine ou le domaine complet ?

Dans l’exemple ci-dessus :

  • Domaine : example.com
  • Sous-domaine : forum

Assurez-vous de mettre à jour vos enregistrements DNS en conséquence, selon que vous changez uniquement le sous-domaine ou le nom de domaine complet.


:globe_with_meridians: Exemples de configuration DNS

:blue_circle: Cloudflare

  1. Connectez-vous à votre tableau de bord Cloudflare.
  2. Sélectionnez votre domaine (par exemple, example.com).
  3. Allez dans l’onglet DNS.
  4. Trouvez l’enregistrement A ou CNAME existant pour forum.
  5. Modifiez-le :
    • Nom : forum
    • Contenu : 1.1.1.1 (ou l’IP de votre serveur)
  6. Cliquez sur Enregistrer.

:yellow_circle: GoDaddy

  1. Connectez-vous à votre compte GoDaddy.
  2. Cliquez sur Domaines, puis sélectionnez votre domaine.
  3. Sous Paramètres supplémentaires, cliquez sur Gérer le DNS.
  4. Faites défiler jusqu’à la section Enregistrements.
  5. Trouvez l’enregistrement A ou CNAME pour forum, et cliquez sur l’icône Modifier.
  6. Mettez à jour les éléments suivants :
    • Hôte : forum
    • Pointe vers : 1.1.1.1
  7. Cliquez sur Enregistrer.

:orange_circle: Namecheap

  1. Connectez-vous à votre compte Namecheap.
  2. Allez dans Liste des domaines > cliquez sur Gérer à côté de votre domaine.
  3. Ouvrez l’onglet DNS avancé.
  4. Sous Enregistrements d’hôtes, recherchez l’entrée avec forum.
  5. Cliquez sur Modifier, et mettez à jour :
    • Hôte : forum
    • Valeur : 1.1.1.1
  6. Cliquez sur la cochage verte pour enregistrer la modification.

Les modifications DNS peuvent prendre de quelques minutes à 48 heures pour se propager entièrement, en fonction de votre fournisseur et des paramètres TTL.

:three_o_clock: Remarque : Les étapes de modification du DNS ont été générées par l’IA et peuvent varier ou contenir des erreurs.

1 « J'aime »

Mon problème était en fait juste lié à Digital Ocean, et non au DNS, que j’ai pu changer facilement dans Cloudflare. J’ai cependant compris qu’il n’était pas nécessaire de faire des modifications dans Digital Ocean.

Merci pour votre réponse, en tout cas !

1 « J'aime »