124 lines
5.5 KiB
Bash
124 lines
5.5 KiB
Bash
# 生产环境示例:复制为 backend/.env 后再替换所有 change-* 占位值。
|
||
APP_ENV=production
|
||
APP_ADDR=:8080
|
||
|
||
# Caddy 自动申请和续签 HTTPS 证书使用。
|
||
CADDY_DOMAIN=hfb.221329.cc.cd
|
||
CADDY_EMAIL=admin@example.com
|
||
# 选号网(hfb_show)独立域名,与主站同机;不部署选号网可留空。
|
||
# CADDY_SHOW_DOMAIN=show.example.com
|
||
# 选号网源码目录(相对 hfb_sys 根或绝对路径),默认 ../hfb_show
|
||
# HFB_SHOW_DIR=../hfb_show
|
||
# 选号网 npm 源(国内服务器默认用 npmmirror,避免 registry.npmjs.org 超时)
|
||
# NPM_REGISTRY=https://registry.npmmirror.com
|
||
|
||
# MySQL 容器初始化变量,同时供后端 DSN 使用。
|
||
MYSQL_ROOT_PASSWORD=change-root-password
|
||
MYSQL_DATABASE=hfb_sys
|
||
MYSQL_USER=hfb
|
||
MYSQL_PASSWORD=change-hfb-password
|
||
MYSQL_DSN=hfb:change-hfb-password@tcp(mysql:3306)/hfb_sys?charset=utf8mb4&parseTime=True&loc=Local
|
||
|
||
REDIS_ADDR=redis:6379
|
||
REDIS_PASSWORD=
|
||
REDIS_DB=0
|
||
|
||
JWT_SECRET=change-to-a-long-random-secret
|
||
|
||
# 前端后台页面入口;生产请改成不公开的单段路径,不要使用 /admin。
|
||
VITE_ADMIN_BASE_PATH=/manage-7x9k2p
|
||
|
||
# 首次启动且管理员表为空时创建首个超级管理员;生产密码至少 12 位且包含字母和数字。
|
||
# 创建成功后建议从 .env 移除,后续管理员通过后台维护。
|
||
ADMIN_BOOTSTRAP_USERNAME=change-admin-username
|
||
ADMIN_BOOTSTRAP_PASSWORD=change-admin-password-123
|
||
ADMIN_BOOTSTRAP_NICKNAME=超级管理员
|
||
|
||
# API 限流:默认开启,每个 IP 每分钟 300 次。
|
||
RATE_LIMIT_ENABLED=true
|
||
RATE_LIMIT_REQUESTS_PER_MINUTE=300
|
||
|
||
# 后端容器使用宿主机业务用户的 UID/GID,服务器上可用 id -u yml、id -g yml 查询。
|
||
BACKEND_UID=1000
|
||
BACKEND_GID=1000
|
||
|
||
LOG_LEVEL=info
|
||
LOG_DIR=/app/logs
|
||
LOG_ENABLE_CONSOLE=false
|
||
LOG_ENABLE_FILE=true
|
||
LOG_RETAIN_DAYS=14
|
||
|
||
# 主对象存储:图片等数据已迁移到阿里云 OSS,MinIO 已从生产编排移除。
|
||
# 杭州 ECS 应使用内网 Endpoint:https://oss-cn-hangzhou-internal.aliyuncs.com
|
||
# OSS 的 S3 兼容访问使用 cn-hangzhou 区域和 DNS Bucket 寻址。
|
||
STORAGE_ENDPOINT=https://oss-cn-hangzhou-internal.aliyuncs.com
|
||
STORAGE_BUCKET=hfb-sys-assets
|
||
STORAGE_ACCESS_KEY_ID=change-oss-access-key-id
|
||
STORAGE_SECRET_ACCESS_KEY=change-oss-access-key-secret
|
||
STORAGE_REGION=cn-hangzhou
|
||
STORAGE_BUCKET_LOOKUP=dns
|
||
|
||
# 历史镜像写入配置,迁移完成后保持为空。
|
||
STORAGE_MIRROR_ENDPOINT=
|
||
STORAGE_MIRROR_BUCKET=
|
||
STORAGE_MIRROR_ACCESS_KEY_ID=
|
||
STORAGE_MIRROR_SECRET_ACCESS_KEY=
|
||
STORAGE_MIRROR_REGION=
|
||
STORAGE_MIRROR_BUCKET_LOOKUP=
|
||
|
||
# 生产环境建议接入真实短信服务;未配置时不要使用 mock 对外运营。
|
||
SMS_PROVIDER=aliyun
|
||
ALIYUN_ACCESS_KEY_ID=
|
||
ALIYUN_ACCESS_KEY_SECRET=
|
||
ALIYUN_SMS_ENDPOINT=dysmsapi.aliyuncs.com
|
||
ALIYUN_SMS_SIGN_NAME=
|
||
ALIYUN_SMS_LOGIN_TEMPLATE_CODE=
|
||
|
||
# 生产环境建议接入真实实名服务;未配置时不要使用 mock 对外运营。
|
||
REALNAME_PROVIDER=cloudmarket
|
||
REALNAME_CLOUDMARKET_URL=https://sinocheck2.market.alicloudapi.com/fortest/ttttt
|
||
REALNAME_CLOUDMARKET_APPCODE=
|
||
|
||
# 支付商户、网关和回调等业务配置通过后台支付配置页维护。
|
||
# 支付配置加密密钥(必须为 16、24 或 32 字节,生产环境必填)
|
||
# 用于加密存储支付商户配置中的敏感信息(sign_key、notify_key)
|
||
# 生成方式:openssl rand -hex 16
|
||
# 警告:此密钥一旦设置不要更改,否则已有配置无法解密
|
||
PAYMENT_CONFIG_ENCRYPTION_KEY=change-to-32-byte-encryption-key
|
||
|
||
# 业务字段加密密钥(必须为 16、24 或 32 字节,生产环境必填且与 legacy 不同)
|
||
# 用于加密实名信息(姓名、身份证)和收款账号(银行卡/支付宝号)
|
||
# 生成方式:openssl rand -hex 16
|
||
FIELD_ENCRYPTION_KEY=change-to-32-byte-field-encryption-key
|
||
# 业务字段旧密钥(密钥轮换期间用于透明解出旧密文,验证全部密文轮换完后删除)
|
||
# 首次部署若数据库已有用旧硬编码密钥加密的存量数据,填 hfb-sys-2024-secret-key-32bytes!
|
||
FIELD_ENCRYPTION_LEGACY_KEY=
|
||
|
||
# 开放导入接口可选签名密钥;内部调用方暂不签名时可留空。
|
||
# 若启用签名,生成方式:openssl rand -hex 32
|
||
EXTERNAL_UPLOAD_SECRET=
|
||
# 可选:逗号分隔的 IP 或 CIDR 白名单,例如 203.0.113.10,10.0.0.0/8。
|
||
EXTERNAL_UPLOAD_ALLOWED_IPS=
|
||
|
||
# 在线备份(scripts/backup-online.sh / scripts/archive-binlog.sh)。所有项为生产必填。
|
||
# 本地备份根目录,必须是独立数据盘上的 /data 子目录;包含加密全量备份与 binlog 状态。
|
||
BACKUP_DIR=/data/backups
|
||
# 隔离恢复演练的数据目录,必须与 BACKUP_DIR 不同;prepare 后的 MySQL 原始数据只放在这里。
|
||
BACKUP_RESTORE_DIR=/data/restore
|
||
# 备份专用 OSS Bucket(与业务 Bucket 分离),ossutil 使用。
|
||
# 生成方式:ossutil config 交互配置,或环境变量 OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET。
|
||
BACKUP_OSS_URI=oss://hfb-backup
|
||
# 客户端加密密码短语(独立保管,与业务密钥一同纳入 KMS/密码管理)。
|
||
# 生成方式:openssl rand -hex 32
|
||
BACKUP_PASSPHRASE=change-to-random-backup-passphrase
|
||
# 可选:自有 KMS Key ID。留空时 Bucket 必须开启“OSS 完全托管”服务器端加密。
|
||
BACKUP_KMS_KEY_ID=
|
||
# XtraBackup 专用 MySQL 账号,部署脚本会幂等创建并授予最小备份权限。
|
||
BACKUP_MYSQL_USER=hfb_backup
|
||
# 生成方式:openssl rand -hex 24。不要和 MySQL 应用账号或 root 密码复用。
|
||
BACKUP_MYSQL_PASSWORD=change-backup-mysql-password
|
||
# 本地保留策略(OSS 侧用 Bucket 生命周期规则管理,见脚本头部注释)。
|
||
BACKUP_KEEP_DAILY=14
|
||
BACKUP_KEEP_WEEKLY=8
|
||
BACKUP_KEEP_MONTHLY=12
|