Altere o nome do domínio ou renomeie seu 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 curtidas

Não há realmente nenhuma razão para um rebake?
O remap já cuidou de mapear a URL antiga para a nova URL.

4 curtidas

@SaraDev Obrigado por manter as coisas organizadas. Você pode dar uma olhada em:

e

Talvez eu esteja perdendo alguma coisa, mas… Se você usar o método ./discourse-setup, precisará definir o IP para o novo domínio antes de executar ./discourse-setup para evitar a temida falha na verificação do domínio, eita.

Usando a convenção talk.foo.comtalk.bar.com

Nome do host para o seu Discourse? [talk.foo.com]: talk.bar.com

Verificando seu nome de domínio . . .
AVISO: A porta 443 do computador não parece ser acessível usando o nome do host: talk.bar.com.
AVISO: A conexão com http://talk.bar.com (porta 80) também falha.

2 curtidas

Olá @philh,

Obrigado por mencionar isso:

Isso está correto, e se você executar ./discourse-setup e inserir as informações do novo domínio em vez de editar app.yml, você precisará configurar os registros DNS para seu novo domínio primeiro.

Essas informações foram atualizadas no guia para refletir a ordem correta para atualizar o domínio nesta situação. :slightly_smiling_face:

1 curtida

Obrigado, Sara!

A propósito: tenho quase certeza de que há uma verificação de domínio durante a reconstrução executando ./launcher rebuild app :wink: o que sugeriria que o DNS deve ser atualizado primeiro, de qualquer forma: edição direta de app.yml ou ./discourse-setup

Obrigado novamente por trabalhar para manter as coisas organizadas. Instruções atualizadas ajudam os novatos que aparecem. :slight_smile:

2 curtidas

Eu quero fazer isso, mas estou usando o Digital Ocean e não sou um especialista. Há algo que eu precise alterar lá?

Por exemplo, eu vejo isto:

Mas acredito que este é apenas um nome que eu dei a ele, não é uma configuração real?

Portanto, desde que eu siga as instruções nesta página, não terei que fazer nenhuma alteração no Digital Ocean (talvez além de atualizar este nome para o novo domínio, para evitar confusão?)

Para que seu novo site funcione corretamente, você precisa atualizar as configurações de DNS no provedor do seu nome de domínio.


Exemplo:

Se o seu site anterior era:

forum.example.com → 1.1.1.1

Então você deve alterá-lo para:

forum.newname.com → 1.1.1.1


Você está mudando o subdomínio ou o domínio completo?

No exemplo acima:

  • Domínio: example.com
  • Subdomínio: forum

Certifique-se de atualizar seus registros DNS de acordo, dependendo se você está mudando apenas o subdomínio ou o nome de domínio completo.



:label: Você está mudando o subdomínio ou o domínio completo?

No exemplo acima:

  • Domínio: example.com
  • Subdomínio: forum

Certifique-se de atualizar seus registros DNS de acordo, dependendo se você está mudando apenas o subdomínio ou o nome de domínio completo.


:globe_with_meridians: Exemplos de Configuração de DNS

:blue_circle: Cloudflare

  1. Faça login no seu painel do Cloudflare.
  2. Selecione seu domínio (por exemplo, example.com).
  3. Vá para a aba DNS.
  4. Encontre o registro A ou CNAME existente para forum.
  5. Edite-o:
    • Nome: forum
    • Conteúdo: 1.1.1.1 (ou o IP do seu servidor)
  6. Clique em Salvar.

:yellow_circle: GoDaddy

  1. Faça login na sua conta GoDaddy.
  2. Clique em Domínios e selecione seu domínio.
  3. Em Configurações Adicionais, clique em Gerenciar DNS.
  4. Role até a seção Registros.
  5. Encontre o registro A ou CNAME para forum e clique no ícone Editar.
  6. Atualize o seguinte:
    • Host: forum
    • Aponta para: 1.1.1.1
  7. Clique em Salvar.

:orange_circle: Namecheap

  1. Faça login na sua conta Namecheap.
  2. Vá para Lista de Domínios > clique em Gerenciar ao lado do seu domínio.
  3. Abra a aba DNS Avançado.
  4. Em Registros de Host, procure a entrada com forum.
  5. Clique em Editar e atualize:
    • Host: forum
    • Valor: 1.1.1.1
  6. Clique no check verde para salvar a alteração.

As alterações de DNS podem levar de alguns minutos até 48 horas para se propagarem completamente, dependendo do seu provedor e das configurações de TTL.

:three_o_clock: Observação: As etapas para alterar o DNS foram geradas por IA e podem variar ou conter erros.

1 curtida

Meu problema estava na verdade relacionado apenas ao Digital Ocean, não ao DNS, que consegui mudar facilmente no Cloudflare. Descobri que não era necessário fazer nenhuma alteração no Digital Ocean, mesmo assim.

Obrigado pela sua resposta, de qualquer forma!

1 curtida