Bloqueado fora do meu fórum após restauração

Tive alguns problemas durante a restauração do meu backup devido ao download .tar do macOS, mas consegui fazer funcionar. O site está no ar em forum.imaginerio.org com as postagens antigas e tudo mais, mas não consigo fazer login nem com a conta de administrador que configurei durante a implantação, nem com minhas credenciais antigas do fórum. No meu navegador, estou recebendo atualmente

Oops
O software que alimenta este fórum de discussão encontrou um problema inesperado. Pedimos desculpas pelo inconveniente.

Informações detalhadas sobre o erro foram registradas e uma notificação automática gerada. Daremos uma olhada nisso.

Nenhuma ação adicional é necessária. No entanto, se a condição de erro persistir, você pode fornecer detalhes adicionais, incluindo etapas para reproduzir o erro, postando um tópico de discussão na categoria de feedback do site.

mas carrega em uma janela privada. Conectar com o Google retorna Algo deu errado, talvez este e-mail já tenha sido usado, conectar com o Github retorna o erro acima. Tentei o link “esqueci minha senha”, mas nenhum e-mail chega, enquanto o e-mail de teste enviado pelo discourse-doctor chega com sucesso.

Existem logs que posso verificar ou outras operações a serem realizadas no contêiner em execução?

Esta era anteriormente uma instância hospedada da qual baixei um backup e agora estou hospedando-a por conta própria, não tenho certeza se isso pode estar relacionado.

Depois de pensar um pouco, cheguei à conclusão de que é porque nunca configurei o login do Google/Github na minha instância auto-hospedada, alguém pode confirmar? Se sim, isso é factível via console?

Você teria um erro diferente, não este.

Na verdade, funciona para mim:

assim como o github.

Eu recomendo usar o login de backdoor do administrador e, em seguida, verificar /logs para mais detalhes sobre o erro.

4 curtidas

Obrigado, Michael. Consigo chegar ao mesmo ponto que você, mas se você realmente tentar criar uma conta, ele dirá que algo deu errado e talvez este e-mail já esteja registrado (o que não é o caso). Tentei o login de backdoor e, embora diga ‘e-mail enviado’, nada chega à minha caixa de entrada (novamente, o e-mail de teste do discourse-doctor chega). Lembro-me de ter desativado os e-mails para não membros da equipe por algum motivo, mas o e-mail que estou usando é definitivamente da equipe.

Ainda não cancelei minha assinatura. Se isso puder ser resolvido com uma conta de administrador e configurações novas/diferentes, você acha que o suporte ao cliente poderia me ajudar?

Podemos ajudá-lo com e-mail em um site hospedado, mas não em um auto-hospedado.

Você pode tentar usar rake admin:create do contêiner para criar uma nova conta de administrador e fazer login nela em vez disso.

3 curtidas

Este fórum foi restaurado de um site hospedado, para o qual a assinatura ainda está ativa. O hospedado não é publicamente acessível, pois estou usando o mesmo domínio, mas suponho que ainda esteja em execução? Estou sugerindo isso com base na sensação de que estou bloqueado devido a uma configuração incorreta que poderia ser revertida, e então exportar e restaurar um novo backup.

Isso parece que quase funcionou. Consegui criar a conta de administrador, mas ao tentar fazer login aparece ‘erro desconhecido’ (e 500 no console). Tentei pedir um link de login e o e-mail chegou com sucesso, mas novamente:

Você poderá verificar os logs do Rails no contêiner (/shared/logs/rails) para obter detalhes sobre o erro.

1 curtida

Encontrei um monte desses em production.log:

Parameters: {"slug"=>"en-narratives-about", "topic_id"=>"96"}
Completed 500 Internal Server Error in 23ms (ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)
Started GET "/t/en-narratives-about/96.json" for 34.127.96.150 at 2025-01-24 19:47:25 +0000
Processing by TopicsController#show as JSON

Este slug também aparece em nginx/access.log:

