Mueve tu instancia de Discourse a un servidor diferente

:bookmark: Esta es una guía para mover su instancia de Discourse de un servidor a otro, incluyendo toda la configuración y los datos. Esta guía se aplica a las instancias de Discourse autoalojadas que utilizan Docker.

:person_raising_hand: Nivel de usuario requerido: Administrador del sistema

:warning: Este procedimiento implica cambios de dominio y DNS. Asegúrese de tener acceso tanto al servidor de origen como al de destino.

Esta guía le explica el proceso de migración de su instancia de Discourse de un servidor a otro, asegurando que sus datos, configuraciones y ajustes se conserven.

Descargo de responsabilidad añadido por @pfaffman 2025-09-12T05:00:00Z.

Estas instrucciones no funcionan bien ahora porque ahora se está utilizando https y Let’s Encrypt, lo que requiere que el nuevo servidor tenga el DNS apuntando a él para que pueda solicitar claves. Lo que recomiendo es seguir Mover un sitio de Discourse a otro VPS con rsync (quizás usando --exclude postgres* y luego haciendo una copia de seguridad y restauración de la base de datos desde la línea de comandos). Esto es elegante ya que, si lo sabe hacer, puede modificar su DNS local para que apunte al nuevo servidor para que pueda probar que funciona mientras el resto de Internet sigue viendo el sitio antiguo.

Resumen

Realizará los siguientes pasos clave en esta guía:

  1. Realizar una copia de seguridad de su instancia actual de Discourse (servidor de origen).
  2. Transferir el archivo de copia de seguridad a su instancia de destino de Discourse (servidor de destino).
  3. Restaurar la copia de seguridad en el servidor de destino.
  4. Actualizar la configuración de DNS (si procede).

Ajuste de la configuración de DNS (cuando sea necesario)

Si va a utilizar el mismo dominio para el nuevo servidor, reduzca el TTL (tiempo de vida) de su entrada DNS con antelación. Esto garantiza un tiempo de inactividad mínimo durante la propagación de los registros DNS actualizados. Si va a utilizar un nuevo dominio, puede omitir este paso.

Inicio de sesión y preparación del servidor de origen

  1. Inicie sesión en su instancia de Discourse de origen con una cuenta que tenga permisos de administrador.
  2. Asegúrese de que tanto el servidor de origen como el de destino estén utilizando:
    • La misma versión de Discourse.
    • El mismo conjunto de plugins.
  3. Actualice la versión de Discourse en ambos servidores visitando /admin/upgrade.

:exclamation: Evite restaurar una copia de seguridad más reciente sobre una versión de Discourse más antigua, o versiones incompatibles de PostgreSQL, ya que esto puede provocar errores.

Creación y descarga de la copia de seguridad

  1. Navegue a /admin/backups en su instancia de Discourse de origen.
  2. Haga clic en el botón Backup (Copia de seguridad) para crear una copia de seguridad:
  3. Cuando se le pida, confirme haciendo clic en Yes (Sí).
  4. Una vez completada la copia de seguridad, vaya a la pestaña Backup files (Archivos de copia de seguridad) y localice la copia de seguridad recién creada.
  5. Haga clic en Download (Descargar) para recibir un correo electrónico con un enlace de descarga. Haga clic en el enlace del correo electrónico para guardar el archivo de copia de seguridad localmente.

:warning: Antes de continuar, revise su archivo app.yml para asegurarse de que cualquier configuración opcional, como las configuraciones de CDN, los plugins instalados o el soporte HTTPS, sea coherente entre los servidores de origen y de destino.

Restauración de la copia de seguridad en el servidor de destino

:bulb: Para restaurar la copia de seguridad a través de la línea de comandos, consulte la documentación pertinente.

  1. Inicie sesión como administrador en su instancia de Discourse de destino.
  2. Navegue a /admin/backups/settings y active la configuración allow restore (permitir restauración).
  3. Vaya a /admin/backups y haga clic en la pestaña Backup files (Archivos de copia de seguridad). Suba el archivo de copia de seguridad que descargó anteriormente haciendo clic en el botón Upload (Subir):
  4. Una vez completada la subida, haga clic en el menú ⋮ (más opciones) junto a la copia de seguridad subida y luego haga clic en Restore (Restaurar):
  5. Confirme haciendo clic en Yes (Sí) cuando se le solicite.

El proceso de restauración comenzará. Esto puede llevar algo de tiempo dependiendo del tamaño de su base de datos. Una vez completado el proceso, se cerrará su sesión automáticamente.

Finalización e inicio de sesión

  1. Inicie sesión en su instancia de Discourse de destino con sus credenciales de administrador.
  2. Si el sitio se copió utilizando HTTPS, asegúrese de que HTTPS esté habilitado en el nuevo servidor. Si no está configurado correctamente, utilice la consola de Rails para desactivar temporalmente la configuración “force https” (forzar https).
  3. Vuelva a activar cualquier configuración opcional editando el archivo app.yml y reconstruyendo su instancia. Esto puede incluir:
    • Habilitar el soporte de CDN.
    • Instalar plugins adicionales.
    • Configurar HTTPS.

Problemas comunes y soluciones

El archivo de copia de seguridad no se restaura

  • Compruebe que las versiones de Discourse y PostgreSQL coinciden entre los servidores de origen y de destino.

No se puede iniciar sesión después de la restauración (con HTTPS habilitado)

  • Utilice la consola de Rails para desactivar force https temporalmente ejecutando:
    SiteSetting.force_https = false
    
74 Me gusta
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