搭建 Discourse 论坛社区教程|开源现代化社区系统部署指南

Discourse 是一款开源、现代化的论坛社区系统,支持实时讨论、邮件通知、移动端自适应和强大的权限管理。通过搭建 Discourse 论坛,你可以快速构建一个高互动、高可维护性的社区平台,适用于技术交流、资源分享、产品支持和兴趣社群等多种场景。

准备工作

  1. VPS,内存最好别低于 1G,如果没有VPS,可以点击前往创建
  2. SS连接工具不知道的可以阅读

连接VPS,进入终端进行安装,安装命令如下:

更新系统安装证书申请工具

apt-get update && apt-get install -y netcat-openbsd curl sudo

Discours 安装

sudo apt install docker.io
sudo apt install git

逐条执行

sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
chmod 700 containers

执行安装:

./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]:

如果smtp发送不了邮件可以修改配置:

只需进入并修改该文件: var/discourse/containers/app.yml即可可以安装插件

每次修改需要重建才会生效

cd /var/discourse
./launcher rebuild app

因为Discourse实时加载内容懒加载技术

要修改防护和优化本地速率限制

改app.yml文件找到注释或者直接删除,因为不需要他提供ssl证书全部交给Caddy2

## 配置Caddy关闭下面ssl证书与 # https

#  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"

再修改端口映射

expose:
  - "127.0.0.1:8080:80"   # http
#  - "127.0.0.1:8443:443" # https

最后别忘记了重新构建容器

重构完成开始安装Caddy2实现反代
如何安装Caddy2阅读文章

配置文件目录一般在/etc/caddy/Caddyfile修改配置
快速编辑

sudo nano /etc/caddy/Caddyfile

配置内容例如你的域名是
更改域名:www.example.com
你的邮箱:[email protected]

https://example.com {
        tls [email protected]
        redir https://www.example.com{uri} permanent
        reverse_proxy 127.0.0.1:8080 {
        header_up X-Real-IP {http.request.header.CF-Connecting-IP}
        header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
    }
}
https://www.example.com {
        tls [email protected]
        reverse_proxy 127.0.0.1:8080 {
        header_up X-Real-IP {http.request.header.CF-Connecting-IP}
        header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
    }
}

为什么设置https://example.com
可以自动跳转www.example.com
如果不需要则删除第一个配置即可

您可以使用以下步骤来检查您的Caddy配置是否正确:

sudo caddy fmt --overwrite /etc/caddy/Caddyfile

验证配置语法:

sudo caddy validate --config /etc/caddy/Caddyfile

启动Caddy服务器

caddy reload --config /etc/caddy/Caddyfile --adapter caddyfile
systemctl restart caddy

如果修改/etc/caddy/Caddyfile配置

重新加载配置:

sudo caddy reload --config /etc/caddy/Caddyfile

discourse备份路径为:

/var/discourse/shared/standalone/backups/default/

caddy证书位置

/var/lib/caddy/.local/share/caddy/certificates/