开发环境:在没有电子邮件的情况下引导第一个管理员账户的推荐方法是什么?

我一直在试验 discourse/discourse_dev Docker 镜像(在 Windows 11 笔记本电脑上),并注意到开发者工作流程中存在一个小摩擦点。

当在没有配置出站邮件的情况下以开发模式运行 Discourse 时:
1. 你可以通过 Ember CLI (localhost:4200) 访问注册/登录页面。
2. 你可以创建一个用户账户。
3. 但由于需要邮件确认,登录被阻止。

解决方法似乎是在 Rails 控制台中手动激活账户,例如:

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

这可行,但我很想知道:

在未配置邮件的情况下,是否有推荐的开发者工作流程来引导第一个管理员账户?

例如:
• 开发者通常也应该在开发环境中配置 SMTP 吗?
• 是否有用于此目的的辅助任务(rake admin:create 等)?
• 开发容器是否应该允许在没有邮件确认的情况下进行首次用户登录?

我提出这个问题主要是为了记录一个更顺畅的设置流程,供试验开发容器的新开发者使用。

是的,有:

2 个赞

谢谢!这样就解决了——我在试验 discourse_dev 容器时没有遇到 bin/rails admin:create

最初让我困惑的是,正常的 UI 注册流程可以进行到创建账户的步骤,但如果未配置 SMTP,登录会被邮件确认阻止。

对于只是探索开发环境的人来说,这会让人觉得登录流程已损坏,除非他们知道这个辅助任务。

开发设置文档 中明确提及 bin/rails admin:create 可能对使用 Docker 开发容器有帮助,因为新贡献者通常没有配置 SMTP。

我不确定那份指南中是否需要它,因为它写着

所以创建管理员用户似乎已经是工作流程的一部分了

1 个赞

如果在您的开发环境中确实需要电子邮件访问权限,您也可以运行 MailHog。

您所需要做的就是在您的 Discourse 目录中打开一个新的命令行并运行 mailhog。然后,如果您访问 localhost:8025,您可以看到通常会被发送出去的电子邮件,无需配置任何内容。

2 个赞