想给项目用户、兴趣小组搞个交流区,大平台要么要手机号、要么广告多、要么说没就没。Flarum 是一个开源论坛程序,PHP 写的,界面现代、移动端友好、扩展多,数据全在自己服务器。本文用一台雨云 KVM 云服务器,Docker 一把拉起 Flarum + MySQL,配 HTTPS 反代,给小圈子搭个干净的讨论区。
一、先准备一台雨云 KVM 云服务器
Flarum 偏 PHP 应用,1 核 2G 跑得舒服,需要 7×24 在线、有公网 IP、绑域名走 HTTPS(论坛必须 https)。想低成本起一台可以看国产高性价比云服务器,比如雨云:KVM 虚拟化、Debian/Ubuntu 镜像任选,新用户用优惠码 admin01 享五折,入门版折后约 9 元/月,支持 7 天无理由退款。挑机器可参考 VPS 怎么选不踩坑 与 新手买 VPS 先看这几个配置参数。
我选 Debian 12。基础安全按 VPS 到手第一件事做什么 走一遍,本文默认你已建好普通用户、开了 ufw。后台走 8888,放行即可。
二、用 Docker 拉起 Flarum + MySQL
装 Docker:
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
建目录并写 docker-compose.yml(用社区维护的 all-in-one 镜像,自带 Nginx+PHP,省去配环境的麻烦):
mkdir -p /opt/flarum && cd /opt/flarum
version: "3"
services:
db:
image: mariadb:11
container_name: flarum-db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=改成强密码
- MYSQL_DATABASE=flarum
- MYSQL_USER=flarum
- MYSQL_PASSWORD=改成另一个强密码
volumes:
- ./db:/var/lib/mysql
flarum:
image: mondedie/flarum:stable
container_name: flarum
restart: unless-stopped
depends_on:
- db
ports:
- "8888:8888"
environment:
- FORUM_URL=https://bbs.example.com
- DB_HOST=db
- DB_NAME=flarum
- DB_USER=flarum
- DB_PASS=改成另一个强密码
- DB_ROOT_PASSWORD=改成强密码
- FLARUM_ADMIN_USER=admin
- FLARUM_ADMIN_PASS=设管理员密码
- FLARUM_ADMIN_EMAIL=admin@example.com
- TZ=Asia/Shanghai
volumes:
- ./assets:/flarum/app/public/assets
- ./extensions:/flarum/app/extensions
- ./nginx:/etc/nginx/conf.d
DB_PASS 要和 db 服务的 MYSQL_PASSWORD 一致。启动:
docker compose up -d
浏览器先开 http://服务器IP:8888,能进安装页说明服务正常。
三、配 HTTPS 反代
论坛必须 https(否则登录态、混合内容都出问题)。用 Nginx 反代 8888:
server {
listen 80;
server_name bbs.example.com;
location / { return 301 https://$host$request_uri; }
}
server {
listen 443 ssl;
server_name bbs.example.com;
ssl_certificate /etc/letsencrypt/live/bbs.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/bbs.example.com/privkey.pem;
client_max_body_size 20m;
location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
申请证书:certbot --nginx -d bbs.example.com。放行端口:
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload
打开 https://bbs.example.com,用 compose 里设的管理员账号登录,进后台装扩展、建版块。
四、怎么用出效率
- 装扩展:后台「Extensions」装
flarum-sitemap(SEO)、fof-upload(附件)、fof-anti-spam(防垃圾)。国人社区还能接第三方验证码扩展。 - 版块划分:按话题建 Tag/版块,置顶公告,新用户引导帖置顶。
- 邮件通知:后台配 SMTP,否则注册验证、回复提醒发不出去(见下坑)。
- 数据备份:核心是
./db(MySQL)和./assets(上传文件)。定期mysqldump加打包./assets;异地思路见 雨云快照备份与对象存储。
五、踩过的坑与经验
- 必须配 SMTP:不配邮件,新用户收不到验证、密码找回也废。用任意邮箱服务的 SMTP,填到后台「Email」设置,发测试信确认。
- FORUM_URL 必须 https:填 http 或 IP,前端资源会混协议、登录后样式错乱。改成最终 https 域名再起。
- 后台暴露:论坛后台路径固定,建议加 Basic Auth 或限制来源 IP,详见 VPS 安全配置实战。
- PHP 版本敏感:Flarum 对 PHP 版本有要求。用 all-in-one 镜像的好处就是版本已配好,别手痒换底包。
- 反代超时:上传大附件、长连接可能超时,Nginx 加
proxy_read_timeout 120s;更稳。 - 容器时区:加
TZ=Asia/Shanghai,否则发帖时间差 8 小时。
小结
小圈子要的是「自己的地盘、规则自己定」。Flarum 部署不难、扩展生态成熟,数据牢牢在手里。常驻论坛服务很适合雨云这类低价稳定 KVM——优惠码 admin01 五折、7 天无理由退款,跑个小社区很合适。
合规提醒:使用雨云及本文所述方案时,请遵守《网络安全法》《个人信息保护法》《数据安全法》等相关法律法规,仅用于合法合规的社区交流,务必落实实名与内容审核、履行个人信息保护与网络安全义务,不得利用本服务搭建或传播违法违规内容的论坛。