[24/Jan/2025:20:10:19 +0000] "forum.imaginerio.org" 179.210.195.226 "POST /message-bus/a6ddfc6d2e3c4937b5eaa52ea8fdce33/poll?dlp=t HTTP/2.0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" "-" 200 424 "https://forum.imaginerio.org/session/email-login/36ac7e1c52851f1b5c76894b04fd3c4d" 0.009 0.009 "-" "-" "-" "-" "-" "-" "-"
[24/Jan/2025:20:10:20 +0000] "forum.imaginerio.org" 34.127.96.150 "GET /t/en-narratives-about/96.json HTTP/1.1" "axios/0.21.1" "-" 500 295 "-" 0.041 0.041 "-" "-" "-" "-" "-" "-" "-"
[24/Jan/2025:20:10:23 +0000] "forum.imaginerio.org" 179.210.195.226 "POST /message-bus/d2157f777d0847eb882e0f68ab50a5f2/poll?dlp=t HTTP/2.0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" "-" 200 424 "https://forum.imaginerio.org/" 0.005 0.005 "-" "-" "-" "-" "-" "-" "-"
[24/Jan/2025:20:10:25 +0000] "forum.imaginerio.org" 34.127.96.150 "GET /t/en-narratives-about/96.json HTTP/1.1" "axios/0.21.1" "-" 500 295 "-" 0.043 0.043 "-" "-" "-" "-" "-" "-" "-"

Nada muito notável além disso, exceto talvez a confirmação do meu admin:create em /log/var-log:

2025-01-24T19:20:57.703680+00:00 ip-172-26-4-15-app sudo: root : TTY=pts/1 ; PWD=/var/www/discourse ; USER=discourse ; COMMAND=/usr/local/bin/bundle exec bin/rake admin:create
2025-01-24T19:20:57.704316+00:00 ip-172-26-4-15-app sudo: pam_limits(sudo:session): Could not set limit for 'core' to soft=-1, hard=-1: Operation not permitted; uid=0,euid=0
2025-01-24T19:20:57.704421+00:00 ip-172-26-4-15-app sudo: pam_unix(sudo:session): session opened for user discourse(uid=1000) by (uid=0)
2025-01-24T19:21:59.096268+00:00 ip-172-26-4-15-app sudo: pam_unix(sudo:session): session closed for user discourse
2025-01-24T19:25:01.326841+00:00 ip-172-26-4-15-app CRON[116983]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
2025-01-24T19:25:01.340674+00:00 ip-172-26-4-15-app CRON[116983]: pam_unix(cron:session): session closed for user root

Navigating to the slug I see a not found error:

