<div data-theme-toc="true"></div>
Oracle 提供了一个免费套餐,其中包括两台低配置虚拟机,能够运行 Discourse。
此试用版没有时间限制。
这些虚拟机速度非常慢,我建议不要用它们来托管社区。
话虽如此,对于不介意速度慢的非常小的社区,或者用于个人项目/测试,它可能就足够了。
要求
- 一张信用卡号 - 您不会被收费,但注册免费账户需要它
- 一个域名
- 一个电子邮件提供商
- Discourse 的安装将与官方指南相同,但本教程将引导您完成 Oracle 的界面和配置。
在本教程中,我们将假设您使用的是 Windows 10,并将使用 PuTTY 通过 SSH 连接到您的服务器。
创建您的免费试用
首先,在 Oracle Cloud Free Tier | Oracle 创建一个试用账户。
您的账户创建不是即时的,您可能需要等待几分钟或几小时(有时甚至几天)才能验证您的账户。
创建账户后,请访问 https://cloud.oracle.com 并登录。
创建您的服务器
点击“创建 VM 实例”(VM 意为“虚拟机”):
配置您的服务器
(可选)将您的实例重命名为有意义的名称,以便您在虚拟机列表中知道它指的是什么:
我将我的命名为我将使用的域名:“Canapin.win”:

在 镜像和配置 中,通过点击编辑将默认操作系统更改为 Ubuntu:
选择 Canonical Ubuntu,然后点击页面底部的 选择镜像:
在 添加 SSH 密钥 中,有多种选项可用:
点击 保存私钥 和 保存公钥。
它将下载一个 .pub 公钥和一个 .key 私钥。将它们存储在某个文件夹中。
为 PuTTY 转换私钥
我们将暂时停止浏览 Oracle 的界面,稍后会回来。
在本教程中,我们将使用 PuTTY 连接到我们的服务器。由于生成的私钥与 PuTTY 不兼容,我们将使用一个名为 PuttYgen 的工具来转换密钥,使其与 PuTTY 兼容。
从官方网站安装 PuTTY:Download PuTTY: latest release (0.83)
安装 PuTTY 后,您应该可以在 Windows 搜索中找到 PuTTYgen:
如果在这里找不到,您可以在此处找到它:
C:\Program Files\PuTTY\puttygen.exe
启动 PuTTYgen。
选择转换 → 导入密钥:
找到您从 Oracle 界面下载的 .key 文件,然后点击 打开 以验证文件选择。
将出现一些字段并自动填充。除非您知道自己在做什么,否则不要修改它们。
(可选)为您的密钥添加密码短语。将其视为密码,以增强安全性,每次登录服务器时都会要求输入。
然后,点击 保存私钥 并将其存储在一个文件夹中:
完成服务器创建
现在该回到 Oracle 的界面了。
滚动到页面底部,然后点击 创建 按钮:
等待大约一分钟让服务器创建。页面及其信息将实时更新。无需刷新:
确保您的域名指向新创建的服务器 IP
让您的域名指向服务器的 IP 地址并等待 DNS 传播。
本教程不会解释这一点,必须在您的域名提供商的 DNS 配置中完成。
记下服务器创建的用户名
记下服务器自动创建的用户名。这里,用户名是 ubuntu。
配置 Oracle 防火墙
现在,这里有一个非常具体的 Oracle 配置部分,用于使 Discourse 正常工作。我们将打开防火墙上的某些端口。
在 主 VNIC 部分点击 公共子网:
在 安全列表 部分点击安全列表链接:
在 入站规则 部分点击 添加入站规则:
按如下方式填写规则:
- 将源 CIDR 设置为
0.0.0.0/0 - 将目标端口范围设置为
80, 443
点击“添加入站规则”:
检查您的规则是否已正确添加:
使用 PuTTY 通过 SSH 连接到您的服务器
启动 PuTTY 并将 主机名(或 IP 地址) 填入您新创建的服务器的 IP 地址:
在左侧的树状菜单中,转到 连接 → SSH → 身份验证。
在“身份验证参数”中,通过点击 浏览… 找到您的私钥(您使用 PuTTYgen 生成的带有 .ppk 扩展名的文件):
点击 打开:
点击 接受:
通过输入您的用户名(ubuntu)并按 Enter 键登录:
如果选择了密码短语,请输入 PuTTYgen 中的密码短语。
PuTTY 将验证您的私钥,您应该已登录:
配置 Ubuntu 防火墙 (iptables)
此时,我们仍然无法安装 Discourse。我们必须直接在 Ubuntu 中打开一些端口。
通过输入 sudo su 并按 Enter 键以 root 用户身份登录。
通过输入以下命令将这些规则添加到 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
<small>*注意:“`5`”表示两条规则都将从第 5 行开始添加,就在 `DENY ALL` 输入防火墙规则之前。如果 Oracle 在其 Ubuntu 镜像上更改了默认的 iptables 配置,则行号将来可能需要更改*</small>

使用以下命令保存更新的规则:
netfilter-persistent save

安装 Discourse
现在,您的服务器应该已准备好安装 Discourse。
只需遵循官方步骤:discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
(40 分钟的构建时间后…
)
再次强调,Oracle 的免费服务器速度很慢。安装和重建需要很长时间。
即使从界面安装主题或组件有时也会超时。
请注意… 并保持耐心。 ![]()
<small>相关讨论,包含各种信息和资源:https://meta.discourse.org/t/self-hosting-for-free-with-oracle-cloud/139184</small>























