首先,由我隆重地介绍Discourse
:
这是一个优秀的论坛部署平台,相较于flarum
Discuz!
,有着更加简洁的画面、完全开源等优点,同时资源占用也不高!
并且,这和我们亲爱的雨云论坛是有几分相似的哦!
成品大家可以期待一下,嘿嘿……
部署平台
既然我们的文章都打着云服务器
的标签了,所以就让我们打开雨云,登录/注册一个账号。
然后点击主页的云服务器按钮:
然后购买一个服务器。
配置要求并不高,根据官网的介绍,1G的服务器就足以运行了(要有swap
),那我们可以再多一点,比如2核4G之类的,自己选择吧!
注意操作系统一定要选Linux
系列的,个人推荐Ubuntu
,千万不要选Windows
&MacOS
!
开始安装!
首先,根据官网的介绍:
The only officially supported installs of Discourse are Docker based. You must have SSH access to a 64-bit Linux server with Docker support. We regret that we cannot support any other methods of installation including cpanel, plesk, webmin, etc.
也就意味着我们只能通过Docker
来安装 :|
由于本次环境的特殊,我们需要用noVNC
来进行连接,可以在雨云面板的远程连接里找到。
出现这个界面时,login
后面输入root
,Password
后面输入服务器密码,注意不会显示密码。
出现root@RainYun-XXX~#:
时,就表示成功了!
首先更新一下软件包:
apt update
apt upgrade
为了防止后续安装Docker
时出现找不到文件的情况(本次坑1)。
这里出现了Do you want to continue? [Y/n]
时,一律输入Y
。
然后安装部署环境Docker
:
apt install docker.io
把Discourse
的git
仓库给clone
下来:
git clone https://github.com/discourse/discourse_docker.git /var/discourse
克隆好后进入目录并改权限:
cd /var/discourse
chmod 700 containers
然后就可以运行./discourse-setup
。
当你兴致勃勃地输入你的域名后,你就会发现(本次坑2)(其实你不挂cdn也是可以的):
不要着急rebuild docker
,而是重新运行:
./discourse-setup --skip-connection-test
不过这次要开始下docker
镜像了,所以just wait...
这次,你就可以正常的输入域名了!
这里输入你的电子邮件:
好,本期第3坑点来了:
这表示SMTP
(发邮件用的协议)的地址,不同的邮件商有着不同的SMTP
地址,比如Outlook的就是smtp-mail.outlook.com
这个表示 SMTP
端口,也是按照厂商提供的信息:
username
就是你的邮箱地址,password
就是邮箱密码(有的可能是应用密码):
这里是noreply
地址,看情况而定,可以设置自己的邮箱:
下一个有关Let's Encrypt
的是免费的SSL证书,可以不填。
验证之后,就可以开始enter
,然后耐心等待,不要动它,不要手欠按了Ctrl
+C/Z
……
像这几个看起来卡住了的地方,也不要手欠(本次坑4),等等等……
为了防止报错,你可以尝试(来自hhjmk):
出现...[@embroider/webpack]
时会重复好几遍(我重复了13次),也不要手欠!
这样就表示成功了!!!
next:
./launcher destroy app
./launcher start app
然后打开你的域名(上面填的那个),稍微设置一下邮箱之类,就可以访问了!
此时你就会遇到另一个坑(坑5),那就是你可能无法收到邮件!
这是官方配置问题,我们只需要打开containers/app.yml
,然后找到:
expose:
- "80:80",
- "443:443"
加上一行:
- "587:587"
再找到:
- exec: rails r "xxx"
将xxx改成SiteSettings.notification_email='你的邮箱'
就好了!
然后输入:
./launcher destroy app
./launcher start app
完成!
然后你就可以happy运维了!
参考了【跨世纪】手把手教你搭建一个雨云同款论坛 - 教程分享 / 云服务器 RCS - 雨云论坛 (rainyun.com)