Я восстановил резервную копию Discourse на новой виртуальной машине.
Сам процесс восстановления, похоже, прошел успешно. Я вижу правильный стартовый графический интерфейс.
Однако при попытке войти в систему я получаю неизвестную ошибку:
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)
Домен «продуктивной» системы — это «https://deinbalkonnetz.de» (размещена на @discourse.). Мы перенесли её на внутреннюю виртуальную машину, которая по-прежнему имеет домен «discourse.itas-karlsruhe.de». Этот домен (без поддержки HTTPS) всё ещё используется в файле app.yml.
Каков правильный порядок переноса Discourse?
#1 перенаправление продуктивного домена на виртуальную машину? #2 изменение app.yml на финальный домен И одновременная активация Let’s Encrypt?
Если вы переезжаете с хостинга discourse.org, сначала отмените подписку, чтобы загрузки были включены в вашу резервную копию. В противном случае ваша резервная копия будет просто указывать на загрузки на их S3/CDN.
Я рекомендую проводить тестирование на сервере с публичным IP-адресом или, как минимум, на сервере с действующим HTTPS-сертификатом (что сложнее настроить на приватном IP).
Когда вы будете готовы к переезду, вам нужно будет изменить DNS-записи для вашего сервера и выполнить пересборку для получения сертификата Let’s Encrypt, поэтому какое-то время вы будете находиться в подвешенном состоянии, пока DNS-записи обновятся.
Если вы переезжаете с хостинга discourse.org, сначала отмените подписку, чтобы загрузки были включены в резервную копию. Иначе ваша резервная копия будет просто ссылаться на загрузки на их S3/CDN.
Я запросил новую резервную копию…
Рекомендую проводить тестирование на сервере с публичным IP-адресом или хотя бы с валидным HTTPS-сертификатом (что сложнее настроить на приватном IP).
Я отключу HTTPS в «rail c», чтобы просто войти в систему. После входа проверю, активирован ли плагин Let’s Encrypt (или это нужно сделать через app.yml)? Если он активирован, я включу HTTPS для временного домена. Если всё сработает, мы перенаправим финальный домен на виртуальную машину и пересоберём приложение с этим доменом.