- scripts/patch_env.py:把 KEY=VALUE 文件合并进 .env,只回显键名与长度,不回显密钥 - scripts/check_s4.py:在生产机上验证「预签名 → PUT → 公开读回」整条直传链路 - .env.example:注明本地后端连生产库时 HASHID_SECRET 必须与线上一致 (不一致会把线上 brand_uid 解码成另一个 id,任务被判 brand not found)
75 lines
3.0 KiB
Plaintext
75 lines
3.0 KiB
Plaintext
# ============================================================
|
||
# 生产环境变量模板:复制为 .env 后填写(.env 已在 .gitignore 中)
|
||
# cp .env.example .env
|
||
# 生成随机密钥:openssl rand -hex 32
|
||
# ============================================================
|
||
|
||
# ---- 数据库 ----
|
||
# 生产复用宿主机上的 Postgres(如 1Panel 自带),容器内经 host-gateway 访问
|
||
# 下列 DB_* 同时用于容器与 init-db.sh / backup-db.sh(脚本走 --network host)
|
||
DB_USER=fashion
|
||
DB_NAME=fashion
|
||
# 上线必改:不要沿用开发库口令
|
||
DB_PASSWORD=
|
||
# 容器内访问宿主的固定写法;若数据库在另一台机器,改成那台的地址
|
||
DB_HOST=host.docker.internal
|
||
DB_PORT=5432
|
||
# 1Panel 管理的 Postgres 容器名(init-db.sh / backup-db.sh 直接 docker exec 进去)
|
||
# 查法:docker ps --format '{{.Names}}' | grep -i postgres
|
||
PG_CONTAINER=1Panel-postgresql-4Ndp
|
||
|
||
# ---- 后端密钥(必填,缺了容器拒绝启动)----
|
||
# 公开 ID 混淆盐:上线后不要再改,改了所有旧链接失效
|
||
# ⚠️ 本地开发后端若连的是生产库(同一套 DB),这个值必须与线上完全一致。
|
||
# 不一致时本地后端会把 crawl/ingest 里线上编码的 brand_uid 解码成另一个 id,
|
||
# 任务被判「brand not found」——本地机器于是把生产队列里的任务做成失败。
|
||
HASHID_SECRET=
|
||
JWT_SECRET=
|
||
# 爬虫上报 HMAC 密钥:须与爬虫端 config.yml 的 ingest.secret 完全一致
|
||
INGEST_SECRET=
|
||
# SSG 内部接口令牌(可选,留空则只依赖回环绑定)
|
||
SSG_TOKEN=
|
||
|
||
# ---- 对象存储(缤纷云 S4)----
|
||
S4_ENABLED=true
|
||
# 从开发机 configs/config.local.yml 取,或到控制台重新生成子账户密钥
|
||
S4_AK=
|
||
S4_SK=
|
||
S4_BUCKET=toomstudio
|
||
S4_ENDPOINT=https://s3.bitiful.net
|
||
S4_REGION=cn-east-1
|
||
# 留空自动推导为 https://<bucket>.s3.bitiful.net
|
||
S4_BASE_URL=
|
||
|
||
# ---- 目录与访问 ----
|
||
# 前端仓库位置(服务器 /opt/fashion 下是 ../frontend_v2)
|
||
WEB_DIR=../frontend_v2
|
||
# 前端 nginx 监听端口(有宿主机 nginx/宝塔占用 80 时改成 8080 再由外层反代)
|
||
HTTP_PORT=80
|
||
CORS_ALLOW_ORIGINS=https://xisoa.com,https://www.xisoa.com
|
||
|
||
# ---- 限流(生产建议开启)----
|
||
RATE_LIMIT_ENABLED=true
|
||
RATE_LIMIT_RPS=20
|
||
RATE_LIMIT_BURST=40
|
||
|
||
# ---- 入库 worker(下载并发 1~16,Vogue 实测 4 较稳)----
|
||
INGEST_IMAGE_CONCURRENCY=4
|
||
# 图片下载代理,留空直连;仅作用于下载,不影响上传与数据库
|
||
INGEST_DOWNLOAD_PROXY=
|
||
|
||
# ---- 视觉服务(可选,默认关闭)----
|
||
VISION_ENABLED=false
|
||
VISION_ENDPOINT=http://127.0.0.1:8900
|
||
|
||
# ---- 构建 ----
|
||
# 服务器拉 Go 依赖的代理
|
||
GOPROXY=https://goproxy.cn,direct
|
||
|
||
# ---- 代码分支 ----
|
||
# deploy.sh 会把后端仓与前端仓都切到该分支并快进拉取;临时换分支:
|
||
# GIT_BRANCH=dev ./deploy.sh all
|
||
# 不想拉代码(例如手动 checkout 了某个提交)时加 --no-pull
|
||
# 注意:本项目远程默认分支是 main(不是 master),日常开发在 dev 上
|
||
GIT_BRANCH=main
|