Discourse是一个国外的开源免费论坛程序,吸引我去折腾它的原因只有一个就是:UI扁平化,很符合我的审美。像这种论坛程序往后的发展趋势肯定都是像Discourse这样,以轻社区为主。
Discourse目前只支持用Docker运行,这是官方的原话:
Why do you only officially support Docker?
Hosting Rails applications is complicated. Even if you already have Postgres, Redis and Ruby installed on your server, you still need to worry about running and monitoring your Sidekiq and Rails processes, as well as configuring Nginx. With Docker, our fully optimized Discourse configuration is available to you in a simple container, along with a web-based GUI that makes upgrading to new versions of Discourse as easy as clicking a button.
也正是因为这个原因,导致我很久前就知道Discourse这个程序,但一直不愿意动手搭建。我个人是不怎么喜欢Docker这个东西的。。。无奈最终还是被Discourse的各种神秘BUFF吸引,只能委曲求全了~
话不多说,现在先来做准备工作:
一台VPS,系统选择CentOS7X64,内存大于1G,最好是2G内存,使用Xshell以root用户的身份登录到你的机器内。
注:像什么512M内存的小鸡就不要折腾了,你装不上的,最少要1G内存!免得到时候花了半天时间还装不上。
由于我的这台机器内存只有1G:
所以要先添加一个2G的SWAP,添加方法如下:
dd if=/dev/zero of=/var/swap bs=1024 count=2097152 mkswap /var/swap chmod 0600 /var/swap swapon /var/swap
执行完上面的命令后,可以看到已经有SWAP了(由于我图片是之前截的,之前我只添加了1GSWAP,后来在安装过程中发现至少要2G,所以下图这里是显示的1G)
如果你要添加更多的SWAP,可以用如下公式来计算,比如我现在要添加4GSWAP:
4096X1024=4194304
4194304就是count=后面的值。
现在我们把SWAP设置成开机启动,防止重启后SWAP就消失的问题,然后重启机器:
echo "/var/swap swap swap default 0 0" >> /etc/fstab reboot
如图:
在机器重启完成后,重新登录上来,现在就来安装Docker:
yum -y install wget wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm yum -y install docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm
LALA这里推荐CE版本的Docker,更多新版本或是旧版本的RPM安装包可以在如下地址找到:
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
Docker安装完成后可以看到如下图回显:
接着来启动Docker:
systemctl start docker
把Docker设置成开机启动:
systemctl enable docker.service
这里再给各位一些比较适用的命令,可以用来管理Docker:
停止Docker:
systemctl stop docker
禁用开机启动:
systemctl disable docker.service
到这里Discourse需要的运行环境就部署好了,接下来我们需要使用Mailgun来配置你的域名SMTP发信服务,为什么一定要配置这个东西?因为Discourse在安装和后续使用中都离不开SMTP,不配置好SMTP你就无法安装成功。
1、注册MailGun,地址:https://www.mailgun.com/
你需要注意的是,注册完毕后务必要绑定你的信用卡,否则你无法获得MailGun的每月免费发信额度,不但如此,如果你不绑定支付方式,你只能试发几封邮件。其次,在注册完成后,务必添加你的域名到MailGun并按照它们的要求来添加你的域名解析记录。
2、在域名解析记录生效后,添加一个以你域名开头的SMTP发信账号:
点击New SMTP Credential来添加你的账号和密码:
3、Mailgun默认的SMTP参数:
SMTP服务器地址:smtp.mailgun.org
SMTP发信端口:587
记住上面的这些,你待会儿会用到。
现在来下载Discourse程序文件:
yum -y install git mkdir /home/discourse git clone https://github.com/discourse/discourse_docker.git /home/discourse
这里我将Discourse的文件都保存到了/home/discourse目录下,你们可以按需更改。
进入到程序目录:
cd /home/discourse
开始安装:
./discourse-setup
程序会依次回显如下内容:
Q:Hostname for your Discourse? [discourse.example.com]
A:填写你准备好的域名,Discourse安装完成后将以这个域名运行。
Q:Email address for admin account(s)? [me@example.com,you@example.com]
A:填写你的管理员账号邮箱,这里可以用你的常用邮箱,比如QQ邮箱、163邮箱都是可以的。
Q:SMTP server address? [smtp.example.com]:
A:如果你是按照我文章中部署的,那么这里就填写smtp.mailgun.org
Q:SMTP port? [587]
A:填写587回车即可。
Q:SMTP user name? [postmaster@bbs.xxxxx.com]:
A:填写你在Mailgun上添加的SMTP账号
Q:SMTP password?
A:填写你在Mailgun上添加的SMTP账号所对应的密码
Q:Let’s Encrypt account email? (ENTER to skip) [me@example.com]:
A:回车直接跳过这一步,如果你需要配置SSL证书的话,这里填写你的站点域名然后再回车。
以上所有的设置都在终端内完成,类似如下图:
在你走完上面的步骤后,可以看到如下图界面,此时是程序最后让你确认一次你刚才输入的这些信息是否都是正确的:
确认正确后,回车程序就会开始安装Discourse了:
一般情况下,10-30分钟左右就能安装完成,这个取决于你的VPS性能,LALA这里用的阿里云1H1G,实测10分钟的样子就安装好了。
此时通过浏览器就能访问到Discourse的配置界面了:
选择站点语言,这里我们选择中文:
填写你的站点名字和描述:
写一段简短的话,来介绍你的社区是干什么的?
设置你的站点是公开访问还是私密的?
填写你的站点联系人相关信息:
填写你的站点组织(可跳过),直接下一步即可:
设置站点的默认主题,配上有白、黑两种,默认是白色:
上传你的站点LOGO和BANNER等等:
设置你的站点ICO图标:
设置你的站点主页以什么方式来显示内容:
设置你的站点表情:
设置你的站点其他管理人员(可跳过)直接下一步:
现在当你看到如下界面就说明你离安装完成Discourse只有一步之遥了:
Discourse给你的邮箱发送了一封账号激活的邮件:
这也就是为什么我让你们配置SMTP的原因,如果你之前没有配置好SMTP你到这里就卡住了,你的程序也是白装的。
这里我们稍等一会儿就能看到Discourse发送过来的验证邮件了:
注意,因为使用的是Mailgun,所以像国内的这种邮箱很可能会收不到信件,就比如我现在用的QQ邮箱虽然能够收到信件,但是有非常大的延迟,往往需要等很久才能收到信,所以如果你等不及或者根本就收不到信,可以直接到Mailgun的后台查看信件是否发送成功,查看方法:
从上图中我们可以看到信件是发送出去了的,那么此时点击前方的设置按钮:
按如图操作就可以查看到这封信的具体内容了,里面就包含了我们用来验证账号的链接:
至此,Discourse就完成部署了,现在你就可以使用你的账号来登录了,Discourse初次打开是长这个样子的:
点击如下图所示的按钮可以进入到Discourse的管理界面:
在这里你可以更详细的对Discourse进行设置:
有一个比较坑的地方就是翻译的不够全面,很多设置选项都还是英文。
具体怎么使用Discourse这里就不多说了,有兴趣的可以自行搭建然后研究。至此,今天的文章也差不多要结束了~
写在最后:
Discourse并没有我想像中的那么好,就目前而言,我觉得这个论坛程序只能拿来玩玩,原因如下:
1、性能弱到爆炸?初次安装完成,只是新建一个分类或是发一个帖子网站就能直接502?其次在安装界面的时候,我就发现这款程序有点问题,点下一步既然可以卡住,在VPS上下意识的看了下当时的负载,竟然可以高到如此离谱?
后来我试着发了几个帖子,发现每当帖子发布的时候,CPU的占用率竟然可以高到这个程度:
这还只是我一个人发帖子,如果是大型一点的论坛,我完全不敢想像这个程序需要多高的配置。。。
可能是阿里云的机子太辣鸡也说不定吧,但愿如此。。。反正我后来又发了几个帖子和做了一些操作好像负载又比较正常了,玄学问题。。。
2、Discourse虽然界面扁平化,UI很漂亮,但是实际用起来,感觉某些地方还是有点违反中国人的使用习惯,Discourse现在给我的感觉就是看起来“轻”实际用起来“重”。果然这就是水土不服。。。
3、老子英语不好,说好的中文,结果后台设置界面大部分都是英文,根本不能愉快的玩耍了!
每日刷屏
辛苦你了
这家伙复杂的反人类,应该没有docker的话,安装过程会死人的;
另外mailgun那里我觉得用国内邮箱的SMTP地址也可以,晚上回去试试
国内的smtp应该也可以的,只要保证填写的配置内容准确无误就好了,不过真的不推荐装这个论坛程序,如你所说太复杂了,蛋疼。