{
  "errors": [
    "A URL ou recurso pedido não pôde ser encontrada."
  ],
  "error_type": "not_found",
  "extras": {
    "title": "Página não encontrada",
    "html": "\n\n\n\n<div>\n  <h1 class=\"title\">Oops! Essa página não existe ou é privada.</h1>\n\n    <a href=\"/login\" class='btn btn-primary'>\n  <svg class=\"fa d-icon svg-icon svg-node\" aria-hidden=\"true\">\n  <svg id=\"user\" viewBox=\"0 0 448 512\">\n  <path d=\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z\"/>\n</svg></svg>\nEntrar</a>\n\n</div>\n\n\n\n<div class=\"row page-not-found-topics\">\n    <div class=\"recent-topics\">\n      <h2 class=\"recent-topics-title\">Recente</h2>\n        <div class='not-found-topic'>\n          <a href=\"/t/topografia-do-rio-antigo-heightmap/152\">Topografia do Rio antigo (Heightmap)</a><a class='badge-category__wrapper ' href='/c/imaginerio/9'><span data-category-id='9' style='--category-badge-color: #25AAE2; --category-badge-text-color: #FFFFFF;' data-drop-close='true' class='badge-category ' title='Aqui você pode conversar sobre o imagineRio.'><span class='badge-category__name'>imagineRio</span></span></a>\n        </div>\n        <div class='not-found-topic'>\n          <a href=\"/t/titulo-e-localizacao-nao-correspondem/149\">Título e Localização não correspondem</a><a class='badge-category__wrapper ' href='/c/imaginerio/9'><span data-category-id='9' style='--category-badge-color: #25AAE2; --category-badge-text-color: #FFFFFF;' data-drop-close='true' class='badge-category ' title='Aqui você pode conversar sobre o imagineRio.'><span class='badge-category__name'>imagineRio</span></span></a>\n        </div>\n        <div class='not-found-topic'>\n          <a href=\"/t/imagens-que-nao-correspondem-a-localizacao-no-mapa/148\">Imagens que não correspondem a localização no mapa</a><a class='badge-category__wrapper ' href='/c/features/12'><span data-category-id='12' style='--category-badge-color: #0088CC; --category-badge-text-color: #FFFFFF;' data-drop-close='true' class='badge-category ' title='Você gostaria de mais opções no nosso mapa? Crie um novo tópico e preencha os dados solicitados para sugerir uma melhoria.'><span class='badge-category__name'>Sugerir melhoria</span></span></a>\n        </div>\n        <div class='not-found-topic'>\n          <a href=\"/t/problema-no-login/143\">Problema no Login</a><a class='badge-category__wrapper ' href='/c/bugs/10'><span data-category-id='10' style='--category-badge-color: #0E76BD; --category-badge-text-color: #FFFFFF;' data-drop-close='true' class='badge-category ' title='Você encontrou algum problema no nosso mapa? Crie um novo tópico e preencha os dados solicitados para relatar um problema.'><span class='badge-category__name'>Reportar problema</span></span></a>\n        </div>\n        <div class='not-found-topic'>\n          <a href=\"/t/add-the-complete-collection-of-jean-baptiste-debret/134\">Add the complete collection of Jean-Baptiste Debret</a><a class='badge-category__wrapper ' href='/c/features/12'><span data-category-id='12' style='--category-badge-color: #0088CC; --category-badge-text-color: #FFFFFF;' data-drop-close='true' class='badge-category ' title='Você gostaria de mais opções no nosso mapa? Crie um novo tópico e preencha os dados solicitados para sugerir uma melhoria.'><span class='badge-category__name'>Sugerir melhoria</span></span></a>\n        </div>\n        <div class='not-found-topic'>\n          <a href=\"/t/publicacao-de-conteudo-do-youtube/131\">Publicação de conteúdo do Youtube</a><a class='badge-category__wrapper ' href='/c/features/12'><span data-category-id='12' style='--category-badge-color: #0088CC; --category-badge-text-color: #FFFFFF;' data-drop-close='true' class='badge-category ' title='Você gostaria de mais opções no nosso mapa? Crie um novo tópico e preencha os dados solicitados para sugerir uma melhoria.'><span class='badge-category__name'>Sugerir melhoria</span></span></a>\n        </div>\n        <div class='not-found-topic'>\n          <a href=\"/t/bug-na-marcacao-nos-mapas/130\">Bug na marcação nos mapas</a><a class='badge-category__wrapper ' href='/c/bugs/10'><span data-category-id='10' style='--category-badge-color: #0E76BD; --category-badge-text-color: #FFFFFF;' data-drop-close='true' class='badge-category ' title='Você encontrou algum problema no nosso mapa? Crie um novo tópico e preencha os dados solicitados para relatar um problema.'><span class='badge-category__name'>Reportar problema</span></span></a>\n        </div>\n        <div class='not-found-topic'>\n          <a href=\"/t/copiar-colar-a-posicao-do-mapa/129\">Copiar/colar a posição do mapa</a><a class='badge-category__wrapper ' href='/c/features/12'><span data-category-id='12' style='--category-badge-color: #0088CC; --category-badge-text-color: #FFFFFF;' data-drop-close='true' class='badge-category ' title='Você gostaria de mais opções no nosso mapa? Crie um novo tópico e preencha os dados solicitados para sugerir uma melhoria.'><span class='badge-category__name'>Sugerir melhoria</span></span></a>\n        </div>\n        <div class='not-found-topic'>\n          <a href=\"/t/technical-issue-with-image-server/128\">Technical issue with image server</a><a class='badge-category__wrapper ' href='/c/bugs/10'><span data-category-id='10' style='--category-badge-color: #0E76BD; --category-badge-text-color: #FFFFFF;' data-drop-close='true' class='badge-category ' title='Você encontrou algum problema no nosso mapa? Crie um novo tópico e preencha os dados solicitados para relatar um problema.'><span class='badge-category__name'>Reportar problema</span></span></a>\n        </div>\n        <div class='not-found-topic'>\n          <a href=\"/t/narrativas-problemas-de-acesso-a-plataforma/125\">Narrativas: Problemas de acesso à plataforma</a><a class='badge-category__wrapper ' href='/c/bugs/10'><span data-category-id='10' style='--category-badge-color: #0E76BD; --category-badge-text-color: #FFFFFF;' data-drop-close='true' class='badge-category ' title='Você encontrou algum problema no nosso mapa? Crie um novo tópico e preencha os dados solicitados para relatar um problema.'><span class='badge-category__name'>Reportar problema</span></span></a>\n        </div>\n      <a href=\"/latest\" class=\"btn btn-default\">Mais&hellip;</a>\n    </div>\n</div>\n\n\n  <div class=\"row\">\n    <div class=\"page-not-found-search\">\n      <form action='/search' id='discourse-search'>\n        <label for=\"search-input\">Pesquisar neste site</label>\n        <input type=\"text\" id=\"search-input\" name=\"q\" value=\"en narratives about\">\n        <button class=\"btn btn-primary\">Pesquisar</button>\n      </form>\n    </div>\n  </div>\n\n  <script defer src=\"/assets/onpopstate-handler-1ea3e951679a33d36b6c5f2f8d98016e9908c4af9110736a24b159542c83a9b8.js\" data-discourse-entrypoint=\"onpopstate-handler\" nonce=\"bJfYSa08sEXVGC4MEMEU13WAq\"></script>\n\n",
    "group": null
  }
}

