Restaurando el foro en un nuevo servidor

Para los diversos servicios de producción que ejecuto (sitios de WordPress, etc.), me gusta tener un segundo sitio, un “espejo”, además del sitio de producción. Por ejemplo, podría tener www.midominio.com y también espejo.midominio.com. Este último se crea clonando el sitio de producción y luego desactivando algunos procesos que no necesitan ejecutarse.

Me gustaría hacer lo mismo con mi foro. Según entiendo, la función de restauración es “todo en uno”: no solo restaura los datos (temas, etc.), sino también toda la configuración. Esto me deja con dos problemas que me gustaría comprender mejor.

  1. Utilizo SSO de WordPress. Una vez completada la restauración, quiero que el sitio de Discourse en espejo-foro.midominio.com apunte a espejo.midominio.com como fuente de inicio de sesión. ¿Cómo podría modificar el sitio del foro en espejo (un círculo vicioso, por supuesto: tras la restauración y el inicio de sesión, el sitio en espejo presumiblemente seguiría apuntando al sitio de producción)?

  2. Quiero estar 100 % seguro de que no se envíen correos electrónicos desde el sitio del foro en espejo. De nuevo, si restouro en el sitio del foro en espejo, ¿asumo que todas las tareas programadas del sitio de producción (envío de correos electrónicos de resumen a los usuarios, etc.) también se programarán, ¿verdad? ¿Cómo puedo evitarlo? ¿Existe una ubicación central para desactivar TODOS los correos electrónicos desde ese servidor?

¿Cómo podría abordar esto?

Gracias.

Echa un vistazo a Syncing Production to Staging

especialmente Eso suena como un buen enfoque

Aquí hay un script que usamos para mantener un sitio de staging espejado con el sitio de producción.

#!/bin/bash
echo "cd /var/www/discourse"
cd /var/www/discourse

echo "/usr/local/bin/rake site_settings:export > /var/www/discourse/settings.yml"
/usr/local/bin/rake site_settings:export >  /var/www/discourse/settings.yml

echo "cd /var/www/discourse/public/backups/default"
cd /var/www/discourse/public/backups/default

echo "/usr/local/bin/discourse restore " $(ls -r | head -1)
/usr/local/bin/discourse restore $(ls -r | head -1)

echo "cd /var/www/discourse"
cd /var/www/discourse

echo "/usr/local/bin/rake site_settings:import <  /var/www/discourse/settings.yml"
/usr/local/bin/rake site_settings:import <  /var/www/discourse/settings.yml

Se llama desde docker.

Ejemplo de cómo llamar a un script desde fuera de la instancia de discourse:

echo 'cd /var/www/discourse; RUBY_ENV=production rails r /var/www/discourse/script/import_scripts/wordpress-with-sabai-export.rb /var/www/discourse/script/import_scripts/wordpress-discourse-id-map.json' | docker exec -i $(docker ps | grep app | awk '{print $1}') /bin/bash

Establece la configuración “deshabilitar correo electrónico” del sitio reflejado en “sí”.

https://{fully-qualiified-domain-name}/admin/site_settings/category/email?filter=disable%20email

Sí, desactiva los correos electrónicos desde la configuración de tu sitio. O puedes configurar los correos electrónicos solo para el personal, lo cual a veces es útil.

¡Excelente trabajo, todos! Esto parece darme todo lo que necesito. Gracias.