Files
crypto_monitor/manual_trading_hub/.env.example
T
dekun 77c7bbbb13 feat: add hub fund overview tab with 180-day equity curves
Add /funds page for total and per-account balance (funding+trading), drawdown, and daily snapshots from monitor board aggregation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 16:50:47 +08:00

102 lines
4.8 KiB
Bash
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.
# =============================================================================
# 中控 hub.py / 子代理 agent.py 环境变量模板(可提交 Git)
# 使用:cp .env.example .env 后填入真实值;启动前由 shell export 或 dotenv 加载
# 云服务器完整说明:见 云服务器部署说明.md
# =============================================================================
# hub.py 监听
HUB_HOST=0.0.0.0
HUB_PORT=5100
# 仅本机访问可改为 127.0.0.1,并设 HUB_TRUST_LAN=false
# 与四实例 .env 中 HUB_BRIDGE_TOKEN 相同的长随机串
# 中控 → 各 Flask:请求头 X-Hub-Token
# 中控 → 各子代理:请求头 X-Control-Token(可与子代理 CONTROL_TOKEN 同值,hub 会用 HUB_BRIDGE_TOKEN 转发)
# 中控「打开实例」SSO 链接也复用此令牌签名(默认 2 小时内有效、单次使用)
# HUB_BRIDGE_TOKEN=your-long-random-token
# HUB_SSO_TTL_SEC=7200
# 逗号分隔的账户 id,强制关闭(不参与监控/全局全平;设置页对应行勾选框灰掉)
# 留空 = 不强制关闭;仅不想用 OKX 时可设 HUB_DISABLED_IDS=1
HUB_DISABLED_IDS=
# true=允许 RFC1918 私网访问中控页面;false=仅 127.0.0.1(反代须指向 127.0.0.1:5100
HUB_TRUST_LAN=true
# 云服务器用域名/HTTPS 反代访问中控时设为 true(否则公网可能看到 {"detail":"forbidden"}
# HUB_ALLOW_PUBLIC=true
# 中控 Web 登录(密码非空即启用;反代到公网时务必设置用户名+密码)
# HUB_USERNAME=admin
# HUB_PASSWORD=your-strong-password-here
# 会话签名密钥(建议单独随机串;未设则用用户名+密码拼接)
# HUB_SESSION_SECRET=another-long-random-string
# HTTPS 反代时建议 true:仅 HTTPS 访问会带 Secure Cookiehttp://内网IP:5100 仍可登录
# HUB_COOKIE_SECURE=true
# 登录保持天数(默认 7
# HUB_SESSION_DAYS=7
# 本地导航 / 门户 iframe 嵌入中控(默认 true
# HUB_ALLOW_EMBED=true
# 限制可嵌入的父页来源(逗号分隔);默认 * 不限制
# HUB_EMBED_ORIGINS=http://192.168.8.6:5070,https://hub.example.com
# 四实例允许被中控 iframe 内嵌(各 crypto_monitor_*/.env,与 hub 同步部署)
# APP_ALLOW_HUB_EMBED=true
# HUB_EMBED_PARENT_ORIGINS=https://hub.example.com
# HTTPS 跨子域 iframe 时四实例还须 APP_COOKIE_SECURE=true(见 crypto_monitor_*/.env.example
# 浏览器打开的实例/复盘链接(hub_settings 里 flask_url 为 127.0.0.1 时替换为对外地址)
# 局域网:填内网 IP,见《局域网与反代部署说明.md》
# HUB_PUBLIC_ORIGIN=http://192.168.1.100
# 反代:各实例 flask_url 建议直接写 https 域名,可不设此项
# HUB_PUBLIC_HOST=192.168.1.100
# HUB_PUBLIC_SCHEME=http
# 四实例网页登录(直链反代/IP:端口 访问时输入;中控点「打开实例」免输)
# 各 crypto_monitor_*/.env 统一:APP_USERNAME=... APP_PASSWORD=...
# 监控区:hub 后台每 N 秒聚合一次,浏览器经 SSE 收版本号再拉快照(默认 5 秒)
# HUB_BOARD_POLL_INTERVAL=5
# 单次聚合超时(秒,默认 agent 8 / flask 10 / board 45
# HUB_AGENT_TIMEOUT=8
# HUB_FLASK_TIMEOUT=10
# HUB_BOARD_TIMEOUT=45
# 为 false 时不拉各实例 /api/price_snapshot(关键位门控简化为「-」,首屏明显更快)
# HUB_BOARD_KEY_PRICES=true
# ---------- 行情区 K 线库(data/hub_kline.db,默认保留 15 天)----------
# HUB_KLINE_RETENTION_DAYS=15
# HUB_KLINE_DB_PATH=/opt/crypto_monitor/manual_trading_hub/data/hub_kline.db
# 行情区后台轮询 + SSE(对齐监控区 board)
# HUB_CHART_POLL_INTERVAL=5
# HUB_CHART_POSITION_TIMEFRAME=5m
# HUB_CHART_WATCH_TTL_SEC=45
# HUB_CHART_MAX_SERIES_PER_TICK=24
# --- 子代理 agent.py(在 crypto_monitor_* 目录启动时另设 EXCHANGE / PORT---
# 与 HUB_BRIDGE_TOKEN 一致时可只设其一;agent 校验请求头 X-Control-Token
# CONTROL_TOKEN=your-long-random-token
# EXCHANGE=binance
# PORT=15200
# HOST=127.0.0.1
# ---------- 中控 AI 教练(/ai,模块 hub_ai/,存 hub_ai_*.json----------
# 与四实例相同变量名;默认 OpenAI 兼容网关(改 AI_PROVIDER=ollama 可走本机 Ollama
# 详见 manual_trading_hub/AI教练说明.md 与仓库根 AI复盘与模型配置说明.md
AI_TIMEOUT_SECONDS=120
# AI 提供方:openai(默认,OpenAI 兼容网关)| ollama(本机 Ollama
AI_PROVIDER=openai
OPENAI_API_BASE=https://op.bz121.com/v1
OPENAI_API_KEY=你的密钥
OPENAI_MODEL=gemma4:e4b
# 本机 OllamaAI_PROVIDER=ollama 时使用)
OLLAMA_API=http://127.0.0.1:11434/api/generate
AI_MODEL=huihui_ai/deepseek-r1-abliterated:latest
# 交易日切分(与四实例 TRADING_DAY_RESET_HOUR 一致,定义「今日总结」的日期)
TRADING_DAY_RESET_HOUR=8
# 资金概况 / AI 上下文:分户资金快照保留交易日数(默认 180)
# HUB_FUND_HISTORY_DAYS=180