(翻译润色)
在今天的文章中,我想向您展示如何在甲骨文云的完全免费的虚拟机上安装和配置 Discourse 实例。如果您不熟悉Discourse,它是一个完全免费且开源的在线讨论应用程序。早些时候,我们称之为“电子公告栏”或“讨论论坛”,事实上,BBS的概念早于万维网本身。第一个BBS可以追溯到1978年左右,这也许就是Discourse的开发者们决定重新构想在线讨论概念的原因。用他们的话说,“Discourse是一次从零开始的重启,旨在重新构想现代互联网讨论论坛在当今这个智能手机、平板电脑、Facebook和Twitter无处不在的世界中应该是什么样子。” 您肯定在某个时候使用过Discourse实例——可能是在 How-To Geek 上,或者在 Twitter开发者论坛 上。
接下来的问题是:您将用它做什么?也许您与一个俱乐部、教会团体、非营利组织或房主协会有关联,他们希望有一个地方来讨论共同感兴趣的话题?您用它做什么并不重要,但最棒的是,您可以使用下面的教程在不到一个小时的时间内启动并运行它,并且可以永久免费使用,没有任何陷阱或“猫腻”。 真的。
创建永久免费虚拟机
如果您是Oracle Cloud的新手,您首先需要注册一个完全免费的帐户。您需要提供一张信用卡,但如果您坚持使用“永久免费”服务,则绝对不会被收费。注册免费帐户后,登录并前往Oracle Cloud仪表板。它看起来像这样:
创建虚拟机,请点击“创建虚拟机实例”。
赋予您的实例一个名称,并可选择更改镜像来源。以下说明将针对默认操作系统 Oracle Linux,因此最好坚持使用默认设置。
如果需要,请点击“显示实例配置选项”,并确认可用性域和实例类型均为“始终符合免费条件”。
务必为实例配置选择“始终免费套餐”选项。
务必勾选“分配公共 IP 地址”,否则您将无法通过网络访问此虚拟机!
选择一个公钥文件,该文件需关联一个私钥,以便在虚拟机创建后用于访问。
点击“创建”后,您将被引导至实例详情页面,虚拟机将处于“正在配置”状态。:
稍候片刻,实例状态将变为“可用”。复制分配给虚拟机的公有 IP 地址,在后续教程中我们将需要用到它。
你的虚拟机已准备就绪,现在可以使用与创建虚拟机时上传的公钥相关联的私钥通过 SSH 协议连接到该机器。
在您安装 Discourse 之前,务必先处理好以下事项。若您跳过此步骤,安装过程定会功亏一篑。
域名记录设置
首先,我们需要将虚拟机的公共 IP 地址与域名相关联。如果您希望通过 IP 地址访问论坛,当然可以跳过此步骤,但如果这样做,您将无法通过 HTTPS 访问它。就我而言,我将使用 URL discourse.toddrsharp.com
,因此我将在 DNS 主机中添加一条 A 记录,以指向我的虚拟机的 IP 地址:
按照您的特定托管服务提供商的指示,将域名(或子域名)指向您的虚拟机 IP 地址,您就可以通过 SSH 登录到虚拟机并继续该过程了。
配置防火墙和安全列表
我们需要在防火墙和安全列表中开放一些端口,以便将 Discourse 应用程序暴露给 Web。首先,让我们在 Oracle Cloud 控制面板中为 VM 安全列表添加一些入口规则。在 VM 详细信息页面中,点击子网:
在子网详情页,点击“安全列表”。
点击默认安全组,即可编纂规则。
点击“添加入口规则”,并配置一条规则,以允许端口80,443
对源CIDR 0.0.0.0/0
(所有IP地址)开放访问权限:
鉴于后续步骤大多需要在虚拟机中通过 SSH 连接进行操作,请先建立 SSH 连接。连接成功后,执行以下命令,以便在虚拟机防火墙上开放与之前安全列表中允许的端口相同的端口:
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd —reload
好的,接下来让我们着手安装一些先决条件!
安装准备工作
在您继续操作之前,请先使用 sudo yum update
命令将虚拟机上已安装的所有软件包更新到最新版本。现在,我们需要安装一些额外的依赖项,请使用以下命令添加 Git 和 netcat:
sudo yum install git nc -y
一切就绪,我们可以开始安装 Docker 了。
安装 Docker
如果此时我们运行 Discourse 安装程序,它在尝试安装 Docker 时会失败。因此,为了避免出现此问题,我们手动安装 Docker。请使用以下命令进行安装:
yum-config-manager --enable ol7_addons
yum install docker-engine
systemctl start docker
systemctl enable docker
获取电子邮件配置
我们需要从我们的云帐户中收集一些信息,这些信息将在下一步中使用。首先,如果没有,让我们创建一个专用的电子邮件用户。从侧边栏中,选择 Identity → Users,然后单击“Create User”:
创建用户后,单击用户详细信息页面左侧边栏菜单中的“SMTP Credentials”:
单击“Generate SMTP Credentials”以打开对话框,输入描述,然后单击“Generate SMTP Credentials”以创建它们。
复制生成的用户名和密码,并将其放在手边,以便在安装 Discourse 时使用。
接下来,让我们获取我们的 SMTP 服务器信息,然后向我们的云帐户添加“approved sender”,以便 Discourse 能够正确发送电子邮件(这对它的功能至关重要)!从 Oracle Cloud 控制台侧边栏中,选择“Email Delivery”->“Email Configuration”:
并复制服务器名称。 将此也放在手边,以供 Discourse 安装使用。
复制服务器名称后,单击侧边栏中的“Email Approved Senders”,然后添加 Approved Sender。 使用电子邮件地址格式 noreply@[domain],该地址将用于从您的安装发送通知、验证电子邮件等。
太棒了,这是我们在安装 Discourse 之前需要做的所有事情。 继续!
安装 Discourse
现在,激动人心的时刻到了!我们距离成功运行仅有几步之遥,所以请喝杯咖啡,准备开始安装吧。实际上,从现在开始,您可以直接按照 Discourse Cloud 安装指南进行操作,一切都应该“顺利进行”。但为了保持本教程的完整性,我将在此处向您展示必要的命令,这样您就不必跑到其他地方完成安装了。让我们开始吧!
从 Git 克隆 Discourse
从 GitHub 获取 Discourse Docker 项目并运行它:
sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
./discourse-setup
安装程序会要求您提供一些信息,如果您已按照上述步骤操作,则已经收集了所有这些信息:
Hostname for your Discourse? [discourse.example.com]:
Email address for admin account(s)? [[email protected],[email protected]]:
SMTP server address? [smtp.example.com]:
SMTP port? [587]:
SMTP user name? [[email protected]]:
SMTP password? [pa$$word]:
Let's Encrypt account email? (ENTER to skip) [[email protected]]:
安装过程预计耗时两至八分钟。完成后,您即可启动并经由浏览器继续设置。
继续完成在线设置流程,以完成安装。如果您遇到任何问题,请参考Discourse Cloud安装文档。
后续步骤
至此,您的论坛已成功启动并运行。