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

我一直在试验 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 等)?
• 开发容器是否应该允许在没有邮件确认的情况下进行首次用户登录?

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

是的,有:

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

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

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

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

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

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

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

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

谢谢两位,这说得通。

我认为区别在于,文档中记录的 d/boot_dev --init 流程已经会自动创建管理员用户,所以我之前的困惑源于在开发环境中随意尝试,而不是完整遵循该初始化流程。

MailHog 的提示也很有帮助。我之前没意识到开发环境可以通过 mailhog 和本地 localhost:8025 捕获确认邮件,这也解释了如果有人使用常规的注册/邮件确认流程时预期的工作流。


因此,更顺畅的理解模型似乎是:

  1. 对于标准的 Docker 开发环境,使用 d/boot_dev --init,并在提示时创建管理员账户。
  2. 如果要测试邮件/注册流程,请运行 mailhog,并在 localhost:8025 查看邮件。
  3. 如需单独操作,bin/rails admin:create 是手动创建管理员账户的辅助命令。

这消除了我的困惑,谢谢。


还有一个小问题,在我探索开发 UI 时:垂直工具栏中的那些小图标按钮是做什么用的?我能在界面中看到它们,但不太确定它们是面向普通用户的控件、管理员快捷方式,还是开发/调试辅助工具。

这些?
image

这是开发者工具栏。你可以切换安全模式、详细本地化以及即将进行的更改。你还可以显示插件出口和区块。