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.
Nivel de usuario requerido: Administrador del sistema
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:
- Realizar una copia de seguridad de su instancia actual de Discourse (servidor de origen).
- Transferir el archivo de copia de seguridad a su instancia de destino de Discourse (servidor de destino).
- Restaurar la copia de seguridad en el servidor de destino.
- 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
- Inicie sesión en su instancia de Discourse de origen con una cuenta que tenga permisos de administrador.
- 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.
- Actualice la versión de Discourse en ambos servidores visitando
/admin/upgrade.
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
- Navegue a
/admin/backupsen su instancia de Discourse de origen. - Haga clic en el botón Backup (Copia de seguridad) para crear una copia de seguridad:
- Cuando se le pida, confirme haciendo clic en Yes (Sí).
- 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.
- 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.
Antes de continuar, revise su archivo
app.ymlpara 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
Para restaurar la copia de seguridad a través de la línea de comandos, consulte la documentación pertinente.
- Inicie sesión como administrador en su instancia de Discourse de destino.
- Navegue a
/admin/backups/settingsy active la configuraciónallow restore(permitir restauración). - Vaya a
/admin/backupsy 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):
- 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):
- 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
- Inicie sesión en su instancia de Discourse de destino con sus credenciales de administrador.
- 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).
- Vuelva a activar cualquier configuración opcional editando el archivo
app.ymly 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 httpstemporalmente ejecutando:SiteSetting.force_https = false



