发现新文章

578 字
3 分钟
手把手教你部署Discourse
Discourse是一个开源的强大的论坛系统,让你马上就能拥有自己的BBS
2025年5月2日 00:00
0 次

正式开始#

确保你安装了 DockerDocker-Compose

选一个目录创建 docker-compose.yml

写入内容

version: '2'
services:
  postgresql:
    image: docker.io/bitnami/postgresql:11
    volumes:
      - 'postgresql_data:/bitnami/postgresql'
    environment:
      - POSTGRESQL_POSTGRES_PASSWORD=admin12345
      - POSTGRESQL_USERNAME=ex_discourse
      - POSTGRESQL_PASSWORD=user12345
      - POSTGRESQL_DATABASE=example_discourse
  redis:
    image: docker.io/bitnami/redis:6.0
    environment:
      - REDIS_PASSWORD=redis12345
    volumes:
      - 'redis_data:/bitnami/redis'
  discourse:
    image: docker.io/bitnami/discourse:2
    ports:
      - '127.0.0.1:880:3000'
    volumes:
      - 'discourse_data:/bitnami/discourse'
    depends_on:
      - postgresql
      - redis
    environment:
      # 用户和站点配置
      - DISCOURSE_HOST=example.com
      - DISCOURSE_USERNAME=siteadmin
      - DISCOURSE_PASSWORD=siteadmin12345
      - DISCOURSE_EMAIL=siteadmin@gmail.com
      # 数据库连接配置
      - DISCOURSE_DATABASE_HOST=postgresql
      - DISCOURSE_DATABASE_PORT_NUMBER=5432
      - DISCOURSE_DATABASE_USER=ex_discourse
      - DISCOURSE_DATABASE_PASSWORD=user12345
      - DISCOURSE_DATABASE_NAME=example_discourse
      # Redis 连接配置
      - DISCOURSE_REDIS_HOST=redis
      - DISCOURSE_REDIS_PORT_NUMBER=6379
      - DISCOURSE_REDIS_PASSWORD=redis12345
      # 使用 postgresql-client 为 Discourse 创建数据库
      - POSTGRESQL_CLIENT_POSTGRES_USER=postgres
      - POSTGRESQL_CLIENT_POSTGRES_PASSWORD=admin12345
      - POSTGRESQL_CLIENT_CREATE_DATABASE_NAME=example_discourse
      - POSTGRESQL_CLIENT_CREATE_DATABASE_EXTENSIONS=hstore,pg_trgm
      # SMTP
      - DISCOURSE_SMTP_HOST=smtp.mailgun.org
      - DISCOURSE_SMTP_PORT=587
      - DISCOURSE_SMTP_USER=邮箱用户名
      - DISCOURSE_SMTP_PASSWORD=邮箱密码
      - DISCOURSE_SMTP_PROTOCOL=tls或ssl
      - DISCOURSE_SMTP_AUTH=login
  sidekiq:
    image: docker.io/bitnami/discourse:2
    depends_on:
      - discourse
    volumes:
      - 'sidekiq_data:/bitnami/discourse'
    command: /opt/bitnami/scripts/discourse-sidekiq/run.sh
    environment:
      # 用户和站点配置
      - DISCOURSE_HOST=example.com
      - DISCOURSE_USERNAME=siteadmin
      - DISCOURSE_PASSWORD=siteadmin12345
      - DISCOURSE_EMAIL=siteadmin@gmail.com
      # 数据库连接配置
      - DISCOURSE_DATABASE_HOST=postgresql
      - DISCOURSE_DATABASE_PORT_NUMBER=5432
      - DISCOURSE_DATABASE_USER=ex_discourse
      - DISCOURSE_DATABASE_PASSWORD=user12345
      - DISCOURSE_DATABASE_NAME=example_discourse
      # Redis 连接配置
      - DISCOURSE_REDIS_HOST=redis
      - DISCOURSE_REDIS_PORT_NUMBER=6379
      - DISCOURSE_REDIS_PASSWORD=redis12345
      # SMTP
      - DISCOURSE_SMTP_HOST=smtp.mailgun.org
      - DISCOURSE_SMTP_PORT=587
      - DISCOURSE_SMTP_USER=邮箱用户名
      - DISCOURSE_SMTP_PASSWORD=邮箱密码
      - DISCOURSE_SMTP_PROTOCOL=tls或ssl
      - DISCOURSE_SMTP_AUTH=login
