Ambiente de desenvolvimento: maneira recomendada de iniciar a primeira conta de administrador sem e-mail?

Tenho experimentado com a imagem Docker discourse/discourse_dev (em um laptop com Windows 11) e notei um pequeno ponto de atrito no fluxo de trabalho do desenvolvedor.

Ao rodar o Discourse em modo de desenvolvimento sem configurar e-mail de saída:
\t1.\tVocê pode acessar a página de inscrição/login via Ember CLI (localhost:4200).
\t2.\tVocê pode criar uma conta de usuário.
\t3.\tMas o login é bloqueado porque a confirmação de e-mail é necessária.

A solução alternativa parece ser ativar manualmente a conta no console do Rails, por exemplo:

u = User.find_by(username: "admin")
u.approved = true
u.email_tokens.update_all(confirmed: true, expired: true)
u.save!

Isso funciona, mas eu me perguntava:

Existe um fluxo de trabalho de desenvolvimento recomendado para inicializar a primeira conta de administrador quando o e-mail não está configurado?

Por exemplo:
\t•\tOs desenvolvedores normalmente deveriam configurar SMTP mesmo em desenvolvimento?
\t•\tExiste uma tarefa auxiliar para isso (rake admin:create, etc.)?
\t•\tFaria sentido para o contêiner de desenvolvimento permitir o login do primeiro usuário sem confirmação de e-mail?

Estou perguntando principalmente para documentar um processo de configuração mais suave para novos desenvolvedores que estão experimentando com o contêiner de desenvolvimento.

Sim, existe:

Obrigado! Isso resolveu o problema — eu não tinha encontrado o bin/rails admin:create ao experimentar com o contêiner discourse_dev.

O que inicialmente me confundiu foi que o fluxo de cadastro normal da interface do usuário funciona até o ponto de criação da conta, mas o login é bloqueado pela confirmação de e-mail se o SMTP não estiver configurado.

Para alguém apenas explorando o ambiente de desenvolvimento, isso faz parecer que o fluxo de login está quebrado, a menos que se saiba sobre a tarefa auxiliar.

Pode ser útil mencionar o bin/rails admin:create explicitamente na documentação de configuração de desenvolvimento para o contêiner de desenvolvimento do Docker, já que novos colaboradores geralmente não terão o SMTP configurado.

Eu não tenho certeza se é necessário naquele guia porque diz

Então, a criação do usuário administrador parece fazer parte do fluxo de trabalho

Se você precisar de acesso a e-mails em seu ambiente de desenvolvimento, você também pode executar o mailhog.

Tudo o que você precisa fazer é abrir um novo terminal no seu diretório Discourse e executar mailhog. Então, se você visitar localhost:8025, poderá ver os e-mails que normalmente seriam enviados, sem necessidade de configurar nada.

Obrigado a ambos — faz sentido.

Acho que a distinção é que o caminho documentado d/boot_dev --init já cria o usuário administrador, então minha confusão veio de experimentar o ambiente de desenvolvimento em vez de seguir exatamente esse fluxo de inicialização do início ao fim.

A dica sobre o MailHog também foi útil. Não tinha percebido que a configuração de desenvolvimento podia capturar os e-mails de confirmação localmente via mailhog e localhost:8025, o que explica o fluxo de trabalho pretendido caso alguém use o caminho normal de cadastro/confirmação por e-mail.


Então, o modelo mental mais suave parece ser:

  1. Para a configuração padrão de desenvolvimento com Docker, use d/boot_dev --init e crie a conta de administrador quando solicitado.
  2. Se estiver testando fluxos de e-mail/cadastro, execute o mailhog e visualize as mensagens em localhost:8025.
  3. Se necessário, de forma separada, bin/rails admin:create é o auxiliar manual para criar uma conta de administrador.

Isso esclareceu a confusão — obrigado.


Uma pequena pergunta separada enquanto estou explorando a interface de desenvolvimento: para que servem os pequenos botões com ícones na barra de ferramentas vertical? Consigo vê-los na interface, mas não tenho certeza imediata se são controles normais voltados ao usuário, atalhos de administrador ou ajudas de desenvolvimento/debug.

Aqueles?
image

Essa é a barra de ferramentas de desenvolvedor. Você pode alternar o modo seguro, a localização detalhada e as mudanças futuras. Também é possível exibir as saídas e blocos de plugins.