# 数据库连接配置示例(库名/表结构以 docs/sql/zkxw.sql 全量导出为准) # DATABASE_URL 格式:mysql+pymysql://user:password@host:port/dbname DATABASE_URL=mysql+pymysql://root:password@localhost:3306/zkxw # 与 sys_user.tenant_no 一致;登录按 (tenant_no, user_no) 查用户 # DEFAULT_TENANT_NO=zkxw # 已废弃:无角色用户不可登录,JWT role 固定为 guest(勿设为 super_admin) # WEB_AUTH_DEFAULT_ROLE=guest # JWT配置(必填;启动时会拒绝空值与弱占位密钥,长度至少 32) # 生成:python -c "import secrets; print(secrets.token_urlsafe(48))" # 注意:更换 SECRET_KEY 会使已签发的 JWT 全部失效,用户需重新登录;生产勿随意轮换。 SECRET_KEY= # ALGORITHM=HS256 # ACCESS_TOKEN_EXPIRE_MINUTES=30 # 应用配置示例 # APP_NAME=陇耘鲜达 # DEBUG=true # 浏览器跨域:若设置 BACKEND_CORS_ORIGINS,须为 JSON 数组,会整体覆盖代码默认值,例如: # BACKEND_CORS_ORIGINS=["http://localhost:5173","http://localhost:3006","http://127.0.0.1:3006"] # DEBUG=true 时后端还会允许任意本机端口的 Origin(localhost / 127.0.0.1),便于本地换端口开发。 # 登录 RSA(Web/小程序加密登录;留空则各 Worker 共用内置默认密钥,生产建议配置独立 PEM) # LOGIN_RSA_PRIVATE_KEY_PEM="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n" # 仅本地用 Swagger/Apifox 明文测登录时可临时打开(生产务必 false) # LOGIN_ALLOW_PLAINTEXT_LOGIN=false # LOGIN_ENCRYPT_TS_SKEW_SEC=300 # Redis 配置(用于会话/Token 吊销;需在后端运行时配置) # 启用后:已登录用户每次 API 校验通过会滑动续期会话(7 天无操作则会话失效);未配置则仅校验 JWT。 # REDIS_HOST=127.0.0.1 # REDIS_PORT=6379 # REDIS_DB=0 # REDIS_PASSWORD= # REDIS_TIMEOUT_SEC=30 # REDIS_SSL_ENABLED=false # MinIO 配置示例 # STORAGE_TYPE=minio # MINIO_ENDPOINT=127.0.0.1:9000 # MINIO_ACCESS_KEY=CHANGEME # MINIO_SECRET_KEY=CHANGEME # MINIO_BUCKET=sanqiang # MINIO_SECURE=false # MINIO_BASE_URL=https://www.chengyantek.cn/sanqiang # 全量 API 请求日志(写入 sys_api_request_log;无表时会 warning「api_request_log persist failed」) # 解决二选一:① 在库中执行 docs/sql/optional-sys-api-request-log.sql 建表 ② 关闭写入: # API_REQUEST_LOG_ENABLED=false # 微信支付配置示例 # 小程序支付使用 JSAPI(trade_type=JSAPI) # 同时复用于小程序微信登录(code2session / 手机号):WXPAY_MINI_APPID + WXPAY_SECRET # WXPAY_MCHID=1900000109 # WXPAY_MINI_APPID=wx1234567890abcdef # WXPAY_SECRET=your-miniapp-secret # WXPAY_API_KEY=your-v2-api-key # WXPAY_NOTIFY_URL=https://www.chengyantek.cn/api/payment/notify # WXPAY_REFUND_NOTIFY_URL=https://www.chengyantek.cn/api/payment/refund-notify # WXPAY_SANDBOX=false # 微信服务号(OA 审批/抄送模板消息;access_token 用服务号凭证,miniprogram.appid 仍用 WXPAY_MINI_APPID) # 总开关:配好三套模板 ID 后改为 true # WX_MP_NOTIFY_ENABLED=true # WX_MP_APPID=wx_service_account_appid # WX_MP_SECRET=wx_service_account_secret # WX_MP_TEMPLATE_APPROVAL=ZKKnm3PrH97iKt4SDrONiw0TvpDyRbQXdmbF6wz-eak # WX_MP_TEMPLATE_CC=rHu7intrAqOqSlxmjqq7FfyC1GKbRi3XaP1-ZEcnvqs # WX_MP_TEMPLATE_APPLICANT_PROGRESS=rHu7intrAqOqSlxmjqq7Fb6ylcB3u3quKSBYUcR6NU4 # 审批:申请事项/操作人/操作时间/当前环节/申请类型 # WX_MP_TPL_FIELD_TITLE=thing12 # WX_MP_TPL_FIELD_APPLICANT=thing18 # WX_MP_TPL_FIELD_NODE=thing7 # WX_MP_TPL_FIELD_TIME=time17 # WX_MP_TPL_FIELD_PROCESS=thing8 # 抄送:业务名称/申请人/申请时间/流程名称 # WX_MP_TPL_CC_FIELD_TITLE=thing5 # WX_MP_TPL_CC_FIELD_APPLICANT=thing2 # WX_MP_TPL_CC_FIELD_TIME=time3 # WX_MP_TPL_CC_FIELD_PROCESS=thing1 # 申请人进度:业务名称/流程名称/审批人/审批结果(通过|失败|转办|其他)/审批时间 # WX_MP_TPL_PROGRESS_FIELD_BUSINESS=thing5 # WX_MP_TPL_PROGRESS_FIELD_PROCESS=thing1 # WX_MP_TPL_PROGRESS_FIELD_APPROVER=thing6 # WX_MP_TPL_PROGRESS_FIELD_RESULT=const4 # WX_MP_TPL_PROGRESS_FIELD_TIME=time11