volumes:
  postgresql_data:
    driver: local
  redis_data:
    driver: local
  discourse_data:
    driver: local
  sidekiq_data:
    driver: local

需要修改的部分。配置文件中两份都要改

需替换值解释
admin12345数据库管理员密码(可选)
ex_discourse数据库用户名(可选)
user12345数据库用户密码(可选)
example_discourse数据库名(可选)
redis12345Redis 密码(可选)
127.0.0.1:880映射端口(可选)
example.com网站IP或域名(不加HTTP)(必改
siteadmin网站管理员用户名(必改
siteadmin12345网站管理员密码(必改
siteadmin@gmail.com网站管理员邮箱(必改
smtp.mailgun.org邮箱HOST(必改
587邮箱端口。只能用587端口(必改
邮箱用户名邮箱用户名(必改
邮箱密码邮箱密码(或者授权码)(必改
tls邮箱协议。只能用TLS协议(必改

如果需要一个支持SMTP TLS的邮箱服务可以使用微信企业邮

构建:

docker compose up -d

如果遇到 docker.io 无法访问。可以使用镜像源

部署完毕后查看 discourse-discourse-1 容器的日志

如果看到下述日志,则Discourse正在进行预编译资源,稍等几分钟即可

INFO  ==> Precompiling assets, this may take some time...

如果看到下述日志,证明Discourse已经在容器内3000端口启动了

Accessible via: http://0.0.0.0:3000/

接下来访问你设置的域名(如果没有做解析或者网站在内网可以使用Cloudflare Tunnel曲线救国)

访问,大功告成

2025-05-02-22-20-51-image.webp

这篇文章是否对你有帮助?

发现错误或想要改进这篇文章?

在 GitHub 上编辑此页

文章修订历史 (18 次)

查看变更记录
4月4日 22:52:13 a694884

feat: 将所有存量文章时间统一减去8小时,修正时区偏移

3月10日 20:23 2e8ac90

chore: remove AI summaries from posts

3月1日 16:54:35 12ed72c

docs: 统一博客文章AI摘要模型为gemini-3-flash-preview并优化内容

2月25日 22:23:08 818735a

feat(posts): 为所有文章添加AI摘要并支持AI类型提示块

2月9日 07:50:52 f6e3e17

压缩图片

2025年8月1日 08:16:25 2f74587

!update: 将图源由R2改为Netlify

2025年7月26日 09:15:27 98609b5

feat: 更改域名为2x.nz

2025年7月19日 16:52:49 146fe9b

更改图源为EdgeOne

2025年7月19日 16:09:57 9bf0d90

chore: 更新图片域名从eo-r2.2x.nz到r2.afo.im

2025年7月19日 15:18:58 f5afef1

更改图源为EdgeOne

2025年7月18日 12:27:16 c7e56a3

1

2025年7月1日 23:29:28 4e3e7e8

posts: 更改图源CDN为Secbit MCDN,并且页脚放置赞助信息

2025年6月26日 21:07:29 b480111

update: 更新R2源。删除302

2025年6月25日 00:10:13 e2d1f68

update: 更新R2源

2025年5月16日 18:11:52 5178a56

更改图源URL

2025年5月13日 12:49:15 c9fa65d

更新教程文章中的图片链接,替换为外部存储地址

2025年5月13日 12:44:22 224aa5d

删除多余的图片资源文件

2025年5月2日 22:23:06 ae1c3a7

添加Discourse部署教程及相关配置示例

手把手教你部署Discourse
作者
二叉树树
发布于
2025年5月2日 00:00
许可协议
CC BY-NC-SA 4.0