# 生产环境示例：复制为 backend/.env 后再替换所有 change-* 占位值。
APP_ENV=production
APP_ADDR=:8080

# Caddy 自动申请和续签 HTTPS 证书使用。
CADDY_DOMAIN=hfb.221329.cc.cd
CADDY_EMAIL=admin@example.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

LOG_LEVEL=info
LOG_DIR=/app/logs
LOG_ENABLE_CONSOLE=true
LOG_ENABLE_FILE=true

# MinIO 容器初始化变量，同时供后端对象存储使用；使用内置 MinIO 时，STORAGE_* 密钥必须和 MINIO_ROOT_* 保持一致。
MINIO_ROOT_USER=change-minio-user
MINIO_ROOT_PASSWORD=change-minio-password
STORAGE_ENDPOINT=http://minio:9000
STORAGE_BUCKET=hfb-sys
STORAGE_ACCESS_KEY_ID=change-minio-user
STORAGE_SECRET_ACCESS_KEY=change-minio-password

# 生产环境建议接入真实短信服务；未配置时不要使用 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=
