Discourse国内建站攻略
最近帮朋友建了个关于数据科学的交流论坛。说实话,近几年运营社区相当不易,网站推广、内容筛选、站务管理一堆麻烦事,不免勾起了学生时代论坛撕逼的黑历史,而当年技术圈的“知名”论坛,现在很多沦为了广告集中地,内容质量已大不如前,操作习惯上也还停留在十年前,体验和SEO都很糟糕。
一开始我是拒绝的,直到某土豪一言不合的买ECS,后来心想不如借此熟悉下ECS和Discourse,一番折腾后论坛上线了:DataGeekers
当然本文只记录建站方法,不讲论坛😶
关于Discourse
介绍一下,Discourse目前是个全新的开源论坛,官方号称是定位于下一个十年的网络论坛服务:
其使用瀑布流主题,社交化的会话操作和消息推送,markdown输入贴合工程师习惯,同时多响应式布局在移动端的支持效果还不错,必要的功能兼具简洁的界面,首页样式如下:
目前来看,Discourse在国外的普及度较高,国内的站点相对少些,多半的原因是百度收录的少。
准备工作
Discourse依赖Ruby on Rails
、Ember.js
、PostgreSQL
、Redis
环境来部署,没有这些技术经验的话很难手工部署成功,不过官方提供了docker image,省去了很多麻烦,因此为了提供站点服务,只需要:
- 一个域名:自行从服务商购买即可
- 服务邮箱:最重要的建站条件,购买域名的时候一般会附赠,需要至少一个域账户
- 可访问外网的Ubuntu服务器:最好是内存1G以上的ECS
- SSL证书/CDN服务:用于支持HTTPS,非必须
以上这些可以在任何一家国内云服务商上买到,我这里使用的阿里云。
开始部署
因为有了docker image,部署过程相对容易了很多,整个流程最主要的阻力来源于GFW,这里要感谢Discourse中文论坛,参考了很多网友的建议。如果你购买的国外ECS,几乎是一键build,没有参考本文的必要。
基础环境
为了方便后续进行更新,建议直接git clone下最新的代码然后部署到docker实例中,因此基础的环境只需要git客户端和docker即可,安装方法就不说明了……
唯一需要注意的是,国内访问源docker image的下载龟速,建议使用国内的source,在/etc/default/docker
中替换如下内容:
|
|
更改后重启docker服务service docker restart
,这个源亲测速度可以。
容器配置
官方的建议,通常把代码clone到/var/discourse
目录,需要修改配置文件/var/discourse/containers/app.yml
template部分
|
|
如果web.china.template.yml
仍然被墙,那就只用代理了😑
env部分
|
|
邮箱是Discourse最重要的设置,DISCOURSE_SMTP_USER_NAME
相当于论坛的系统邮箱,比如经常收到的某社区摘要,帐号重置邮件就是这样的帐号发送的,可以起些像noreply
、admin
这样更加official的名称。
最后还要将刚才这个邮箱账户设置为系统提示邮箱notification_email
:
|
|
初始化
第一次启动如下,时间根据网络环境在30分钟左右不等:
|
|
后续启停docker:
|
|
如果“一切顺利”,通过IP和域名就可以直接访问了(域名DNS配置好)。
HTTPS
HTTPS不用多说了,已经快2017年了,专业网站如果再不支持https,后续搜索引擎的收录都会是个问题。
这两年因为有Let's Encrypt
、Symantec
这类公信力较高的免费SSL证书,HTTPS普及有了很大的进展。
Discourse这里就可以原生支持https,来自Let's Encrypt
的良心出品,只需要在简单配置,就能得到SSL证书,并完成自动续期。
|
|
操作完成后再一次rebuild
即可使用https访问主站。
开启了https后唯一的问题是访问速度,有条件的可以购买CDN服务,加速效果可观,亲测在边缘网络下有近3倍的速度提升。
后话
网站上线后,管理员要做大量的网站配置工作,备案、板块、登录等都需要亲自对照文档微调,琐碎又费力,这些会影响最终的页面效果和用户体验,因此样式、板块的选择和权衡也要结合后续论坛的定位。
尽管如此,这些都不如对社区持续运营和推广,毕竟论坛是为了促进交流和沉淀内容,如果做不到,最终可能就会变成一厢情愿,这个地方网站的运营人员后续需要投入很多精力。
另个最大的感受就是云服务的便利,建站所需几乎都可以在云上直接购买到,体验非常好,节省了以前很多无谓的折腾。这些计算、存储、网络托管的需求堪比衣食住行一样普遍,想来,云市场仍然有巨大空间,一个地方超市也不会只有一家沃尔玛。