Não é possível fazer login após restaurar um backup do Discourse em um novo servidor

Olá,

Recuperei um backup do Discourse em uma nova VM.
A própria recuperação parece ter funcionado. Vejo a interface gráfica de inicialização correta.

Ao tentar fazer login, recebo um erro desconhecido:

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)

Você tem alguma ideia de como resolver esse problema?

Atenciosamente,

I.

tente redefinir sua senha

Tentei, mas não funcionou, no entanto…

Acho que as mensagens de e-mail foram desativadas na instalação antiga (eu recuperei o backup dela).

Eu.

Tente verificar se o force_https está habilitado usando o console

SiteSetting.force_https

Se for falso, defina-o como verdadeiro

SiteSetting.force_https = true

1 curtida

Você quer dizer dentro do container Docker ou no bash da VM?

Dentro do Docker. Faça isso na sua VM

cd /var/discourse/
./launcher enter app
rails c

Obrigado, no entanto já estava “true”:

image

Talvez precise ser definido como false (eu não tenho um certificado) OU precisamos usar o domínio correto. (ainda não está “CNAMEd”)

O HTTPS não está ativado no arquivo YAML.

Por que não? O Let’s Encrypt fornece um gratuitamente.

Se você está tentando usar um IP sem um nome de host, esse é o seu problema. Você deve usar um nome de host.

Se você não estiver usando HTTPS, então deve ser definido como false de fato.

O domínio do sistema “produtivo” é “https://deinbalkonnetz.de” (hospedado @discourse.). Migramos isso para uma VM interna, mantendo o domínio “discourse.itas-karlsruhe.de”. Este domínio (sem suporte a HTTPS) ainda é usado no app.yml.

Qual é a ordem correta para migrar o Discourse?

#1 redirecionar o domínio produtivo para a VM?
#2 alterar o app.yml para o domínio final E ativar o Let’s Encrypt ao mesmo tempo?

Por favor, confirme!

Obrigado.

I.

Se você está saindo da hospedagem do discourse.org, primeiro cancela sua assinatura para que os uploads sejam incluídos no seu backup. Caso contrário, seu backup apenas apontará para os uploads no S3/CDN deles.

Recomendo que você faça seus testes em um servidor com um IP público ou, pelo menos, com um certificado HTTPS válido (o que é mais difícil de configurar em um IP privado).

Quando estiver pronto para migrar, precisará alterar o DNS do seu servidor e recriar para obter o certificado do Let’s Encrypt, então você ficará em um período de espera enquanto o DNS for propagado.

Ok. Muito obrigado.

Se você estiver saindo da hospedagem do discourse.org, deve cancelar sua assinatura primeiro para que os uploads sejam incluídos no seu backup. Caso contrário, seu backup apenas apontará para os uploads na S3/CDN deles.

Solicitei um novo backup…

Recomendo que você faça seus testes em um servidor com um IP público ou, pelo menos, com um certificado HTTPS válido (o que é mais difícil de configurar em um IP privado).

Vou desativar o HTTPS em “rail c” apenas para conseguir fazer login. Após o login, verificarei se o complemento Let’s Encrypt está ativado (ou se isso precisa ser feito via app.yml)? Se estiver ativado, vou ativar o HTTPS para o domínio temporário. Se tudo funcionar, redirecionaremos o domínio final para a VM e recriaremos o aplicativo com esse domínio.

Acho que esse é um roteiro adequado… certo?

Olá,

Após desativar o HTTPS com SiteSetting.force_https = false, o site ficou acessível e consegui fazer login como administrador do site.

Configurei o Let’s Encrypt seguindo os passos descritos:
(Set up HTTPS support with Let's Encrypt)

Após reconstruir o site, nada funcionou. Nenhum site estava acessível no navegador…

Existe alguma maneira de verificar o que deu errado?

Atenciosamente,

I.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.