63 lines
3.7 KiB
Plaintext
63 lines
3.7 KiB
Plaintext
# 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=
|
||
|
||
|
||
PMS_QMT_WS_URL=ws://192.168.18.182:9443/pms |