在Oracle Cloud免费层上安装Discourse

<div data-theme-toc="true"></div>

Oracle 提供了一个免费套餐,其中包括两台低配置虚拟机,能够运行 Discourse。
此试用版没有时间限制。

:warning: 这些虚拟机速度非常慢,我建议不要用它们来托管社区。
话虽如此,对于不介意速度慢的非常小的社区,或者用于个人项目/测试,它可能就足够了。


要求

  • 一张信用卡号 - 您不会被收费,但注册免费账户需要它
  • 一个域名
  • 一个电子邮件提供商
  • Discourse 的安装将与官方指南相同,但本教程将引导您完成 Oracle 的界面和配置。

在本教程中,我们将假设您使用的是 Windows 10,并将使用 PuTTY 通过 SSH 连接到您的服务器。

创建您的免费试用

首先,在 Oracle Cloud Free Tier | Oracle 创建一个试用账户。
您的账户创建不是即时的,您可能需要等待几分钟或几小时(有时甚至几天)才能验证您的账户。

创建账户后,请访问 https://cloud.oracle.com 并登录。

创建您的服务器

点击“创建 VM 实例”(VM 意为“虚拟机”):

配置您的服务器

(可选)将您的实例重命名为有意义的名称,以便您在虚拟机列表中知道它指的是什么:

我将我的命名为我将使用的域名:“Canapin.win”:
image

镜像和配置 中,通过点击编辑将默认操作系统更改为 Ubuntu

选择 Canonical Ubuntu,然后点击页面底部的 选择镜像

添加 SSH 密钥 中,有多种选项可用:

点击 保存私钥保存公钥
它将下载一个 .pub 公钥和一个 .key 私钥。将它们存储在某个文件夹中。

为 PuTTY 转换私钥

:raised_hand: 我们将暂时停止浏览 Oracle 的界面,稍后会回来。

在本教程中,我们将使用 PuTTY 连接到我们的服务器。由于生成的私钥与 PuTTY 不兼容,我们将使用一个名为 PuttYgen 的工具来转换密钥,使其与 PuTTY 兼容。

从官方网站安装 PuTTY:Download PuTTY: latest release (0.83)

安装 PuTTY 后,您应该可以在 Windows 搜索中找到 PuTTYgen:


如果在这里找不到,您可以在此处找到它:C:\Program Files\PuTTY\puttygen.exe

启动 PuTTYgen。
选择转换 → 导入密钥:
找到您从 Oracle 界面下载的 .key 文件,然后点击 打开 以验证文件选择。

将出现一些字段并自动填充。除非您知道自己在做什么,否则不要修改它们。

(可选)为您的密钥添加密码短语。将其视为密码,以增强安全性,每次登录服务器时都会要求输入。
然后,点击 保存私钥 并将其存储在一个文件夹中:

完成服务器创建

:point_right: 现在该回到 Oracle 的界面了。

滚动到页面底部,然后点击 创建 按钮:

等待大约一分钟让服务器创建。页面及其信息将实时更新。无需刷新:

确保您的域名指向新创建的服务器 IP

让您的域名指向服务器的 IP 地址并等待 DNS 传播。
:information_source: 本教程不会解释这一点,必须在您的域名提供商的 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>

image

使用以下命令保存更新的规则:

netfilter-persistent save

image

安装 Discourse

现在,您的服务器应该已准备好安装 Discourse。
只需遵循官方步骤:discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

(40 分钟的构建时间后… :snail:


:warning: 再次强调,Oracle 的免费服务器速度很慢。安装和重建需要很长时间。
即使从界面安装主题或组件有时也会超时。
请注意… 并保持耐心。 :person_in_lotus_position:


<small>相关讨论,包含各种信息和资源:https://meta.discourse.org/t/self-hosting-for-free-with-oracle-cloud/139184</small>
9 个赞