- 登录链路改为用户名 + 密码 + 短信验证码 + DCAuth v2 设备签名 - 迁移 014:新增 login_sms_codes / user_devices / device_challenges 与 users.phone - 新增 /api/dcauth/authorize 与 challenge 状态轮询;旧密码登录仅放行未绑定手机号的账号 - 成员管理支持手机号绑定、设备重置、账号改名、昵称与重置密码 - 移除最后一个商户关系时软删除账号,释放用户名、手机号并撤销设备绑定
74 lines
3.2 KiB
Bash
74 lines
3.2 KiB
Bash
# 端口(默认值已避开常见端口,避免与其他项目冲突;如需调整可在此覆盖)
|
|
PORT=18080
|
|
FRONTEND_PORT=15173
|
|
# Caddy 对外端口:生产部署需域名绑定 80/443;本机与其他站点共存时可覆盖
|
|
# HTTP_PORT=80
|
|
# HTTPS_PORT=443
|
|
# JWT_SECRET 应用主密钥(用于签发后台登录 Token 与敏感数据加密)。
|
|
# 生成方式:openssl rand -hex 32
|
|
JWT_SECRET=your_very_secure_jwt_secret_here_change_me_in_production
|
|
# DATA_ENCRYPTION_KEY 可选,未设置时默认由 JWT_SECRET 派生(推荐保持单主密钥极简架构)。
|
|
# DATA_ENCRYPTION_KEY=
|
|
# 仅用于空数据库的首次启动;已有管理员账号时不会被覆盖。
|
|
POSTGRES_USER=affiliate
|
|
POSTGRES_PASSWORD=affiliate_dev_password
|
|
POSTGRES_DB=affiliate_dash
|
|
POSTGRES_PORT=15432
|
|
COMPOSE_PROJECT_NAME=affiliate_dash
|
|
POSTGRES_DATA_VOLUME=affiliate_dash_postgres_data
|
|
TZ=Asia/Shanghai
|
|
DATABASE_URL="postgres://affiliate:affiliate_dev_password@127.0.0.1:15432/affiliate_dash?sslmode=disable&TimeZone=Asia/Shanghai"
|
|
# Docker 后端容器内连接串通常不需要改;需要外部数据库时再覆盖。
|
|
# DOCKER_DATABASE_URL="postgres://affiliate:affiliate_dev_password@postgres:5432/affiliate_dash?sslmode=disable&TimeZone=Asia/Shanghai"
|
|
GIN_MODE=release
|
|
OPEN_API_KEY=sk_source_dev_key_change_me
|
|
OPEN_API_SECRET=sk_source_dev_secret_change_me
|
|
OPEN_SIGN_SKEW=300
|
|
OPEN_API_DEBUG=false
|
|
LOG_FILE=logs/app.log
|
|
DELIVERY_BASE_URL=
|
|
DELIVERY_BFF_BASE_URL=https://www.jxya.top/bff
|
|
DELIVERY_CHANNEL=dlc
|
|
DELIVERY_LINK_SECRET=change_me_for_delivery_link_sign
|
|
# 发货链接有效期(分钟),0 或留空表示永久有效
|
|
DELIVERY_LINK_TTL_MINUTES=0
|
|
FULFILLMENT_PROCESSING_TIMEOUT_MINUTES=30
|
|
FULFILLMENT_TIMEOUT_SCAN_INTERVAL_SECONDS=60
|
|
|
|
# 登录短信渠道(用户名 + 密码 + 短信验证码 + DCAuth v2 设备签名)
|
|
# mock: 只把验证码写入后端日志,不做每日限额,适合本地开发
|
|
# aliyun: 通过 Dysmsapi RPC 签名调用真实短信
|
|
WORKER_SMS_PROVIDER=mock
|
|
WORKER_SMS_ACCESS_KEY_ID=
|
|
WORKER_SMS_ACCESS_KEY_SECRET=
|
|
WORKER_SMS_SIGN_NAME=
|
|
WORKER_SMS_TEMPLATE_CODE=
|
|
WORKER_SMS_CODE_TTL_SECONDS=300
|
|
WORKER_SMS_COOLDOWN_SECONDS=60
|
|
WORKER_SMS_DAILY_LIMIT=10
|
|
|
|
# 乐玩开放平台配置
|
|
LEWAN_BASE_URL=https://shop.cloudtentacles.com
|
|
LEWAN_APPLICATION_ID=
|
|
LEWAN_ACCESS_KEY=
|
|
LEWAN_SECRET_KEY=
|
|
LEWAN_WEBHOOK_SECRET=
|
|
|
|
# 跨域来源白名单(逗号分隔)。生产前后端同域(Caddy 统一入口)无需配置;
|
|
# 仅前后端分离部署时设置,例如:CORS_ALLOWED_ORIGINS=https://admin.example.com
|
|
# 为空时仅放行本地开发端口 localhost:15173 / 18080;不支持 "*"(与凭证模式冲突)。
|
|
# CORS_ALLOWED_ORIGINS=
|
|
|
|
# Docker 构建基础镜像;如镜像源不可用,可改为官方镜像或你的私有镜像源
|
|
POSTGRES_IMAGE=docker.m.daocloud.io/library/postgres:16-alpine
|
|
GO_BUILDER_IMAGE=docker.m.daocloud.io/library/golang:1.26-alpine
|
|
BACKEND_RUNTIME_IMAGE=docker.m.daocloud.io/library/alpine:3.22
|
|
NODE_BUILDER_IMAGE=docker.m.daocloud.io/library/node:22-alpine
|
|
CADDY_BASE_IMAGE=docker.m.daocloud.io/library/caddy:2-alpine
|
|
|
|
# Docker 构建阶段包管理加速源
|
|
GOPROXY=https://goproxy.cn,direct
|
|
GOSUMDB=sum.golang.google.cn
|
|
ALPINE_MIRROR=https://mirrors.aliyun.com/alpine
|
|
NPM_REGISTRY=https://registry.npmmirror.com
|