好的,这说得通。我想我用 Mailgun 应该没问题。
等我开始设置多站点时,我会更好地理解这一切!
好的,这说得通。我想我用 Mailgun 应该没问题。
等我开始设置多站点时,我会更好地理解这一切!
我插个话,因为我正处于与 @alltiagocom 类似的情况——我已经为我的主要社区在小型 Hetzner 服务器上安装了 Discourse,但私下里一直在考虑,等我对情况熟悉了之后,将一些其他的 Facebook 群组迁移到 Discourse 上。
我对“WordPress 多站点”很熟悉,但我了解到 Discourse 的多站点涉及更多内容。我想知道运行两个(或更多)独立站点与多站点相比,哪个会更省心。
对此有什么见解吗?
多站点设置的维护开销肯定会更少,从而减少麻烦,但您的体验可能有所不同 (YMMV)。
对于 Discourse 新手,我建议只运行两个站点。
我创建了一个关于如何运行无需反向代理的多站点的主题,但它现在已经过时了。
我认为唯一需要更改的是
可以用新的
DISCOURSE_HOSTNAME_ALIASES: domain.com,other.domain.com
我的一点看法,在借助我的旧笔记、ChatGPT、Claude、Discourse 的 AI 机器人以及这里分享的一些主题(在对整个过程做了笔记和更多笔记之后)花了一整天时间研究这个问题。
直到我需要添加反向代理时,一切似乎都运行正常。我的第一个实例之前运行正常,但现在却不行了。我又向 Discourse 的 AI 机器人问了几个问题,但由于是我的第一天,它停止工作了。这是该机器人新用户的限制。一直非常乐于助人的 Claude 也停止了,因为我使用的是免费版本。ChatGPT 是所有工具中最不可靠的,所以我总是带着极大的犹豫来对待它所有的回复……
然后我又来到论坛,开始阅读一些关于这个主题的帖子,其中一些是 @pfaffman 写的。那是最后一根稻草。对我来说太复杂了,技术术语太多,我甚至不知道该问什么。
总结:我的第一个实例之前是工作的,所以我将把它恢复到原来的状态(将 app.yml 文件编辑回更改之前的样子)。我正在输入时进行重建。
说实话,尽管存在所有复杂性,即使克服了第一个大障碍后可以添加更多社区,但我认为节省每月 4 美元来增加一个社区并不是世界末日。由于我已经知道如何在 Hetzner 上设置服务器然后安装 Discourse,我将坚持现在使用 2 个社区,为它们支付 8 美元,然后继续前进。考虑到几个月前我为 Digital Ocean 的一个液滴支付 12 美元,如果我愿意,我可以付出同样的努力来支付 3 个社区的费用。
尽管如此,我总是觉得这些冒险很有趣,因为我一路上学到了新东西,最后,我至少可以说出为什么我不想这样做,而不是只说“我不会做,因为我不知道我是否能做到”。
我很感谢大家在这里花费的时间和提供的帮助,希望这个主题能帮助到其他想实现我正在尝试实现的目标的人。
![]()
完毕!
这正是我说你需要重新考虑你的策略的原因,虽然你试图实现的目标并非不可能,因为它以前有人做过,但要做好它需要对“discourse”(论述/话语系统)有深刻的理解。
如果你想更多地了解“discourse”是如何运作的,我建议你在空闲时间继续实验,我们这里大多数人都是这样学到的。
我花了比我愿意承认的更长的时间才(大部分)弄明白!
6 个帖子被拆分到一个新主题:单个 Discourse 站点有多个应用程序容器
我正在记录一个受支持的 Discourse 多站点安装,作为逐条命令的运行手册。
我之前尝试过“在一台服务器上进行多个独立安装”的方法,但该配置是不受支持的。本文档仅关注受支持的多站点架构,并以线性格式重写,以供偏好明确步骤的人员使用。
app)multisite.yml 启用多站点在多站点中,只有一个应用容器,因此 ./launcher rebuild app 将重启唯一的节点。这意味着所有站点都会出现短暂的停机时间。
将所有主机名添加到 DISCOURSE_HOSTNAME_ALIASES,以便 Let’s Encrypt + 主机验证能够可靠地工作。
每个站点都在 /admin/backups 中创建自己的备份。稍后将站点备份恢复到独立安装是正常的迁移路径。
| 步骤 | 命令 |
|---|---|
| 更新系统 | apt-get update && apt-get upgrade -y |
| 安装依赖项 | apt-get install -y git curl sudo |
| 步骤 | 命令 |
|---|---|
| 克隆仓库 | git clone https://github.com/discourse/discourse_docker.git /var/discourse |
| 进入目录 | cd /var/discourse |
| 步骤 | 命令 |
|---|---|
| 运行设置 | ./discourse-setup |
这会创建 /var/discourse/containers/app.yml 并启动第一个主机名(例如 forum1.example.com)。
| 步骤 | 命令 |
|---|---|
| 创建配置目录 | mkdir -p /var/discourse/config |
| 编辑多站点文件 | nano /var/discourse/config/multisite.yml |
示例 multisite.yml:
forum1:
host_names:
- forum1.example.com
forum2:
host_names:
- forum2.example.com
| 步骤 | 命令 |
|---|---|
| 编辑 app.yml | nano /var/discourse/containers/app.yml |
添加:
DISCOURSE_MULTISITE: trueDISCOURSE_HOSTNAME_ALIASES: forum1.example.com,forum2.example.com| 步骤 | 命令 |
|---|---|
| 重建 | ./launcher rebuild app |
| 步骤 | 命令 |
|---|---|
| 进入容器 | ./launcher enter app |
| 运行多站点迁移 | rails multisite:migrate |
| 退出 | exit |
| 步骤 | 命令 |
|---|---|
| 重启 | ./launcher restart app |
访问:
https://forum1.example.comhttps://forum2.example.com每个站点都有自己的管理员、用户、上传和备份。
每站点管理员:
/admin/backups如果以后想将站点拆分到自己的服务器上,请将该备份恢复到独立安装中。
如果以上任何内容与当前最佳实践冲突,我乐意更新此运行手册——目的是提供一个线性的受支持的多站点清单,以减少试错。