Hector
(Héctor Fernández)
1
https://blogs.oracle.com/developers/install-run-discourse-for-free-in-the-oracle-cloud
这篇博客文章是去年发布的。我在此处没有看到任何提及;我认为作为托管公司,Oracle 对大多数人来说并不在考虑范围内。
因此,在发布之前,我决定亲自尝试一下,看看它是否真的可行。我创建了一个演示站点:
https://www.opendiscussion.pw
我在 Oracle Cloud 上注册了一个账户。它表示需要 15 分钟来验证账户,但由于我的信用卡问题(验证时需要提供信用卡),我不得不等待了两天。
我按照博客文章中的说明操作,然后遵循 Discourse 的正常 Docker 安装说明。第一次尝试就几乎成功了!我在电子邮件设置方面遇到了问题。我认为这是博客文章中唯一解释不正确的部分。我不得不查阅文档。Oracle 的文档非常优秀。
以下是该层级包含的内容:
elijah
(Eli the Bearded)
2
值得注意的是,Oracle 提供的配置包含约 40GB 磁盘空间(用于操作系统和用户数据),外加 8GB 交换分区,无需再创建交换文件。此外,由于您可以在“始终免费”层级上获得两台虚拟机,将数据库容器分离出来是一种可行的扩展方案。
(出于某种原因,那里的免费数据库 PaaS 并不是 PostgreSQL。
)
Canapin
(Coin-coin le Canapin)
3
感谢您提供这些有趣的信息!
我也遇到了问题。我尝试了多次但都没有成功(银行提示“错误的验证码”,尽管验证码是正确的)。
我换了一个浏览器尝试,结果成功了,只是我用了另一个电子邮件地址……现在我已经等了好几个小时,账户还没被验证。
虽然免费,但注册流程确实有点烦人……
Lopro
(Lopro)
4
邮件部分具体出了什么问题?我已经在 Oracle Cloud 上成功安装了 Discourse,但无论如何都无法让邮件投递功能正常工作。在尝试注册 Discourse 安装的管理员用户时,我从未收到任何邮件。
Discourse-doctor 能够连接到 Oracle 的 SMTP 服务器,但邮件并未发送。
我设置了多个已批准的发送者以防万一,包括我的管理员邮箱、noreply@[论坛域名] 和 noreply@[主域名]。其中哪个是关键的?
我还已在域名的 DNS 设置中添加了一条 TXT 记录,包含了推荐的 SPF 字符串。
Hector
(Héctor Fernández)
5
这有点棘手。如果我没记错的话,让我成功的方法是修改 containers/app.yml:
## 如果您想为首次注册设置“发件人”电子邮件地址,请取消注释并修改:
## 在收到第一封注册邮件后,请重新注释该行。该行只需运行一次。
- exec: rails r "SiteSetting.notification_email='noreply@opendiscussion.pw'"
Lopro
(Lopro)
6
感谢您的回复!
遗憾的是,这没有帮助(即使重新构建了应用后也是如此)。
我可以问一下您的 TXT 记录是什么样的吗?
您也没有取消注释“START TLS”设置,对吧?
那邮件的事情你处理得怎么样了?需要付费吗?(因为你说过不包含 SMTP)
Lopro
(Lopro)
8
SMTP 已包含在内。曾经在某些地区并不包含。设置起来非常棘手…… 
Lopro
(Lopro)
9
您知道 Oracle Cloud 中是否有 SMTP 日志?我想了解为什么无法发送邮件,尽管我可以正常连接到 SMTP 服务器。是未授权还是其他问题?
Hector
(Héctor Fernández)
10
Lopro
(Lopro)
11
抱歉,你说得对。我没想到自己会被纳入付费版的试用范围,因为我注册的是免费版。
有没有免费的替代 SMTP 服务,既能与 Discourse 配合使用,又能让 Discourse 本身继续部署在 Oracle Cloud 上?
我认为只剩下 Pricing | Mailjet 了。硅谷黑帮从互联网上夺走了免费邮箱,这真是令人遗憾 
Canapin
(Coin-coin le Canapin)
14
在尝试让我的试用账户正常运行一个月后,聊天支持表示无法帮助我,邮件支持也未能提供实质帮助,仅回复过一次,声称会收集我的账户信息并联系,但此后杳无音信……
我请朋友帮我注册了一个账户,结果不到15分钟就顺利完成了。
接着我尝试安装 Discourse,却遇到了不少困难。我按照Oracle 的 Discourse 安装教程操作,但由于某些原因,无法连接到 443 端口。
我又尝试在普通的 Ubuntu 镜像上安装 Discourse,但同样无法通过 80 或 443 端口连接,原因不明。
最后我回到官方说明文档,起初仍然无法运行(两个端口的连接都失败了),但在重启 Docker 后,奇迹般地成功连接到了两个端口。
因此,我的整体体验并不理想,问题究竟出在我自己身上还是 Oracle 方面,我也不太确定。
但无论如何,我现在确实拥有一个免费、在线、虽然速度不算快但能正常运行的 Discourse 安装。
对于打算遵循相同教程的用户,服务器防火墙部分有一个小错误:
不要使用:
sudo firewall-cmd —reload
而应输入:
sudo firewall-cmd --reload
Canapin
(Coin-coin le Canapin)
15
默认情况下,您无法安装 Discourse,因为不允许连接到端口 80 和 443。您需要在 安全列表(在 Oracle 控制面板中)和 实例防火墙(通过 SSH)中同时允许这两个端口。
以下是如何在标准的 Ubuntu 安装中完成此操作(与他们的官方指南略有不同,官方指南使用的是另一个 Linux 镜像)。
在 Oracle 面板中:
创建 Ubuntu 实例后,进入 实例详情 并点击 子网链接:
点击安全列表:
点击 添加入站规则,选择 TCP 协议,将源 CIDR 设置为 0.0.0.0/0,并将 目标端口范围 设置为 80,443。
点击“添加入站规则”进行验证。
确认规则已添加到安全列表中:
在通过 SSH 访问的服务器命令行中:
将这些规则添加到 iptables:
iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i ens3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
该命令会将规则添加到正确的位置。如果您只是将它们追加到现有规则中而不指定行号(5),则无法生效,因为它们会被之前存在的“拒绝所有”规则覆盖。
保存规则,以便重启后仍然有效:
netfilter-persistent save
现在您可以安装 Discourse 了!
nory
16
你好,对于生产环境中访问量较大的网站,你推荐使用 Oracle Cloud 吗?
谢谢
Canapin
(Coin-coin le Canapin)
17
我认为,如果你和你的用户不太在意论坛速度,可以托管一个小型社区。但我不推荐这样做,因为你可以找到每月约 5 美元、配置好得多的廉价主机。
@Hector,https://www.opendiscussion.pw 是否仍然托管在免费服务器上?
nory
18
嗨,你说的每月约 5 美元的廉价主机是指 DigitalOcean 的 5 美元 Droplet 吗?
Canapin
(Coin-coin le Canapin)
19
是的,例如。
就我个人而言,我喜欢 Hetzner,因为他们价格不贵,而且服务器按小时计费,非常适合短期尝试各种项目。但据我所知,他们的服务器仅在欧洲有部署。
Hector
(Héctor Fernández)
20
是的,仍然在免费服务器上。由于流量为零,我无法判断其性能如何。我也用它进行开发。到目前为止一切顺利。
nory
21
对于 Hetzner VPS,我是否也需要自行安装 LAMP 环境、进行服务器更新,并防范黑客攻击?
而 Digital Ocean 则一切就绪,我不需要再对服务器进行安全加固,只需要安装和管理 Discourse 吗?这是否是 Digital Ocean 与其他 VPS 的真正区别?
Digital Ocean 是否属于托管型 VPS?
谢谢!
Deb