部署搭建discourse
服务器配置与部署

部署搭建discourse

JACIN··10 分钟阅读

[toc]

环境搭建#

更换 vps 后不可以直接从原来的复制过来,还是只能先 git 后才能。

bash
git clone https://github.com/discourse/discourse_docker.git /root/discourse

vim containers/app.yml

这里需要配置 app.yml 文件信息,这里主要就是配置 postgresql + 邮件服务。

注意我这里的 redis 还是使用的是内网环境,那么 discourse 需要和他在一个网段,docker network create mynetwork 即可。

redis 可以不设置密码,只在 docker 网络通端口接口。pg 可以使用公网地址,或者其他的网络段(不建议 数据库也使用 docker 网络所以我配置了 host 模式)另外这里的 email 服务也必须提前配好。可以见我这个 gmail 配置 stmp:

[https://jacin.me/posts/cloudfare-gmail-smtp-47

DISCOURSE_HOSTNAME就是你的配置的域名信息。

yaml
## 这是一个 Discourse "Web Only" 配置文件 (Nginx 反代版)

templates:
  # ✅ 只保留 Web 服务 (无 SSL, 无数据库)
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"

## 端口暴露
expose:
  # ✅ 监听本地 37880,映射到容器 80
  - "127.0.0.1:37880:80"

## 💡 网络配置
docker_args:
  # 👇 加入 Redis 所在的网络
  - "--network=mynetwork"

params:
  # ✅ 保持 english,防止中文安装报错 (中文搜索靠后台设置)
  db_default_text_search_config: "pg_catalog.english"
  db_name: discourse

env:
  ## 🌍 域名配置
  DISCOURSE_HOSTNAME: 'www.jacin.me'
  DISCOURSE_DEVELOPER_EMAILS: 'info@jacin.me'

  ## ⚡️⚡️⚡️【这里漏了,必须加!】⚡️⚡️⚡️
  # 告诉 Discourse 即使容器内是 HTTP,对外也要生成 HTTPS 链接
  DISCOURSE_FORCE_HTTPS: true
  DISCOURSE_S3_USE_PATH_STYLE: true
  ## 📧 邮件服务
  DISCOURSE_SMTP_ADDRESS: 
  DISCOURSE_SMTP_PORT: 
  DISCOURSE_SMTP_USER_NAME: 
  DISCOURSE_SMTP_PASSWORD: 
  DISCOURSE_SMTP_ENABLE_START_TLS: true

  ## 🐘 连接 PostgreSQL (走公网 IP)
  DISCOURSE_DB_HOST: 
  DISCOURSE_DB_USERNAME: 
  DISCOURSE_DB_PASSWORD: 

  ## 🚀 连接 Redis (走 Docker 内网)
  DISCOURSE_REDIS_HOST: my-redis
  # 👇 【确认一下】如果你 Redis 设置了密码,这就得填,没设就注释掉
  # DISCOURSE_REDIS_PASSWORD: MySuperSecretRedisPwd

## 路径配置 (已确认为 /root 路径)
volumes:
  - volume:
      host: /root/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /root/discourse/shared/standalone/log/var-log
      guest: /var/log


hooks:
  after_code:
    - exec:
        cmd:
          - echo "开始安装 PostgreSQL 16 客户端以匹配外部数据库..."
          # 1. 安装基础工具
          - apt-get update && apt-get install -y wget gnupg lsb-release
          # 2. 导入 PG 官方签名 Key
          - sh -c 'wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -'
          # 3. 添加 PG 16 软件源
          - sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
          # 4. 更新并安装客户端
          - apt-get update
          - apt-get install -y postgresql-client-16
          # 5. 🚨【关键一步】强制覆盖软链接,确保系统调用的是 v16 而不是默认的 v15
          - ln -sf /usr/lib/postgresql/16/bin/pg_dump /usr/bin/pg_dump
          - ln -sf /usr/lib/postgresql/16/bin/psql /usr/bin/psql
          - echo "PostgreSQL 16 客户端安装完成,软链接已修正。"

评论

还没有评论,来发第一个吧