Sim. Algo está definitivamente errado com a criação de usuários. Parece que vai ser difícil descobrir. Mas nesses logs, você quer procurar os logs que acontecem quando você tenta fazer login. Você está procurando por um que tenha o caminho /login em vez de /t/en-narratives-about/96.json.

Se você quiser suporte pago para seu site auto-hospedado, pode entrar em contato comigo diretamente, por PM ou minhas informações de contato estão no meu perfil.

1 curtida

Obrigado por me ajudar a navegar nisso. Minha tentativa de login após criar o usuário administrador com rake admin:create parece com

Started GET "/session/passkey/challenge.json" for 179.210.195.226 at 2025-01-24 21:13:59 +0000
Processing by SessionController#passkey_challenge as JSON
Completed 200 OK in 4ms (Views: 0.2ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 2.0ms)
Started GET "/t/en-narratives-about/96.json" for 34.127.96.150 at 2025-01-24 21:14:00 +0000
Processing by TopicsController#show as JSON
  Parameters: {"slug"=>"en-narratives-about", "topic_id"=>"96"}
Completed 500 Internal Server Error in 35ms (ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.7ms)
Started POST "/session" for 179.210.195.226 at 2025-01-24 21:14:05 +0000
Processing by SessionController#create as */*
  Parameters: {"login"=>"martim", "password"=>"[FILTERED]", "second_factor_method"=>"1", "timezone"=>"America/Sao_Paulo"}
Started GET "/t/en-narratives-about/96.json" for 34.127.96.150 at 2025-01-24 21:14:06 +0000
Processing by TopicsController#show as JSON
  Parameters: {"slug"=>"en-narratives-about", "topic_id"=>"96"}
Completed 200 OK in 195ms (Views: 0.1ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 4.3ms)

Também posso ver suas tentativas:

Started GET "/session/hp.json" for 174.50.213.142 at 2025-01-24 20:58:53 +0000
Processing by SessionController#get_honeypot_value as JSON
Completed 200 OK in 5ms (Views: 0.2ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)
Started GET "/u/check_username?username=Jay_Pfaffman&email=jay%40literatecomputing.com" for 174.50.213.142 at 2025-01-24 20:58:53 +0000
Processing by UsersController#check_username as JSON
  Parameters: {"username"=>"Jay_Pfaffman", "email"=>"jay@literatecomputing.com"}
Completed 200 OK in 4ms (Views: 0.2ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)

Antes disso, vejo ocorrências de

Started GET "/session/email-login/36ac7e1c52851f1b5c76894b04fd3c4d.json" for 31.186.166.197 at 2025-01-24 20:23:25 +0000
Processing by SessionController#email_login_info as JSON
  Parameters: {"token"=>"36ac7e1c52851f1b5c76894b04fd3c4d"}
Completed 200 OK in 6ms (Views: 0.1ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)

e

Started GET "/session/hp.json" for 174.50.213.142 at 2025-01-24 21:02:05 +0000
Processing by SessionController#get_honeypot_value as JSON
Completed 200 OK in 2ms (Views: 0.1ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)

Você acha que uma nova instalação + alguma configuração pode ajudar aqui? Restaurei o backup assim que o fórum ficou online.

Não tenho certeza do que se trata. Você configurou uma chave de acesso para o seu usuário? Você tem autenticação de 2 fatores em sua conta? É obrigatório?

Eu simplesmente não sei. Suponho que você possa apagar seu banco de dados e ver se a criação de contas e os logins funcionam em uma instalação limpa. Isso permitiria saber se é um problema com sua instalação ou com seu banco de dados.

Algo como

cd /var/discourse
./launcher stop app
rm -rf shared/standalone/postgres*
./launcher rebuild app

