J’ai restauré une sauvegarde Discourse sur une nouvelle machine virtuelle (VM).
La restauration elle-même semble fonctionner. Je vois l’interface graphique de démarrage correcte.
Cependant, lorsque j’essaie de me connecter, je reçois une erreur inconnue :
Processing by UsersController#create as */*
Parameters: {"name"=>"Istvan XXXXXXX", "email"=>"istvan.XXXXXXXX@mailbox.org", "password"=>"[FILTERED]", "username"
=>"Istvan", "password_confirmation"=>"[FILTERED]", "challenge"=>"6662a14f4549a786ed0f37XXXXXX", "timezone"=>"Eur
ope/Berlin"}
Filter chain halted as :respond_to_suspicious_request rendered or redirected
Completed 200 OK in 3ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 1007)
Started POST "/login" for 172.17.0.1 at 2021-10-13 13:37:31 +0000
Processing by StaticController#enter as HTML
Parameters: {"username"=>"Istvan", "password"=>"[FILTERED]", "redirect"=>"/u/account-created"}
Redirected to http://discourse.XXXXXXXXX/u/account-created
Completed 302 Found in 2ms (ActiveRecord: 0.0ms | Allocations: 512)
Started GET "/u/account-created" for 172.17.0.1 at 2021-10-13 13:37:31 +0000
Processing by UsersController#account_created as HTML
Rendered default/empty.html.erb within layouts/application (Duration: 0.1ms | Allocations: 11)
Rendered layout layouts/application.html.erb (Duration: 60.6ms | Allocations: 36879)
Completed 200 OK in 81ms (Views: 62.1ms | ActiveRecord: 0.0ms | Allocations: 39906)
Started GET "/session/csrf" for 172.17.0.1 at 2021-10-13 13:37:48 +0000
Processing by SessionController#csrf as JSON
Completed 200 OK in 4ms (Views: 2.0ms | Allocations: 602)
Started POST "/session" for 172.17.0.1 at 2021-10-13 13:37:48 +0000
Processing by SessionController#create as */*
Parameters: {"login"=>"Istvan", "password"=>"[FILTERED]", "second_factor_method"=>"1", "timezone"=>"Europe/Berlin"
}
Can't verify CSRF token authenticity.
Rendered text template (Duration: 0.0ms | Allocations: 1)
Filter chain halted as :verify_authenticity_token rendered or redirected
Completed 403 Forbidden in 5ms (Views: 0.7ms | Allocations: 897)
Le domaine du système « productif » est « https://deinbalkonnetz.de » (hébergé sur Discourse). Nous l’avons déplacé vers une machine virtuelle interne, qui conserve toujours le domaine « discourse.itas-karlsruhe.de ». Ce domaine (sans support HTTPS) est toujours utilisé dans app.yml.
Quelle est la bonne séquence pour déplacer Discourse ?
#1 Rediriger le domaine productif vers la machine virtuelle ? #2 Modifier app.yml pour utiliser le domaine final ET activer Let’s Encrypt en même temps ?
Si vous quittez l’hébergement de discourse.org, vous devez d’abord annuler votre abonnement afin que les fichiers uploadés soient inclus dans votre sauvegarde. Sinon, votre sauvegarde pointera simplement vers les fichiers hébergés sur leur S3/CDN.
Je vous recommande de réaliser vos tests sur un serveur disposant d’une adresse IP publique, ou à défaut d’un certificat HTTPS valide (ce qui est plus difficile à configurer sur une adresse IP privée).
Lorsque vous serez prêt à effectuer la migration, vous devrez modifier les enregistrements DNS de votre serveur et reconstruire l’instance pour obtenir un certificat Let’s Encrypt. Vous serez donc dans une période d’attente pendant la propagation des DNS.
Si vous quittez l’hébergement de discourse.org, vous devez d’abord annuler votre abonnement afin que les pièces jointes soient incluses dans votre sauvegarde. Sinon, votre sauvegarde contiendra simplement des liens vers les pièces jointes sur leur S3/CDN.
J’ai demandé une nouvelle sauvegarde…
Je vous recommande de faire vos tests sur un serveur disposant d’une adresse IP publique, ou à tout le moins d’un certificat HTTPS valide (ce qui est plus difficile à configurer sur une adresse IP privée).
Je vais désactiver HTTPS sur « rail c » juste pour pouvoir me connecter. Après la connexion, je vérifierai si l’extension Let’s Encrypt est activée (ou doit-elle être configurée via app.yml) ? Si elle est activée, j’activerai HTTPS pour le domaine temporaire. Si tout fonctionne, nous redirigerons le domaine final vers la VM et nous reconstruirons l’application avec ce domaine.
Je pense que c’est une feuille de route appropriée… n’est-ce pas ?
Après avoir désactivé HTTPS avec SiteSetting.force_https = false, le site est redevenu accessible et j’ai pu me connecter en tant qu’administrateur du site.