Files
hfb_sys/backend/.env.prod.example

135 lines
6.1 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 生产环境示例:复制为 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
# 数据库连接池与慢查询阈值;总连接数按实例数核算,避免超过 MySQL max_connections。
DATABASE_MAX_OPEN_CONNS=50
DATABASE_MAX_IDLE_CONNS=10
DATABASE_CONN_MAX_LIFETIME_MINUTES=30
DATABASE_CONN_MAX_IDLE_TIME_MINUTES=5
DATABASE_SLOW_QUERY_THRESHOLD_MS=500
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 应使用内网 Endpointhttps://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 挂入 backend。
BACKUP_STATUS_DIR=/data/backups/status
# backend 容器内的只读状态文件路径,通常保持默认。
BACKUP_STATUS_FILE=/var/run/hfb-backup-status/status.json
# 隔离恢复演练的数据目录,必须与 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