E então veja se você consegue criar uma conta, receber e-mail e se os logins funcionam.

Às vezes, é necessário instalar quaisquer plugins que estavam instalados no sistema de onde você veio.

você verificou production_errors.log?

Parecem estar vazios.

Provavelmente tentarei uma instalação limpa amanhã, agora que peguei o jeito deve ser bem simples. Fico pensando nisso, no entanto:

Os únicos 500 que encontrei nos logs estão relacionados aos GETs de “/t/en-narratives-about/96.json”. Não há como eles estarem atrapalhando? Talvez deletar isso do banco de dados para que não seja chamado?

Eu entendo que a criação de usuários está quebrada, mas o admin criado com rake admin:create parece estar ‘funcionando’…

Tente ir para https://yoursitedomain/u/admin-login e ativar o modo de segurança antes de enviar o e-mail. Isso desativará todos os plugins e permitirá que você faça login para corrigir seu plugin. Funciona para oauth também.

1 curtida

Obrigado, tentei isso e recebi o mesmo pop-up de erro 500 acima… Os logs desta tentativa são

Started GET "/session/email-login/058db4bbc47396be096cf7bed508c23e?safe_mode=no_plugins,no_themes" for 179.210.195.226 at 2025-01-27 13:04:30 +0000
Processing by SessionController#email_login_info as HTML
  Parameters: {"safe_mode"=>"no_plugins,no_themes", "token"=>"058db4bbc47396be096cf7bed508c23e"}
  Rendered layout layouts/application.html.erb (Duration: 54.6ms | GC: 1.2ms)
Completed 200 OK in 62ms (Views: 56.0ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 1.2ms)
Started GET "/svg-sprite/forum.imaginerio.org/svg--ebd30ca654fdbd40604e7a7f5127b1bce16eb12b.js" for 179.210.195.226 at 2025-01-27 13:04:30 +0000
Processing by SvgSpriteController#show as */*
  Parameters: {"hostname"=>"forum.imaginerio.org", "theme_id"=>"", "version"=>"ebd30ca654fdbd40604e7a7f5127b1bce16eb12b"}
Completed 200 OK in 5ms (Views: 0.5ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)
Started GET "/session/email-login/058db4bbc47396be096cf7bed508c23e.json" for 179.210.195.226 at 2025-01-27 13:04:30 +0000
Processing by SessionController#email_login_info as JSON
  Parameters: {"token"=>"058db4bbc47396be096cf7bed508c23e"}
Completed 200 OK in 253ms (Views: 0.2ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.7ms)
Started GET "/session/csrf" for 179.210.195.226 at 2025-01-27 13:04:34 +0000
Processing by SessionController#csrf as JSON
Completed 200 OK in 5ms (Views: 1.1ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)
Started POST "/session/email-login/058db4bbc47396be096cf7bed508c23e" for 179.210.195.226 at 2025-01-27 13:04:34 +0000
Processing by SessionController#email_login as */*
  Parameters: {"second_factor_method"=>"1", "timezone"=>"America/Sao_Paulo", "token"=>"058db4bbc47396be096cf7bed508c23e"}
Completed 500 Internal Server Error in 182ms (ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 1.4ms)

Parece que o que está falhando é o SessionController#email_login com “second_factor_method”=>“1”?

Acabei de tentar isso e consigo criar novas contas com sucesso. Parece que a restauração do backup foi o que estragou o login. Meu .tar->.tar.gz pode ter corrompido algo? Configurar o OAuth antes de restaurar faria alguma diferença, ou ele é substituído pela restauração?

Você tem a configuração do sistema que exige o segundo fator ativado?

Tenho Impor segundo fator em autenticação externa ativado e Impor segundo fator desativado:

O texto é um pouco confuso para mim, para ser honesto. Diz que isso exigirá que os usuários usem autentificação de dois fatores, mas também que os usuários que têm autentificação de dois fatores habilitada serão impedidos de fazer login usando autentificação externa? Então, essencialmente, restringe o login a contas do fórum e desabilita as externas?

Parece que eu resolvi. Eu tinha o e-mail desativado para membros que não são da equipe, mudar isso via SiteSetting.disable_emails = \"no\" parece ter resolvido o problema! Obrigado a todos pelo apoio, ainda não tenho certeza por que isso estava causando todo o caos (eu recebi um e-mail ao criar um administrador via console, e não tenho certeza por que desativar e-mails afetaria o login de um usuário registrado), mas tudo está bem agora :slight_smile:

2 curtidas