[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 客户端安装完成,软链接已修正。"
评论
还没有评论,来发第一个吧
