Ethsim2
(Ethan )
1
我一直在试验 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 等)?
• 开发容器是否应该允许在没有邮件确认的情况下进行首次用户登录?
我提出这个问题主要是为了记录一个更顺畅的设置流程,供试验开发容器的新开发者使用。
Ethsim2
(Ethan )
3
谢谢!这样就解决了——我在试验 discourse_dev 容器时没有遇到 bin/rails admin:create。
最初让我困惑的是,正常的 UI 注册流程可以进行到创建账户的步骤,但如果未配置 SMTP,登录会被邮件确认阻止。
对于只是探索开发环境的人来说,这会让人觉得登录流程已损坏,除非他们知道这个辅助任务。
在 开发设置文档 中明确提及 bin/rails admin:create 可能对使用 Docker 开发容器有帮助,因为新贡献者通常没有配置 SMTP。
如果在您的开发环境中确实需要电子邮件访问权限,您也可以运行 MailHog。
您所需要做的就是在您的 Discourse 目录中打开一个新的命令行并运行 mailhog。然后,如果您访问 localhost:8025,您可以看到通常会被发送出去的电子邮件,无需配置任何内容。
Ethsim2
(Ethan )
6
谢谢两位,这说得通。
我认为区别在于,文档中记录的 d/boot_dev --init 流程已经会自动创建管理员用户,所以我之前的困惑源于在开发环境中随意尝试,而不是完整遵循该初始化流程。
MailHog 的提示也很有帮助。我之前没意识到开发环境可以通过 mailhog 和本地 localhost:8025 捕获确认邮件,这也解释了如果有人使用常规的注册/邮件确认流程时预期的工作流。
因此,更顺畅的理解模型似乎是:
- 对于标准的 Docker 开发环境,使用
d/boot_dev --init,并在提示时创建管理员账户。
- 如果要测试邮件/注册流程,请运行
mailhog,并在 localhost:8025 查看邮件。
- 如需单独操作,
bin/rails admin:create 是手动创建管理员账户的辅助命令。
这消除了我的困惑,谢谢。
还有一个小问题,在我探索开发 UI 时:垂直工具栏中的那些小图标按钮是做什么用的?我能在界面中看到它们,但不太确定它们是面向普通用户的控件、管理员快捷方式,还是开发/调试辅助工具。
Moin
7
这些?

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