我在 Digital Ocean 中设置 Discourse 时遇到了以下错误消息,现在我的 Discourse 板块 wespenboard.com 无法加载。
您似乎在输入框中输入了 IP 地址而不是域名。方括号中的值是已有的值,因此对于您不打算更新的项,您可以按“Enter”键直接跳到下一项。
您应该可以通过运行以下命令来重启您的实例:
./launcher restart web_only
在 discourse set-up 的那部分,你应该可以直接按“回车”键跳到下一步,因为它已经知道上次的信息了。然后,当你遇到 SMTP 特定的部分时,你可以添加新信息来覆盖之前的内容。
但是它不支持 IP 地址,只支持域名。![]()
我只是想来问问你的进展如何。
已经搞定了吗?
感谢您的关注,Jammy。我有点慢,因为我还在搬到另一个国家。所以,我还没有尝试。
您建议我继续在控制台操作时,我已经退出了,所以我想我需要从主机名重新开始。另外,还是 discourse.example.com,对吧?
如果在过程中出现任何问题,对用户造成负面影响,例如,像上次一样 Discourse 宕机了,有没有一个“通用”的命令可以撤销我所做的操作,以便 Discourse 至少能像我开始使用控制台之前那样工作?只是想为自己留条后路 ![]()
没关系,我不着急。![]()
我将提供一个分步指南供您参考:
- 打开您的 Digital Ocean 控制台
cd /var/discourse./discourse-setup
然后它会问一系列问题。由于您的论坛已经运行,您会看到方括号中的值(例如 [discourse.example.com])会预先填入您现有的信息:
如果这些信息不需要更改,您只需按“回车”键即可进入下一个问题。
以下是它提出的问题:
您的 Discourse 的主机名? [discourse.example.com]:
管理员账户的电子邮件地址? [me@example.com,you@example.com]:
SMTP 服务器地址? [smtp.example.com]:
SMTP 端口? [587]:
SMTP 用户名? [user@example.com]:
SMTP 密码? [pa$$word]:
Let's Encrypt 账户电子邮件? (按 Enter 跳过) [me@example.com]:
可选的 Maxmind 许可证密钥 () [xxxxxxxxxxxxxxxx]:
您需要添加新信息的是 SMTP 相关项。SMTP 端口仍将是 587,因此您也可以直接按“回车”键。其他信息您需要从您的邮件提供商处获取(我认为是 sendinblue)。
输入所有信息后,它将有机会让您查看输入的内容,然后将使用新信息重建您的实例。一切顺利的话,这就完成了。![]()
如果由于某种原因(像昨天那样)不起作用,运行 ./launcher restart web_only 应该可以恢复您重建之前的版本。
从您之前的截图来看,您的服务器似乎也需要一些维护,但如果我们能先解决您的电子邮件问题,您可以告诉我您是否有兴趣进一步了解。![]()
![]()
这真是太有帮助了!谢谢你。我试过之后会尽快回来,无论成功与否,我都会告诉你 ![]()
letsencrypt 电子邮件似乎未被接受。
但要恢复旧的,您可以:
./launcher restart data
然后
./launcher restart web_only
它仍然不允许我。我需要先从控制台注销,然后运行 restart data,再运行 web_only 吗?
不确定这又是什么意思:“无法链接到未运行的容器:/data AS /web_only/data”
那些额外的 web_only 文件是我们更新它的两次尝试。它们会在清理过程中被清除(但请在您的网站运行起来之前不要运行清理,因为它会清除任何未主动附加到某项内容的东西
)。
我已经在测试站点上镜像了您的设置(两个容器和 sendinblue SMTP),试图更好地了解发生了什么。当我收到 Cannot link to a non running container: /data AS /web_only/data 消息时,重新启动数据容器,然后重新启动 web_only 容器对我来说是有效的。但我刚刚尝试以类似的方式重新运行 discourse-setup,以复制您的确切情况,以便更好地理解。
我可能应该说,单容器安装得到了更广泛的支持,所以如果这让您感到非常沮丧,另一个选择是创建一个新的 Digital Ocean 实例,并使用标准安装指南安装一个全新的实例。然后,您可以恢复备份,并希望在维护它时会更容易。
您可以执行
./launcher destroy web_only
./launcher start web_only
这将使您连接到数据容器。
如果您只想更改 smtp 设置,可以先用 nano 编辑 web_only.yml,然后执行上面的 destroy、start 序列。
我已退出控制台并打开了一个新的控制台,并按照您的说明操作,但仍然收到相同的错误消息:“无法链接到未运行的容器”。
有没有办法让我恢复到在控制台中设置 SMTP 之前的状态?我现在无法完成 Discourse 的全新设置。在我搬家的时候,这太令人沮丧了。
谢谢 Jammy。
谢天谢地,骑兵又来了。
我看到你们的网站现在又恢复了。![]()
@pfaffman 谢天谢地,那奏效了。谢谢 Jay!
我想我得等到下周末搬到新地方再说。现在最重要的是保持论坛正常运行。看起来人们仍然可以通过使用他们现有的 Google 密码来更改密码和注册论坛。所以,我们暂时就这么做。而且你昨天向我展示了如何使用 WinSCP 进行硬盘备份。所以,我想我们暂时就用这个方法。
再次感谢!
编辑:我说它奏效了,指的是网站已上线运行。我仍然需要尝试你提出的其他建议来直接更改 SMTP,但我可能会稍后进行。
我很难放弃,哈哈。Jay、Jammy 或其他人,你们能看出有什么不符之处吗?例如,我在 LETSENCRYPT_ACCOUNT_EMAIL: 后面输入了 OFF:不确定这是否正确……
## TODO: 用于验证新帐户和发送通知的 SMTP 邮件服务器
# 需要 SMTP 地址、用户名和密码
# 警告:SMTP 密码中的字符 '#' 可能会导致问题!
DISCOURSE_SMTP_ADDRESS: smtp-relay.sendinblue.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: wespenre2@gmail.com
DISCOURSE_SMTP_PASSWORD: "在此粘贴中已删除"
DISCOURSE_SMTP_ENABLE_START_TLS: false # (可选,默认为 true)
DISCOURSE_SMTP_DOMAIN: gmail.com
DISCOURSE_NOTIFICATION_EMAIL: wespenre2@gmail.com
## 如果您添加了 Let's Encrypt 模板,请取消注释下方内容以获取免费 SSL 证书
LETSENCRYPT_ACCOUNT_EMAIL: OFF
## TODO: 配置数据库连接
DISCOURSE_DB_SOCKET: ''
#DISCOURSE_DB_USERNAME: discourse
DISCOURSE_DB_PASSWORD: "在此粘贴中已删除"
DISCOURSE_DB_HOST: data
DISCOURSE_REDIS_HOST: data
我将我的 letsencrypt_account_email 保留为默认的 me@example.com(使用非电子邮件地址会破坏重建)。我也将 DISCOURSE_SMTP_ENABLE_START_TLS: 保留为默认的 true。
并且您的电子邮件域名应该是您的域名,然后我认为您希望您的通知电子邮件前面有一个 noreply@ 或类似的地址。
我去复制一份我的
DISCOURSE_SMTP_ADDRESS: smtp-relay.sendinblue.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: admin@jammydodger.monster
DISCOURSE_SMTP_PASSWORD: "secret-password"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
DISCOURSE_SMTP_DOMAIN: test.jammydodger.monster
DISCOURSE_NOTIFICATION_EMAIL: noreply@test.jammydodger.monster
## 如果您添加了 Lets Encrypt 模板,请取消注释下方以获取免费 SSL 证书
LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
谢谢 Jammy。呼,我再试一次,然后会回到这里……哈哈。
在我开始之前,我想确认一下:noreply 电子邮件,应该是 noreply@gmail.com 吗?Gmail 是我在 Discourse 上唯一使用的电子邮件域名。这会自动在 Gmail 中创建一个 noreply 选项,还是我应该使用哪个域名来发送 noreply 电子邮件?或者,我是否可以用 wespenre2@gmail.com 替换 noreply 电子邮件?
我在 WinSCP 中编辑了以下内容(见下文),通过右键单击 web_only.yml 进行编辑,但我还没有刷新它。想先听听你的意见。
然后,如果一切看起来都正常,并且我刷新了它,我会在刷新后运行 ./launcher destroy web_only 然后 ./launcher start web_only,对吗?然后它应该就能工作了?
这样可以吗?
## TODO: 用于验证新帐户和发送通知的 SMTP 邮件服务器
# 需要 SMTP 地址、用户名和密码
# 警告:SMTP 密码中的字符 '#' 可能会导致问题!
DISCOURSE_SMTP_ADDRESS: smtp-relay.sendinblue.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: wespenre2@gmail.com
DISCOURSE_SMTP_PASSWORD: "password"
DISCOURSE_SMTP_ENABLE_START_TLS: true # (可选,默认为 true)
DISCOURSE_SMTP_DOMAIN: gmail.com
DISCOURSE_NOTIFICATION_EMAIL: noreply@gmail.com
## 如果您添加了 Lets Encrypt 模板,请取消注释下面以获取免费 SSL 证书
LETSENCRYPT_ACCOUNT_EMAIL: wespenre2@gmail.com






