先看入口,docker应用商店里直接搜关键词,就能找到discourse的镜像,点击安装
.
点击安装后跳出如下提示:
按照提示录入相关信息即可,主要是SMTP,和外部域名这块,一定要填合适
安装成功的截图
这个时候,访问域名会发现如下提示:
Register Admin Account
Unfortunately, no administrator emails were defined during setup, so finalizing the configuration may be difficult. Please add a developer email in the configuration file or create an administrator account from console .
我们直接点击蓝色链接,看下原因,是没有创建管理员账户
然后,点击容器,选择这个终端
在控制台中,运行以下命令:
rake admin:create
系统将提示您输入:
将创建一个新帐户,其用户名基于电子邮件地址。您将看到:“Account created successfully with username {username}”。当被问及是否要授予管理员权限时,按 Enter 确认。
如果成功,您将看到:“Your account now has Admin privileges!”
访问域名,发现安装成功了
hex
May 30, 2026, 10:16pm
2
部署还挺方便挺快的。
Discourse部署最大的问题是网络条件的问题,如果网络条件比较好的话,部署都通常比较快。
容器和代码都在 GitHub 上面,对中国用户这真的不是非常友好,很多组件下载不下来。
有时候在想这个问题也不应该完全怪 discourse 吧,谁让我们有个那个什么对吧。
宝塔安装还是会端口冲突,问了ai终于解决了
如果在 /var/discourse/containers/ 目录下找不到 app.yml,通常是因为你在使用 XShell 运行官方的 ./discourse-setup 自动配置脚本时,中途因为刚才的 DNS 验证失败 或 端口被占用 报错退出了。
官方脚本只有在所有验证全部通过后,才会根据你的输入自动生成 app.yml。如果中途卡住,这个文件确实就不会存在。
别担心,既然我们已经知道了要在宝塔共存,我们可以通过以下两种方法来解决:
方法一:用原本就有的模板复制一个(最推荐)
Discourse 官方其实在 samples 文件夹里为你准备好了模板。我们可以直接复制一个出来,手动跳过验证。
在 XShell 中执行复制命令:
Bash
cd /var/discourse
cp samples/standalone.yml containers/app.yml
刷新宝塔面板:
现在回到宝塔后台的 /var/discourse/containers/ 目录,刷新一下,你就会看到 app.yml 出现了!
在宝塔里双击打开 app.yml,修改以下几项关键配置:
端口修改(找 expose:):
YAML
expose:
- "8080:80" # 修改为 8080
- "8443:443" # 修改为 8443
域名和邮箱(向下滑动找到对应的项):
YAML
DISCOURSE_HOSTNAME: 'www.dalao.cc'
DEVELOPER_EMAILS: '你的管理员邮箱@example.com'
SMTP 邮件设置(根据你的邮箱服务商填写):
YAML
DISCOURSE_SMTP_ADDRESS: smtp.xxx.com
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: '你的发件箱@xxx.com'
DISCOURSE_SMTP_PASSWORD: '你的条客户端授权码'
保存文件,回到 XShell 运行强制构建:
Bash
./launcher rebuild app
方法二:在 XShell 里用临时端口重新运行向导
如果你觉得手动改模板文件太麻烦,怕格式搞错,我们可以让官方的安装向导重新跑一遍,但在启动前,先把宝塔的 Nginx 暂时关掉几分钟,等它通过验证并生成 app.yml 后,我们再去宝塔里改端口。
在 XShell 中暂时停止宝塔 Nginx(释放端口让向导通过):
Bash
/etc/init.d/nginx stop
重新运行向导:
Bash
cd /var/discourse
./discourse-setup
一路输入你的信息:
这时候因为 80/443 端口空出来了,DNS 验证也会顺利通过。输入完域名、邮箱、SMTP 后,脚本会开始自动构建。
去宝塔里改端口:
等它构建完成后,去宝塔后台的 /var/discourse/containers/app.yml 里,把 expose: 下面的 80:80 改成 8080:80,443:443 改成 8443:443 并保存。
在 XShell 里让配置生效:
Bash
./launcher rebuild app
重新启动宝塔 Nginx:
Bash
/etc/init.d/nginx start
现在,两种方法都能让你顺利拿到 app.yml 并且避开冲突。接下来就可以去宝塔「网站」里添加 www.dalao.cc 并配置反向代理(指向 http://127.0.0.1:8080)了!