tradingSystem/.env.example

61 lines
3.6 KiB
Plaintext
Raw 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.

# tradingSystem (PMS) 环境变量模板
# 服务器部署: cp .env.example .env 后填入真实值。.env 已在 .gitignore, 绝不入库。
# 键名与 bionic_trader 对齐, 同一台服务器两系统可参照同一套连接信息。
# 业务参数 (PMS_TOTAL_SCALE 等) 不必写在这里 —— settings.py 有初值,
# 上线后经管理页面调整并持久化到 pms_runtime_param 表。
# ---- 153 代理 (pms_* 全部表 + trading_* + strategy_daily_results, 严格单表访问) ----
PROXY_DB_URL=mysql+pymysql://用户:密码@192.168.16.153:3307/my_quant_db
# ---- 因子分表库 (gp_stock_factor_pro_*, 自算参考位用) ----
SOURCE_DB_EXT_DSN=mysql+pymysql://用户:密码@192.168.16.150:3306/factordb_mysql
# ---- 大盘指数库 (zs_day_data, 页面区制提示用) ----
DB_MYSQL_URL=mysql+pymysql://用户:密码@192.168.18.199:3306/db_gp_cj
# ---- 信号/行情 Redis (208: 决策系统信号流 db2/db3 订阅 + 实时行情 db13) ----
SIGNAL_REDIS_HOST=192.168.18.208
SIGNAL_REDIS_PORT=6379
SIGNAL_REDIS_PASSWORD=wlkj2018
# ---- PMS 自己的 Celery 总线 (150 Redis, db8; 决策系统用 db7, 逻辑隔离) ----
PMS_REDIS_URL=redis://:密码@192.168.16.150:6379/8
# ---- 管理页面 ----
PMS_WEB_PORT=38100
# ---- 登录会话密钥 (2026-08 加权限) ----
# PMS 自带登录: 手机号+密码交给第三方 bshop 校验, 通过后 PMS 自签一张会话票 (cookie)。
# 这一项是**密钥**, 与下面 QMT 两把密钥同规矩: 只在这里维护, 不入库、不进 ParamStore、
# 不上管理页面、不进代码。开着登录 (PMS_AUTH_ENABLED 默认 true) 却留空时, 服务拒绝放行。
# 生成一段随机密钥 (任选一条):
# python -c "import secrets; print(secrets.token_urlsafe(48))"
# openssl rand -base64 48
PMS_SESSION_SECRET=
# ---- 登录角色标记 (2026-08 加权限) ----
# 角色从 bshop 登录返回的权限清单里认。两项都可逗号分隔多条; 联测时直接指到测试账号真有的权限即可。
# 系统管理员 = 权限里含 PMS_ADMIN_PERMS 任一条 (system_key:menu_key)。默认 pms:admin;
# 想先拿现成权限联测, 就临时指到管理员账号有的某条, 比如 band:yhyqx (用户与权限)。
PMS_ADMIN_PERMS=band:yhyqx # 含这条权限的账号 = 系统管理员(示例用“用户与权限”)
# 交易员准入 = 进入 PMS 至少要占 PMS_TRADER_PERMS 任一条; 留空 = 任何能登录的人都是交易员。
# 想把交易员也限成某条权限 (只给持仓管理权限的人才是交易员), 就指到那条, 比如 band:ccgl。
# 机器:部署服务器 tlai4090.env 里)
PMS_TRADER_PERMS=band:ccgl # 进 PMS 至少要占这条 = 交易员;留空则任何能登录的人都是交易员
# ---- QMT WebSocket 直连通道的密钥 (协议 QMT_WS_PROTOCOL.md §10.1.1) ----
# 这两项是**密钥**, 只在这里维护: 不入库、不进 ParamStore、不上管理页面、不进代码。
# 生成一对新密钥 (公钥带外交给 QMT 侧, 私钥不出机器):
# docker compose run --rm pms-web python scripts/gen_keys.py
# 填完两项后自检 (含协议 §2.1.1 测试向量):
# docker compose run --rm pms-web python scripts/gen_keys.py --check
PMS_QMT_SIGN_SEED_HEX=
# QMT 侧的 Ed25519 公钥, 用来验上行签名。上下行是两对不同的密钥, 互不复用。
#
# 对方多半发的是 PEM 文件。整段 PEM 有换行放不进 .env —— **取中间那行 base64 粘过来**:
# -----BEGIN PUBLIC KEY-----
# MCowBQYDK2VwAyEAOh3Cd30lcdKkU4+VDIvU9FOFeDfJvK7Cx6A0WE+RdWU= ← 粘这一行
# -----END PUBLIC KEY-----
# 裸 32 字节 base64 / 64 位 hex 也都认, 代码会自动归一 (ws_codec.normalize_pubkey)。
PMS_QMT_PEER_PUBKEY_B64=