Cambia el nombre de dominio o renombra tu 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 Me gusta

¿Realmente no hay ninguna razón para un rebake?
El remap ya se encargó de mapear la URL antigua a la URL nueva.

4 Me gusta

@SaraDev Gracias por mantener las cosas ordenadas. ¿Puedes echar un vistazo a:

y

Quizás me estoy perdiendo algo, pero… Si usas el método ./discourse-setup, necesitarás configurar la IP del nuevo dominio antes de ejecutar ./discourse-setup para evitar el temido fallo en la comprobación del dominio, ¡uy!

Usando la convención talk.foo.comtalk.bar.com

Nombre de host para tu Discourse? [talk.foo.com]: talk.bar.com

Comprobando tu nombre de dominio…
ADVERTENCIA: No parece ser posible acceder al puerto 443 del ordenador usando el nombre de host: talk.bar.com.
ADVERTENCIA: La conexión a http://talk.bar.com (puerto 80) también falla.

2 Me gusta

Hola @philh,

Gracias por mencionarlo:

Esto es correcto, y si ejecutas ./discourse-setup e introduces la información del nuevo dominio en lugar de editar app.yml, necesitarás configurar primero los registros DNS para tu nuevo dominio.

Esta información ha actualizado la guía para reflejar el orden correcto para actualizar el dominio en esta situación. :slightly_smiling_face:

1 me gusta

¡Gracias Sara!

Por cierto: Estoy bastante seguro de que hay una verificación de dominio durante la reconstrucción ejecutando ./launcher rebuild app :wink: lo que sugeriría que el DNS debería actualizarse primero, ya sea editando directamente app.yml o ./discourse-setup

Gracias de nuevo por trabajar para mantener las cosas ordenadas. Las instrucciones actualizadas ayudan a los nuevos que vienen. :slight_smile:

2 Me gusta

Quiero hacer esto, pero estoy usando Digital Ocean y no soy un experto. ¿Hay algo que necesite cambiar allí?

Por ejemplo, veo esto:

Pero creo que este es solo un nombre que le di, ¿no es una configuración real?

Entonces, mientras siga las instrucciones de esta página, no tengo que hacer ningún cambio en Digital Ocean (¿quizás aparte de actualizar este nombre al nuevo dominio, para evitar confusiones?).

Para que tu nuevo sitio funcione correctamente, necesitas actualizar la configuración de DNS en el proveedor de tu nombre de dominio.


Ejemplo:

Si tu sitio anterior era:

forum.example.com → 1.1.1.1

Entonces deberías cambiarlo a:

forum.newname.com → 1.1.1.1


¿Estás cambiando el subdominio o el dominio completo?

En el ejemplo anterior:

  • Dominio: example.com
  • Subdominio: forum

Asegúrate de actualizar tus registros DNS en consecuencia, dependiendo de si solo estás cambiando el subdominio o el nombre de dominio completo.



:label: ¿Estás cambiando el subdominio o el dominio completo?

En el ejemplo anterior:

  • Dominio: example.com
  • Subdominio: forum

Asegúrate de actualizar tus registros DNS en consecuencia, dependiendo de si solo estás cambiando el subdominio o el nombre de dominio completo.


:globe_with_meridians: Ejemplos de configuración de DNS

:blue_circle: Cloudflare

  1. Inicia sesión en tu panel de control de Cloudflare.
  2. Selecciona tu dominio (por ejemplo, example.com).
  3. Ve a la pestaña DNS.
  4. Busca el registro A o CNAME existente para forum.
  5. Edítalo:
    • Nombre: forum
    • Contenido: 1.1.1.1 (o la IP de tu servidor)
  6. Haz clic en Guardar.

:yellow_circle: GoDaddy

  1. Inicia sesión en tu cuenta de GoDaddy.
  2. Haz clic en Dominios y luego selecciona tu dominio.
  3. En Configuración adicional, haz clic en Administrar DNS.
  4. Desplázate hasta la sección Registros.
  5. Busca el registro A o CNAME para forum y haz clic en el icono Editar.
  6. Actualiza lo siguiente:
    • Host: forum
    • Apunta a: 1.1.1.1
  7. Haz clic en Guardar.

:orange_circle: Namecheap

  1. Inicia sesión en tu cuenta de Namecheap.
  2. Ve a Lista de dominios > haz clic en Administrar junto a tu dominio.
  3. Abre la pestaña DNS avanzado.
  4. En Registros de host, busca la entrada con forum.
  5. Haz clic en Editar y actualiza:
    • Host: forum
    • Valor: 1.1.1.1
  6. Haz clic en la marca de verificación verde para guardar el cambio.

Los cambios de DNS pueden tardar desde unos pocos minutos hasta 48 horas en propagarse completamente, dependiendo de tu proveedor y de la configuración de TTL.

:three_o_clock: Nota: Los pasos para cambiar el DNS se generaron utilizando IA y pueden variar o contener errores.

1 me gusta

Mi problema en realidad solo estaba relacionado con Digital Ocean, no con el DNS, el cual pude cambiar fácilmente en Cloudflare. Sin embargo, me di cuenta de que no era necesario hacer ningún cambio en Digital Ocean.

¡Gracias por tu respuesta, de todos modos!

1 me gusta