Discourse 详细安装部署教程(Docker 官方推荐版)
一、文档说明
本文档基于 Discourse 官方推荐的 Docker 容器化部署方案,适配 Ubuntu 20.04/22.04 LTS 64位服务器(兼容性最优、维护成本最低),全程分步讲解,从环境准备、域名配置、核心安装,到后台初始化、邮件配置、日常维护,新手可直接对照步骤操作,无需额外技术基础。
适用人群:需搭建社区论坛、技术交流平台、企业内部社区的个人/企业用户
部署方式:Docker 一键部署(官方标准方案,彻底避免环境冲突、依赖缺失问题)
必备条件:
-
云服务器:2核2G内存起步(并发量高建议2核4G及以上),拥有公网IP
-
域名:已备案(国内服务器必须备案,境外服务器可无需备案)
-
邮箱:可用的企业邮箱/第三方邮件服务(用于发送注册、密码找回、系统通知邮件)
-
权限:拥有服务器 root 管理员权限(可执行所有操作命令)
二、部署前准备工作
2.1 服务器要求(必看)
为确保 Discourse 稳定运行,服务器需满足以下最低配置,推荐配置可提升运行流畅度:
| 配置项 | 最低配置 | 推荐配置 | 说明 |
|---|---|---|---|
| 操作系统 | Ubuntu 20.04 LTS 64位 | Ubuntu 22.04 LTS 64位 | 仅推荐 Ubuntu,其他系统兼容性差 |
| CPU | 2核 | 4核 | 并发用户多需提升CPU配置 |
| 内存 | 2G | 4G | 内存不足会导致安装失败、运行卡顿 |
| 网络 | 公网IP,开放80/443端口 | 公网IP,带宽1M以上 | 80/443端口用于HTTP/HTTPS访问,不可关闭 |
2.2 域名与DNS配置
Discourse 需通过域名访问,需先完成域名注册和DNS解析,步骤如下:
-
注册域名:在阿里云、腾讯云、Namecheap等平台注册一个域名(如 yourdomain.com),完成实名认证(国内平台必需)。
-
DNS解析配置:进入域名管理后台,添加 A记录,实现域名指向服务器公网IP:
-
主机记录:填写 bbs 或 forum(自定义二级域名,如 bbs.yourdomain.com)
-
记录类型:选择 A(指向IP地址)
-
记录值:填写你的服务器公网IP(可在云服务器控制台查看)
-
TTL:默认600秒(解析生效时间,无需修改)
-
-
验证解析:配置完成后,等待5-10分钟,在本地电脑CMD中执行
ping bbs.yourdomain.com,若能ping通服务器IP,说明解析生效。
2.3 邮箱准备(核心必备)
Discourse 依赖邮件服务完成用户注册、密码找回、系统通知,必须提前准备可用的邮箱,并获取以下关键信息:
推荐邮箱类型:
-
企业邮箱:腾讯企业邮、阿里企业邮(免费、稳定,适合长期使用)
-
第三方邮件服务:SendGrid、Mailgun、阿里云邮件推送(发送量大时推荐)
-
测试用邮箱:QQ邮箱、163邮箱(新手测试可用,有发送频率限制,不适合生产环境)
需获取的邮箱信息:
-
SMTP服务器地址(如 QQ邮箱:smtp.qq.com,阿里企业邮:smtp.mxhichina.com)
-
SMTP端口(SSL加密常用465,非SSL常用587,优先选择465)
-
发件邮箱地址(如 admin@yourdomain.com)
-
SMTP密码/授权码(不是邮箱登录密码,需在邮箱后台开启SMTP服务并获取授权码)
三、服务器基础环境配置
需先在服务器上安装 Docker 和 Git(Discourse 安装依赖),全程通过命令行操作,步骤如下:
3.1 登录服务器
使用远程连接工具(Xshell、FinalShell、Putty 等),以 root 用户身份登录服务器:
-
主机地址:填写服务器公网IP
-
端口:默认22(若修改过SSH端口,填写修改后的端口)
-
用户名:root
-
密码:服务器登录密码(或使用密钥登录)
登录成功后,进入命令行界面,开始后续操作。
3.2 更新系统依赖
执行以下命令,更新系统软件包,确保环境最新,避免安装冲突:
apt update -y && apt upgrade -y命令执行完成后,系统会自动更新所有可更新的软件包,无需手动干预。
3.3 安装 Docker 环境
Discourse 官方推荐使用 Docker 部署,执行官方一键安装脚本,快速完成 Docker 安装:
# 下载 Docker 安装脚本curl -fsSL https://get.docker.com -o get-docker.sh# 执行脚本安装 Dockersh get-docker.sh安装完成后,执行以下命令验证是否安装成功:
docker --version若出现类似Docker version 24.0.7, build 24.0.7-0ubuntu1~22.04.1 的版本信息,说明 Docker 安装成功。
3.4 安装 Git
Git 用于拉取 Discourse 官方安装包,执行以下命令安装:
apt install git -y安装完成后,执行 git --version,出现版本号即安装成功。
四、Discourse 核心安装部署
完成基础环境配置后,开始安装 Discourse,全程遵循官方步骤,简单易懂:
4.1 创建 Discourse 安装目录
官方推荐将 Discourse 安装在 /var/discourse 目录下,执行以下命令创建目录并进入:
# 创建目录mkdir -p /var/discourse# 进入目录cd /var/discourse4.2 拉取 Discourse 官方安装包
执行 Git 命令,拉取 Discourse 官方 Docker 安装包:
git clone https://github.com/discourse/discourse_docker.git /var/discourse拉取完成后,目录下会自动生成相关安装文件,无需手动修改。
4.3 启动安装配置向导
进入安装目录,执行官方安装脚本,启动交互式配置向导:
cd /var/discourse./discourse-setup执行命令后,会进入交互式配置界面,按提示依次输入以下信息(关键配置,务必准确):
| 提示内容 | 填写示例 | 详细说明 |
|---|---|---|
| Hostname for your Discourse? | bbs.yourdomain.com | 填写你配置好的域名,必须和DNS解析一致,否则无法访问 |
| Email address for admin account? | admin@yourdomain.com | 管理员邮箱,用于接收系统通知、重置密码 |
| SMTP server address? | smtp.qq.com | 你的邮箱SMTP服务器地址,提前准备好 |
| SMTP port? | 465 | SSL加密端口,优先填465;非SSL填587 |
| SMTP username? | 123456@qq.com | 完整的发件邮箱地址,和准备的邮箱一致 |
| SMTP password? | abcdefghijklmnop | 邮箱SMTP授权码,不是登录密码,避免填错 |
| Enable Let’s Encrypt (SSL)? | y | 输入y,自动申请免费SSL证书,实现HTTPS访问(推荐) |
| Last chance to change any settings? | y | 确认所有配置无误,输入y开始安装;有误输入n重新配置 |
4.4 等待安装完成
确认配置后,脚本会自动执行以下操作,无需手动干预:
-
下载 Discourse 相关 Docker 镜像(约几百MB,取决于服务器网速)
-
配置 Discourse 容器参数、数据库、邮件服务
-
启动 Discourse 服务
-
申请并配置 Let’s Encrypt SSL 证书
安装全程约 5-15 分钟(网速越快,时间越短),当命令行出现 ==> Admin is ready 字样时,说明 Discourse 安装成功。
五、管理员账号初始化
安装完成后,需通过浏览器访问论坛,创建并激活管理员账号,步骤如下:
-
打开浏览器,输入你的域名(如 https://bbs.yourdomain.com),注意必须用 HTTPS(若SSL未生效,可等待5分钟后刷新)。
-
页面会自动跳转至「注册管理员账号」页面,填写以下信息:
-
用户名:管理员账号名称(如 admin)
-
密码:管理员密码(建议复杂密码,包含字母、数字、符号)
-
邮箱:必须和安装时填写的管理员邮箱一致(如 admin@yourdomain.com)
-
-
填写完成后,点击「注册」按钮,系统会发送一封验证邮件到你的管理员邮箱。
-
登录你的邮箱,找到 Discourse 发送的验证邮件,点击邮件中的「验证链接」,即可完成管理员账号激活。
-
激活后,自动跳转至论坛首页,点击右上角「登录」,输入管理员账号密码,即可登录论坛。
注意:若未收到验证邮件,说明 SMTP 配置有误,参考下文「邮件配置故障排查」进行修正。
六、论坛基础后台配置
登录管理员后台(访问 https://bbs.yourdomain.com/admin),完成基础配置,让论坛正常可用:
6.1 基础站点设置
-
进入后台后,点击左侧菜单栏「设置」→「基础」(Settings → Basic)。
-
配置核心参数:
-
站点名称:填写论坛名称(如 XX 技术社区)
-
站点描述:填写论坛简介(如 专注于XX技术交流的社区平台)
-
网站图标:上传论坛图标(建议尺寸 128x128px,格式 PNG)
-
首页样式:选择论坛首页展示样式(默认即可,可后期调整)
-
-
配置访问权限:
-
允许注册:开启(默认开启,允许新用户注册)
-
游客访问:开启(允许未登录用户查看论坛内容,提升活跃度)
-
-
配置完成后,点击页面底部「保存更改」。
6.2 中文语言配置(新手必备)
Discourse 默认语言为英文,需手动切换为简体中文:
-
进入后台「设置」→「区域设置」(Settings → Locale)。
-
找到「默认区域设置」(default locale),下拉选择「zh_CN(简体中文)」。
-
点击页面底部「保存更改」,刷新浏览器,界面会自动切换为简体中文。
6.3 关闭新用户限制(可选)
Discourse 默认对新用户有严格限制(如无法发帖、评论),新手测试或初期运营可临时关闭:
-
进入后台「设置」→「新用户」(Settings → New User)。
-
找到「新用户限制」(new user restrictions),点击关闭。
-
保存更改,新注册用户即可正常发帖、评论。
七、邮件配置故障排查
若安装后无法收到验证邮件、注册邮件,大概率是 SMTP 配置有误,需手动修改配置文件,步骤如下:
-
登录服务器,进入 Discourse 安装目录:
cd /var/discourse -
编辑 Discourse 配置文件:
nano containers/app.yml -
在配置文件中找到 SMTP 配置区域(搜索 DISCOURSE_SMTP),修正以下参数(参考示例):
# SMTP 配置示例(QQ邮箱) DISCOURSE_SMTP_ADDRESS: smtp.qq.com DISCOURSE_SMTP_PORT: 465 DISCOURSE_SMTP_USER_NAME: 123456@qq.com DISCOURSE_SMTP_PASSWORD: 你的SMTP授权码 DISCOURSE_SMTP_ENABLE_START_TLS: false DISCOURSE_SMTP_SSL: true -
保存并退出配置文件:按 Ctrl+O 保存,按 Ctrl+X 退出。
-
重建 Discourse 容器,使配置生效:
./launcher rebuild app -
重建完成后,重新尝试注册或发送验证邮件,即可正常收到。
常见问题:若仍无法收到邮件,检查邮箱 SMTP 服务是否开启、授权码是否正确,或更换其他邮箱重新配置。
八、Discourse 日常维护命令
所有维护命令均需在/var/discourse 目录下执行,常用命令如下,建议收藏:
8.1 启动/停止/重启论坛
# 启动论坛./launcher start app
# 停止论坛./launcher stop app
# 重启论坛(修改配置后无需重建时使用)./launcher restart app8.2 重建容器(关键命令)
修改配置文件(如 app.yml)后,必须执行重建命令,配置才能生效:
./launcher rebuild app8.3 升级 Discourse 版本
Discourse 会定期更新,执行以下命令升级到最新版本:
git pull./launcher rebuild app8.4 查看容器运行状态
查看 Discourse 容器是否正常运行:
docker ps若出现包含「discourse/app」的记录,说明容器正常运行。
8.5 重置管理员密码
若忘记管理员密码,执行以下命令重置:
cd /var/discourse./launcher enter apprake admin:create按提示输入新的管理员密码,即可重置成功。
九、备份与恢复
为避免数据丢失,建议定期备份论坛数据,备份与恢复步骤如下:
9.1 后台自动备份(推荐)
-
登录管理员后台,点击左侧菜单栏「备份」(Backups)。
-
开启「自动备份」,设置备份频率(如每天、每周)、备份保留份数(如保留最近7份)。
-
备份文件会自动存储在服务器本地,路径为
/var/discourse/shared/standalone/backups/default。
9.2 手动备份
执行以下命令,手动创建论坛备份:
cd /var/discourse./launcher enter appdiscourse backup备份完成后,可在上述备份路径中找到备份文件(格式为 .tar.gz)。
9.3 恢复备份
当论坛数据丢失或出现故障时,可通过备份文件恢复:
-
将备份文件(.tar.gz)上传到服务器备份路径
/var/discourse/shared/standalone/backups/default。 -
登录管理员后台,进入「备份」页面,找到上传的备份文件,点击「恢复」。
-
等待恢复完成,论坛数据会恢复到备份时的状态。
十、常见问题解决方案
10.1 论坛无法访问
-
检查服务器 80/443 端口是否开放:进入云服务器控制台,在安全组中放行 80(HTTP)、443(HTTPS)端口。
-
检查 DNS 解析是否生效:重新 ping 域名,确认指向正确的服务器IP。
-
检查容器是否运行:执行
docker ps,若未运行,执行./launcher start app启动。
10.2 HTTPS 证书失效
-
确认域名已备案(国内服务器)、DNS 解析正确。
-
执行重建命令,重新申请 SSL 证书:
./launcher rebuild app。
10.3 内存不足导致安装失败
服务器内存低于2G时,会导致安装失败,解决方案:创建 swap 分区(临时增加内存):
# 创建 2G swap 分区fallocate -l 2G /swapfile# 设置权限chmod 600 /swapfile# 格式化 swap 分区mkswap /swapfile# 启用 swap 分区swapon /swapfile创建完成后,重新执行安装命令即可。
10.4 论坛运行卡顿
-
检查服务器内存/CPU使用率:执行
top命令,若使用率过高,升级服务器配置。 -
重启论坛:执行
./launcher restart app,释放内存。
十一、文档总结
-
本教程采用 Discourse 官方唯一推荐的 Docker 部署方式,具有稳定、易维护、适配所有版本的优势,新手可轻松上手。
-
核心安装流程:服务器准备 → 域名DNS解析 → 安装 Docker/Git → 拉取 Discourse 源码 → 交互式配置 → 初始化管理员 → 后台配置。
-
关键注意点:SMTP 邮件配置必须正确(否则无法注册用户)、域名需备案(国内服务器)、服务器内存不低于2G。
-
日常维护:掌握重建容器、升级版本、备份恢复三个核心操作,即可保障论坛稳定运行。
按照本教程操作,即可完成 Discourse 论坛的从零到一部署,适合个人、企业、团队搭建专属社区平台。
(注:文档部分内容可能由 AI 生成)