Restauration du forum sur un nouveau serveur

Pour les différents services de production que j’exécute (sites WordPress, etc.), j’aime avoir un deuxième site « miroir », en plus du site de production. Par exemple, je pourrais avoir www.mydomain.com et aussi mirror.mydomain.com. Ce dernier est créé en clonant le site de production, puis en désactivant quelques processus qui n’ont pas besoin de s’exécuter.

Je souhaiterais faire de même avec mon forum. À ma connaissance, la fonction de restauration est « tout-en-un » : elle restaure non seulement les données (sujets, etc.), mais aussi l’ensemble de la configuration. Cela me laisse avec deux problèmes que j’aimerais mieux comprendre.

  1. J’utilise l’authentification unique (SSO) de WordPress. Une fois la restauration terminée, je souhaite que le site Discourse mirror-forum.mydomain.com pointe vers mirror.mydomain.com comme source de connexion. Comment modifier le site forum miroir (cercle vicieux, bien sûr : après la restauration et la connexion, le site miroir pointerait vraisemblablement vers le site de production) ?

  2. Je veux être certain à 100 % qu’aucun e-mail n’est envoyé depuis le site forum miroir. Là encore, si je restaure sur le site forum miroir, je suppose que toutes les tâches planifiées du site de production (envoi d’e-mails de résumé aux utilisateurs, etc.) seront également planifiées, n’est-ce pas ? Comment éviter cela ? Existe-t-il un endroit central pour désactiver TOUS les e-mails provenant de ce serveur ?

Comment puis-je aborder cela ?

Merci.

Jetez un coup d’œil à Syncing Production to Staging

surtout Cela semble être une bonne approche

Voici un script que nous utilisons pour maintenir un site de préproduction en miroir du site de production.

#!/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

Il est appelé depuis Docker.

Exemple d’appel d’un script depuis l’extérieur de l’instance 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

Activez le paramètre de désactivation des e-mails du site miroir en le définissant sur « oui »

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

Oui, désactivez les e-mails dans les paramètres de votre site. Sinon, vous pouvez limiter les e-mails au seul personnel, ce qui est parfois utile.

Super travail, tout le monde. Cela semble me donner tout ce dont j’ai besoin. Merci.