# TradingView Alert Dispatcher 接收 TradingView webhook alert,按 `timeframe + symbol + strategy` 路由到飞书 webhook,并提供管理控制台。 ## Run Locally ```bash python3 -m app ``` 默认地址:`http://localhost:8000` 默认登录: - 用户名:`admin` - 密码:`change-me-now` 首次启动会把 `ADMIN_PASSWORD` 写入数据库并保存为哈希。之后请在管理台的「账号安全」页面修改密码;修改后环境变量不会覆盖数据库中的新密码。 ## Docker ```bash docker compose up --build ``` Compose 会启动两个服务:`dispatcher` 负责 Web/API/管理台,`worker` 负责周期性处理失败重试。 ## TradingView Payload ```json { "timeframe": "5m", "symbol": "BTCUSDT", "strategy": "breakout", "action": "buy", "price": 68000 } ``` 发送到: ```text POST /webhook/tradingview Content-Type: application/json ``` ## Feishu Message Templates 路由规则支持两种消息类型: - `Card`:默认,发送飞书 interactive card。 - `Text`:发送普通文本消息。 标题和正文模板支持 `{{field}}` 占位符,字段来自 TradingView alert JSON。嵌套字段可以写成 `{{order.id}}`。 每条路由规则通过「发送到」下拉框选择一个飞书 Webhook。需要同一个信号发到多个群时,可以建多条匹配条件相同、目标不同的规则,并用优先级控制命中顺序;当前默认路由逻辑只发送最高优先级命中的规则。 示例正文模板: ```text **品种**: {{symbol}} **周期**: {{timeframe}} **策略**: {{strategy}} **动作**: {{action}} **价格**: {{price}} ``` ## Environment - `ADMIN_USERNAME` - `ADMIN_PASSWORD` - `SESSION_SECRET` - `DATABASE_PATH` - `RETENTION_DAYS` - `MAX_DELIVERY_ATTEMPTS` - `RETRY_BACKOFF_SECONDS` - `FEISHU_TIMEOUT_SECONDS` - `WORKER_INTERVAL_SECONDS`