Discourse 现代化论坛系统部署安装教程:从零到生产环境
为什么选择 Discourse
Discourse 是一款开源的现代化论坛系统,以其流畅的单页应用体验、内置的实时通知、强大的分类与标签体系,以及优雅的响应式设计,成为全球众多社区的首选。与传统的 PHP 论坛(如 phpBB、Discuz)相比,Discourse 基于 Ruby on Rails 和 Ember.js 构建,默认支持 Markdown 编辑、拖拽上传、懒加载图片,并具备完善的反垃圾与用户信任体系。本文将以 Ubuntu 22.04 服务器为例,手把手带你完成 Discourse 的部署安装。
前置准备
在开始之前,你需要准备:

forum.example.com)。服务器开放 80/443 端口。若需要快速创建云服务器,可参考 Ciuic 云端控制台 提供的轻量云主机实例,支持一键配置 Ubuntu 镜像。安装 Docker 与 Git
Discourse 官方推荐使用 Docker 方式部署,便于升级和维护。首先更新系统并安装依赖:
sudo apt update && sudo apt upgrade -ysudo apt install -y git curl vimcurl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.shsudo systemctl enable docker && sudo systemctl start docker安装 Docker Compose 插件:
sudo apt install -y docker-compose-plugin克隆 Discourse 安装脚本
进入 /var/discourse 目录并克隆官方仓库:
sudo mkdir /var/discoursesudo chown $USER /var/discoursecd /var/discoursegit clone https://github.com/discourse/discourse_docker.git .配置 app.yml
复制模板并编辑配置:
cp samples/standalone.yml containers/app.ymlvim containers/app.yml关键配置项如下:
## 必填项params: db_default_text_search_config: "pg_catalog.english" db_shared_buffers: "256MB" enable_uploads: true## 域名(务必替换为你的真实域名)DISCOURSE_HOSTNAME: 'forum.example.com'## 开发者邮箱,用于接收管理员链接DISCOURSE_DEVELOPER_EMAILS: 'admin@example.com'## SMTP 邮件服务(必须配置,用于用户验证和通知)DISCOURSE_SMTP_ADDRESS: smtp.example.comDISCOURSE_SMTP_PORT: 587DISCOURSE_SMTP_USER_NAME: your-usernameDISCOURSE_SMTP_PASSWORD: your-passwordDISCOURSE_SMTP_ENABLE_START_TLS: true如果暂时没有 SMTP,可使用 Discourse 自带的邮件测试服务,但不建议在生产环境使用。
启动 Discourse
保存配置后,执行以下命令拉取镜像并启动:
cd /var/discourse./launcher bootstrap app该过程会根据你的配置构建 Docker 镜像并初始化数据库,通常需要 5-10 分钟。完成后启动应用:
./launcher start app查看日志确认启动成功:
./launcher logs app当看到类似 Listening on 0.0.0.0:80 的输出时,表示服务已正常运行。
配置 HTTPS 与域名
Discourse 在首次启动后会尝试自动申请 Let's Encrypt 证书。你需要确保 DNS 记录已正确解析。若未自动配置,可修改 app.yml:
DISCOURSE_APPLICATION_CACHE_AGE: 0然后执行:
./launcher rebuild app随后访问 https://forum.example.com 即可看到初始设置向导,按提示创建管理员账号并完成基础配置。
性能优化与备份
调整db_shared_buffers 为服务器内存的 1/4。启用 Redis 持久化:在 app.yml 中添加 DISCOURSE_REDIS_SNAPSHOTTING: true。建议每日自动备份:编辑 cron 添加任务,或使用 Discourse 自带的备份插件。总结
通过 Docker 方式部署 Discourse 简化了环境依赖,也便于后续升级与回滚。整个过程只需掌握几个核心配置文件,即可获得一个功能完备的现代化社区。如果你还没有一台合适的云服务器,可以前往 Ciuic 云端控制台 快速创建实例,选择 2C4G 配置即可流畅运行 Discourse。祝你搭建顺利,早日拥有一个活跃的讨论社区!


