Cambia il nome del dominio o rinomina il tuo 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 Mi Piace

Non c’è davvero alcun motivo per un rebake?
Il remap si è già occupato di mappare il vecchio URL al nuovo URL.

4 Mi Piace

@SaraDev Grazie per aver tenuto in ordine. Puoi dare un’occhiata a:

e

Forse mi sfugge qualcosa ma… Se usi il metodo ./discourse-setup dovrai impostare l’ip per il nuovo dominio prima di eseguire ./discourse-setup per evitare il temuto errore di controllo del dominio, yikes.

Utilizzando la convenzione talk.foo.comtalk.bar.com

Hostname per il tuo Discourse? [talk.foo.com]: talk.bar.com

Controllo del nome del dominio in corso…
ATTENZIONE: La porta 443 del computer non sembra essere accessibile utilizzando l’hostname: talk.bar.com.
ATTENZIONE: Anche la connessione a http://talk.bar.com (porta 80) fallisce.

2 Mi Piace

Ciao @philh,

Grazie per averlo menzionato:

Questo è corretto, e se esegui ./discourse-setup e inserisci le informazioni del nuovo dominio invece di modificare app.yml dovrai impostare prima i record DNS per il tuo nuovo dominio.

Queste informazioni hanno aggiornato la guida per riflettere il corretto ordine di aggiornamento del dominio in questa situazione. :slightly_smiling_face:

1 Mi Piace

Grazie Sara!

Comunque: sono abbastanza sicuro che ci sia un controllo del dominio durante la ricostruzione eseguendo ./launcher rebuild app :wink: il che suggerirebbe che il DNS dovrebbe essere aggiornato per primo, sia modificando direttamente app.yml che tramite ./discourse-setup

Grazie ancora per il tuo lavoro nel mantenere le cose ordinate. Le istruzioni aggiornate aiutano i nuovi arrivati. :slight_smile:

2 Mi Piace

Vorrei fare questo, ma sto usando Digital Ocean e non sono un esperto. C’è qualcosa che devo cambiare lì?

Ad esempio, vedo questo:

Ma credo che questo sia solo un nome che gli ho dato, non è un’impostazione reale?

Quindi, finché seguo le istruzioni in questa pagina, non devo apportare modifiche in Digital Ocean (forse a parte aggiornare questo nome al nuovo dominio, per evitare confusione)?

Per far funzionare correttamente il tuo nuovo sito, devi aggiornare le impostazioni DNS presso il tuo provider di nomi di dominio.


Esempio:

Se il tuo sito precedente era:

forum.example.com → 1.1.1.1

Allora dovresti cambiarlo in:

forum.newname.com → 1.1.1.1


Stai cambiando il sottodominio o il dominio completo?

Nell’esempio sopra:

  • Dominio: example.com
  • Sottodominio: forum

Assicurati di aggiornare i tuoi record DNS di conseguenza, a seconda che tu stia cambiando solo il sottodominio o l’intero nome di dominio.



:label: Stai cambiando il sottodominio o il dominio completo?

Nell’esempio sopra:

  • Dominio: example.com
  • Sottodominio: forum

Assicurati di aggiornare i tuoi record DNS di conseguenza, a seconda che tu stia cambiando solo il sottodominio o l’intero nome di dominio.


:globe_with_meridians: Esempi di configurazione DNS

:blue_circle: Cloudflare

  1. Accedi alla tua dashboard Cloudflare.
  2. Seleziona il tuo dominio (ad es. example.com).
  3. Vai alla scheda DNS.
  4. Trova il record A o CNAME esistente per forum.
  5. Modificalo:
    • Nome: forum
    • Contenuto: 1.1.1.1 (o l’IP del tuo server)
  6. Fai clic su Salva.

:yellow_circle: GoDaddy

  1. Accedi al tuo account GoDaddy.
  2. Fai clic su Domini, quindi seleziona il tuo dominio.
  3. Sotto Impostazioni aggiuntive, fai clic su Gestisci DNS.
  4. Scorri fino alla sezione Record.
  5. Trova il record A o CNAME per forum e fai clic sull’icona Modifica.
  6. Aggiorna quanto segue:
    • Host: forum
    • Punta a: 1.1.1.1
  7. Fai clic su Salva.

:orange_circle: Namecheap

  1. Accedi al tuo account Namecheap.
  2. Vai su Elenco domini > fai clic su Gestisci accanto al tuo dominio.
  3. Apri la scheda DNS avanzato.
  4. Sotto Record host, cerca la voce con forum.
  5. Fai clic su Modifica e aggiorna:
    • Host: forum
    • Valore: 1.1.1.1
  6. Fai clic sul segno di spunta verde per salvare la modifica.

Le modifiche DNS possono richiedere da pochi minuti fino a 48 ore per propagarsi completamente, a seconda del tuo provider e delle impostazioni TTL.

:three_o_clock: Nota: I passaggi per la modifica del DNS sono stati generati utilizzando l’IA e potrebbero variare o contenere errori.

1 Mi Piace

Il mio problema era in realtà solo legato a Digital Ocean, non al DNS, che sono riuscito a cambiare facilmente in Cloudflare. Ho capito che non era necessario apportare modifiche in Digital Ocean, però.

Grazie comunque per la sua risposta!

1 Mi Piace