discourse论坛的搭建教程很多,但真正优化到稳定好用的,照顾到细节的并不多
在这篇文章里记录下这个网站的搭建过程,以及如何做基础的安全防护
前面是基础安装,后面是防护和优化,防护和优化比较重要
先安装docker
安装docker,采用一键安装
curl -L get.docker.com | bash
拉取git项目
apt install git
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
chmod 700 containers
配置discourse
./discourse-setup
回答下面的问题,主要是把smtp给配置对了
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]]:
Optional Maxmind License key () [xxxxxxxxxxxxxxxx]:
discourse-setup这个命令是用于生成配置文件的,配置文件位于 /var/discourse/containers/app.yml
后面你可以再次运行./discourse-setup重新生成,也可以直接编辑配置文件,每次编辑配置文件后要重新运行 ./launcher rebuild app编译docker镜像
编译docker镜像要花费10-20分钟,这是discourse最烦的地方之一,每次编辑个配置都要重新编译镜像
机器配置要求
官方说1C1G就可以安装,但实际上至少至少2C2G,稳定运行建议2C4G以上
防护和优化
本地速率限制
discourse很笨重,你搭建的网站可能被别人攻击一下就掉线了,所以防护很重要
防护分CDN和本地防护,本地这里discourse已经帮你配置了nginx防护规则,所以如果你是小白,可以直接用docker暴露出的nginx端口,一般情况下就够用了
如果你使用了CDN,比如cloudflare,那么下面这条配置非常非常关键
templates:
- "templates/cloudflare.template.yml"
- "templates/web.ratelimited.template.yml" #这条默认开启
一定要在templates里面加一条cloudflare.template.yml,这条规则会重新编译nginx,增加realip模块,不然别人cc你网站的时候,discourse会把cloudflare的ip拉黑,非常坑。
是否在docker外另开一个nginx
discourse每次修改配置,都要重新编译镜像,这个很让我不爽
而且修改discourse镜像里面nginx的配置,要手写templates,然后编译进去
所以我在docker外用nginx代理内部的端口,让docker监听本地端口
为了防止realip不认识我的本地ip,需要把docker的内网ip加到realip的信任ip上
防止扫描
禁止了除cloudflare外的ip访问443端口
防止discourse摘要爬虫露ip
discourse有爬取网站摘要的功能,会暴露ip,为了防止此类问题直接让出战流量走warp
CDN端的防护也有些讲究,大家感兴趣的话,有时间我再写一篇关于CDN的防护配置。
最后,卑微发些邀请码,可以来抢注好看的id
http://clochat.com/invites/p2eHEnoSVb
我得了一种看见新论坛就想去注册的病
@Aicnal #14
/assets/
/stylesheets/
/images/
或者你也可以按照文件名扩展来配置缓存
Discourse 搭建的挺好看的,鸡腿支持
和隔壁linux.do不能说是毫不相干,只能说是一摸一样
@1000ly #1
哈哈,都是用的discourse,搭建很快,你可以试试
@Vellow #3
,可以来玩玩
曾经我刷pt也是这样的
不求有多少人,小圈子快乐下就行
我也建了一个

弄了两个月了日活十位数
discourse给人感觉太笨重
@Aicnal #5
退化为个人博客
佬,有机会讲讲WAF和CDN怎么设置呗
我现在这个缓存命中率不高
@Flare #7
这个日活都没有我博客高哈哈哈哈
@cos #6
就是笨重,没得洗,0ip搭建完还要吃近2G的内存
但是discourse现代化,定位是bbs领域的wordpress
用习惯了还挺好的,用户操作反馈到位