在线网站: https://www.crucix.live/ 先体验公共演示,然后克隆仓库即可在本地运行 Crucix。
Crucix 从 27 个开源情报数据源并行拉取卫星火情探测、航班追踪、辐射监测、卫星星座追踪、经济指标、实时市场价格、冲突数据、制裁清单和社交情绪——每 15 分钟更新一次——并将所有内容呈现在一个自成一体的 Jarvis 风格仪表盘上。
接入 LLM 后,它便成为双向情报助手——当有重要变化时向 Telegram 和 Discord 推送多级警报,响应来自手机的 /brief、/sweep 等命令,并生成基于真实跨领域数据的可执行交易思路。这就是你的私人分析师,在你睡觉时为你守望世界。
先在 https://www.crucix.live/ 体验在线演示,当你需要完整的本地环境时再克隆仓库。
无云端。无遥测。无订阅。只需 node server.mjs 即可运行。
[!WARNING] Crucix 尚未发布任何官方代币、币、NFT、空投、预售或其他基于区块链的资产。 任何使用 Crucix 名称、徽标或品牌的代币或数字资产均与 Crucix 无关,也未获得 Crucix 认可。 请勿根据第三方帖子、私信或网站购买、推广该代币,连接钱包领取,签署交易或转账。
世界上大部分实时情报——卫星图像、辐射水平、冲突事件、经济指标、航班追踪、海上活动——都是公开可获取的。它们只是分散在数十个政府 API、研究机构和开放数据源中,没有人有时间逐一查看。
Crucix 将这一切汇聚到一处。不设付费墙,不锁定在企业平台,也无需安全许可。只是开放数据,在你的机器上聚合与交叉关联,每 15 分钟更新一次。
它面向任何想要了解当下世界真实动态的人——研究人员、记者、交易员、OSINT 分析师,或只是相信信息获取不应取决于你预算的好奇人士。
git clone https://github.com/calesthio/Crucix.git cd Crucix
npm install
cp .env.example .env
npm run dev
> **如果 `npm run dev` 静默失败**(无输出退出),请直接运行 Node:
> ```bash
> node --trace-warnings server.mjs
> ```
> 这会绕过 npm 的脚本运行器,它在某些系统(尤其是 Windows 上的 PowerShell)上可能会吞掉错误。你也可以运行 `node diag.mjs` 来诊断具体问题——它会检查你的 Node 版本、逐一测试每个模块的导入,并验证端口可用性。更多信息请参见 [故障排查](#troubleshooting)。
仪表盘会在 `http://localhost:3117` 自动打开,并立即开始首次情报扫描。这次初始扫描会并行查询全部 27 个数据源,通常需要 30–60 秒——在扫描完成并推送首次数据更新之前,仪表盘会显示为空。之后,它会通过 SSE(Server-Sent Events)每 15 分钟自动刷新一次。无需手动刷新页面。
**要求:** Node.js 22+(使用原生 `fetch`、顶层 `await`、ESM)
### Docker```bash
git clone https://github.com/calesthio/Crucix.git
cd Crucix
cp .env.example .env # add your API keys
docker compose up -d
仪表板位于 http://localhost:3117。扫描数据通过卷挂载持久化存储在 ./runs/ 中。包含健康检查端点。
一个自带完整功能的 Jarvis 风格 HUD,包含:
顶栏中的 VISUALS FULL / VISUALS LITE 按钮仅改变渲染行为 — 它不会移除数据源或减少扫描覆盖范围。
当切换到 VISUALS LITE 时,仪表板将:
移动端特定行为:
VISUALS LITE 还会强制仪表板进入平面地图模式(如果你当前正使用地球仪视图)该偏好设置保存在浏览器本地存储中,因此界面会记住你的上次设置。
服务器每 15 分钟运行一次扫描周期(可配置)。每个周期:
Crucix 兼作交互式 Telegram 机器人。除发送警报外,它还能直接响应你聊天中的命令:
这需要在 .env 中配置 TELEGRAM_BOT_TOKEN 和 TELEGRAM_CHAT_ID。机器人每 5 秒轮询一次消息(可通过 TELEGRAM_POLL_INTERVAL 配置)。
Crucix 同样支持 Discord,作为功能完整的机器人,提供斜杠命令和富嵌入警报。它以 Discord 原生格式镜像了 Telegram 机器人的各项功能。
| 命令 | 功能 |
|---|---|
/status | 系统健康状态、上次扫描时间、数据源状态、LLM 状态 |
/sweep | 触发手动扫描周期 |
/brief | 最新情报的紧凑文本摘要 |
警报以富嵌入形式发送,侧边栏颜色编码:FLASH 为红色,PRIORITY 为黄色,ROUTINE 为蓝色。每条嵌入包含信号详情、置信度评分和跨域关联。
配置要求: DISCORD_BOT_TOKEN、DISCORD_CHANNEL_ID,以及可选的 DISCORD_GUILD_ID(用于即时斜杠命令注册)。详见 API 密钥设置。
Webhook 回退: 如果你不想运行完整机器人,可改为设置 DISCORD_WEBHOOK_URL。这将启用零依赖的单向警报(无斜杠命令)— 无需 discord.js。
可选依赖: 完整机器人需要 discord.js。使用 npm install discord.js 安装。如果未安装,Crucix 会自动回退到仅 Webhook 模式。
可连接 8 家 LLM 提供商中的任意一家以增强分析:
将项目根目录下的 .env.example 复制为 .env:```bash
cp .env.example .env
### 获得最佳结果所需(全部免费)
| 密钥 | 来源 | 获取方式 |
|-----|--------|------------|
| `FRED_API_KEY` | Federal Reserve Economic Data | [fred.stlouisfed.org](https://fred.stlouisfed.org/docs/api/api_key.html) — 即时,免费 |
| `FIRMS_MAP_KEY` | NASA FIRMS(卫星火点数据) | [firms.modaps.eosdis.nasa.gov](https://firms.modaps.eosdis.nasa.gov/api/area/) — 即时,免费 |
| `EIA_API_KEY` | US Energy Information Administration | [api.eia.gov](https://www.eia.gov/opendata/register.php) — 即时,免费 |
这三个密钥可解锁最有价值的经济与卫星数据。每个密钥注册大约只需 60 秒。
### 可选(启用额外的数据源)
| 密钥 | 来源 | 获取方式 |
|-----|--------|------------|
| `ACLED_EMAIL` + `ACLED_PASSWORD` | 武装冲突事件数据 | [acleddata.com/register](https://acleddata.com/register/) — 免费,OAuth2 |
| `AISSTREAM_API_KEY` | 海上 AIS 船舶跟踪 | [aisstream.io](https://aisstream.io/) — 免费 |
| `ADSB_API_KEY` | 原始航班跟踪 | [RapidAPI](https://rapidapi.com/adsbexchange/api/adsbexchange-com1) — 约 $10/月 |
### LLM 提供商(可选,用于 AI 增强的洞察)
将 `LLM_PROVIDER` 设置为以下之一:`anthropic`、`openai`、`gemini`、`codex`、`openrouter`、`minimax`、`mistral`、`grok`
| 提供商 | 所需密钥 | 默认模型 |
|----------|-------------|---------------|
| `anthropic` | `LLM_API_KEY` | claude-sonnet-4-6 |
| `openai` | `LLM_API_KEY` | gpt-5.4 |
| `gemini` | `LLM_API_KEY` | gemini-3.1-pro |
| `openrouter` | `LLM_API_KEY` | openrouter/auto |
| `codex` | 无(使用 `~/.codex/auth.json`) | gpt-5.3-codex |
| `minimax` | `LLM_API_KEY` | MiniMax-M2.5 |
| `mistral` | `LLM_API_KEY` | mistral-large-latest |
| `grok` | `LLM_API_KEY` | grok-4-latest |
对于 Codex,请运行 `npx @openai/codex login`,通过你的 ChatGPT 订阅进行身份验证。
### Telegram 机器人 + 警报(可选)
| 密钥 | 获取方式 |
|-----|------------|
| `TELEGRAM_BOT_TOKEN` | 通过 Telegram 上的 [@BotFather](https://t.me/BotFather) 创建 |
| `TELEGRAM_CHAT_ID` | 通过 [@userinfobot](https://t.me/userinfobot) 获取 |
| `TELEGRAM_CHANNELS` | *(可选)* 除 17 个内置频道之外,以逗号分隔的额外监听频道 ID |
| `TELEGRAM_POLL_INTERVAL` | *(可选)* 机器人命令轮询间隔(毫秒)(默认值:5000) |
### Discord 机器人 + 警报(可选)
| 密钥 | 获取方式 |
|-----|------------|
| `DISCORD_BOT_TOKEN` | 在 [Discord 开发者门户](https://discord.com/developers/applications) → Bot → Token 创建 |
| `DISCORD_CHANNEL_ID` | 在 Discord 中右键点击频道(开启开发者模式)→ 复制频道 ID |
| `DISCORD_GUILD_ID` | *(可选)* 右键点击服务器 → 复制服务器 ID。可即时注册斜杠命令(否则全局命令最长需要 1 小时才能生效) |
| `DISCORD_WEBHOOK_URL` | *(可选)* 频道设置 → 集成 → Webhooks → 新建 Webhook → 复制 URL。在没有机器人的情况下,使用此 URL 实现仅警报模式 |
**Discord 机器人设置:**
1. 前往 [Discord 开发者门户](https://discord.com/developers/applications) 并创建新应用
2. 进入 **Bot** → 点击 **重置令牌** → 将令牌复制到 `DISCORD_BOT_TOKEN`
3. 在 **特权网关意图** 下,启用 **消息内容意图**
4. 转到 **OAuth2** → **URL 生成器** → 选择 `bot` + `applications.commands` 作用域 → 选择 **发送消息** + **嵌入链接** 权限
5. 复制生成的 URL 并在浏览器中打开,以邀请机器人加入你的服务器
6. 安装依赖项:`npm install discord.js`
无论是否配置 LLM,Telegram 和 Discord 上的警报均可正常工作。配置 LLM 后,信号评估将更加丰富且更具上下文感知能力。未配置 LLM 时,确定性规则引擎会根据严重性、跨域关联性和信号计数来评估信号。
### 不使用任何密钥
Crucix 在没有任何 API 密钥的情况下仍可正常工作。18+ 个数据源完全无需身份验证。需要密钥的数据源会返回结构化错误,扫描的其余部分会正常继续。
---
## 架构```
crucix/
├── server.mjs # Express dev server (SSE, auto-refresh, LLM, bot commands)
├── crucix.config.mjs # Configuration with env var overrides + delta thresholds
├── diag.mjs # Diagnostic script — run if server fails to start
├── .env.example # All documented env vars
├── package.json # Runtime: express | Optional: discord.js
├── docs/ # Screenshots for README
│
├── apis/
│ ├── briefing.mjs # Master orchestrator — runs all 27 sources in parallel
│ ├── save-briefing.mjs # CLI: save timestamped + latest.json
│ ├── BRIEFING_PROMPT.md # Intelligence synthesis protocol
│ ├── BRIEFING_TEMPLATE.md # Briefing output structure
│ ├── utils/
│ │ ├── fetch.mjs # safeFetch() — timeout, retries, abort, auto-JSON
│ │ └── env.mjs # .env loader (no dotenv dependency)
│ └── sources/ # 27 self-contained source modules
│ ├── gdelt.mjs # Each exports briefing() → structured data
│ ├── fred.mjs # Can run standalone: node apis/sources/fred.mjs
│ ├── space.mjs # CelesTrak satellite tracking
│ ├── yfinance.mjs # Yahoo Finance — free live market data
│ └── ... # 23 more
│
├── dashboard/
│ ├── inject.mjs # Data synthesis + standalone HTML injection
│ └── public/
│ └── jarvis.html # Self-contained Jarvis HUD
│
├── lib/
│ ├── llm/ # LLM abstraction (8 providers, raw fetch, no SDKs)
│ │ ├── provider.mjs # Base class
│ │ ├── anthropic.mjs # Claude
│ │ ├── openai.mjs # GPT
│ │ ├── gemini.mjs # Gemini
│ │ ├── grok.mjs # Grok
│ │ ├── openrouter.mjs # OpenRouter (Unified API)
│ │ ├── codex.mjs # Codex (ChatGPT subscription)
│ │ ├── minimax.mjs # MiniMax (M2.5, 204K context)
│ │ ├── mistral.mjs # Mistral AI
│ │ ├── ideas.mjs # LLM-powered trade idea generation
│ │ └── index.mjs # Factory: createLLMProvider()
│ ├── delta/ # Change tracking between sweeps
│ │ ├── engine.mjs # Delta computation — semantic dedup, configurable thresholds, severity scoring
│ │ ├── memory.mjs # Hot memory (3 runs, atomic writes) + cold storage (daily archives)
│ │ └── index.mjs # Re-exports
│ └── alerts/
│ ├── telegram.mjs # Multi-tier alerts (FLASH/PRIORITY/ROUTINE) + two-way bot commands
│ └── discord.mjs # Discord bot (slash commands, rich embeds) + webhook fallback
│
└── runs/ # Runtime data (gitignored)
├── latest.json # Most recent sweep output
└── memory/ # Delta memory (hot.json + cold/YYYY-MM-DD.json)
.mjs 并带有显式导入discord.js 为可选(用于 Discord 机器人)。LLM 提供商使用原生 fetch(),无需 SDK。Promise.allSettled() 同时触发全部 27 个数据源node apis/sources/gdelt.mjs 可独立测试任意数据源| 数据源 | 追踪内容 | 认证 |
|---|---|---|
| CelesTrak | 卫星发射、ISS 追踪、军用星座、Starlink/OneWeb 数量 | 无 |
| 数据源 | 追踪内容 | 认证 |
|---|---|---|
| Yahoo Finance | 实时价格:SPY、QQQ、BTC、黄金、WTI、VIX 以及另外 9 项 | 无 |
所有设置均位于 .env 中,并提供合理的默认值:
Delta 引擎阈值(系统对两次扫描之间变化的敏感程度)可在 crucix.config.mjs 的 delta.thresholds 部分中自定义。默认值经过调校,可在捕获有意义变化的同时过滤掉噪声。
运行 npm run dev 时:
| 端点 | 描述 |
|---|---|
GET / | Jarvis HUD 仪表盘 |
GET /api/data | 当前综合情报数据(JSON) |
GET /api/health | 服务器状态、运行时间、数据源数量、LLM 状态 |
npm run dev 静默退出(无输出、无错误)这是一个已知问题:npm 的脚本运行器可能会吞掉错误,尤其是在 Windows PowerShell 上。请按以下顺序尝试:
1. 直接运行 Node(绕过 npm):```bash node --trace-warnings server.mjs
这在功能上与 `npm run dev` 相同,但会提供完整的错误输出。
**2. 运行诊断脚本:**```bash
node diag.mjs
这会逐一测试每个导入,检查你的 Node.js 版本,并验证 3117 端口是否可用。它会精确地告诉你哪里出了问题。
3. 检查 3117 端口是否已被占用:
之前的 Crucix 实例可能仍在后台运行。```powershell
netstat -ano | findstr 3117 taskkill /F /PID <the_PID_from_above>
taskkill /F /IM node.exe
**Argo CD 安装版本,例如 v2.10.7**
* 在每个节点上执行的命令,用于安装 K3s Argo 配置面板
* 在每个节点上执行的命令,节点将转变为不同的节点
* - 针对控制平面节点的命令: `kubectl taint node <nodeName> node-role.kubernetes.io/control-plane:NoSchedule-`
**Argo CD 配置:**
* argo-cd 命名空间事件
* argocd-application-controller 部署日志
* argocd-applicationset-controller 部署日志
* argocd-dex-server 部署日志
* argocd-notifications-controller 部署日志
* argocd-redis 部署日志
* argocd-repo-server 部署日志
* argocd-server 部署日志
* argocd-cmd-params-cm 配置映射
* argocd-gpg-keys-cm 配置映射
* argocd-notifications-cm 配置映射
* argocd-rbac-cm 配置映射
* argocd-secret 密钥
* argocd-ssh-known-hosts-cm 配置映射
* argocd-tls-certs-cm 配置映射
**GitLab 配置:**
* `gitlab-agent` Pod 名称
* `gitlab-agent` 命名空间
* GitLab 仓库 URL
* gitlab 命名空间的 `gitlab-agent` Pod 日志
* gitlab 命名空间的 `gitlab-agent` Pod 日志(之前的)```bash
# macOS / Linux
lsof -ti:3117 | xargs kill
然后尝试重新启动。你也可以通过在 .env 文件中设置 PORT=3118 来更改端口。
4. 检查 Node.js 版本:```bash node --version
Crucix 需要 Node.js 22 或更高版本。如果您使用的是较旧版本,请从 [nodejs.org](https://nodejs.org/) 下载最新的 LTS 版本。
### 首次启动后仪表盘显示空白面板
这是正常现象 — 首次扫描需要 30–60 秒来查询全部 27 个数据源。扫描完成后,仪表盘将自动填充数据。请查看终端中的扫描进度日志。
### 某些数据源显示错误
这是预期行为。需要 API 密钥的数据源在密钥未设置时会返回结构化错误,其余扫描会正常继续。请查看仪表盘的 Source Integrity 部分(或服务器日志),以了解哪些数据源失败及原因。最值得添加的 3 个免费密钥是 `FRED_API_KEY`、`FIRMS_MAP_KEY` 和 `EIA_API_KEY`。
当 OpenSky 的公共热点被过于频繁地查询时,它也可能返回 `HTTP 429`。Crucix 不会试图规避该限制;相反,它会在源健康状态中显示节流/错误信息,并保留 `runs/` 中最新的非空空中交通快照,这样在扫描被节流时,仪表盘的航班图层不会突然变空白。
### Telegram 机器人不响应命令
请确保已在 `.env` 中设置 `TELEGRAM_BOT_TOKEN` 和 `TELEGRAM_CHAT_ID`。机器人只响应来自已配置聊天 ID 的消息(安全措施)。启动时,您应该在服务器日志中看到 `[Crucix] Telegram alerts enabled` 和 `[Crucix] Bot command polling started`。如果没有,请使用 `curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe` 仔细检查您的令牌。
### Discord 机器人不响应斜杠命令
请按以下顺序检查:
1. 确保已在 `.env` 中设置 `DISCORD_BOT_TOKEN` 和 `DISCORD_CHANNEL_ID`
2. 确认已安装 `discord.js`:`npm ls discord.js`。如果缺失,请运行 `npm install discord.js`
3. 如果斜杠命令未出现,请设置 `DISCORD_GUILD_ID` — 不设置时,全局命令可能需要长达 1 小时才能传播。服务器专属命令会立即注册
4. 确认机器人是以 `bot` + `applications.commands` 范围被邀请的,并且在目标频道中拥有“发送消息”+“嵌入链接”权限
5. 启动时检查服务器日志中的 `[Discord] Bot logged in as ...`。如果看到 `[Discord] discord.js not installed`,请安装它并重启
6. **仅 Webhook 的备选方案:** 如果您只想要警报而不需要斜杠命令,请设置 `DISCORD_WEBHOOK_URL` 而不是机器人令牌。无需 `discord.js`。
---
## 截图
`docs/` 文件夹包含本 README 引用的仪表盘截图:
| 文件 | 描述 |
|------|-------------|
| `docs/dashboard.png` | 完整仪表盘 — 本 README 顶部的展示主图 |
| `docs/boot.png` | 电影式启动序列动画 |
| `docs/map.png` | 带标记类型和航班弧线的 D3 世界地图 |
| `docs/globe.png` | 带大气辉光和标记的 3D WebGL 地球视图 |
要更新它们:运行仪表盘,等待一次扫描完成,然后使用浏览器的开发者工具(`F12` → `Ctrl+Shift+P` → “捕获完整尺寸的屏幕截图”)或 [LICEcap](https://www.cockos.com/licecap/) 之类的工具来制作 GIF。
---
## 贡献
发现了一个 Bug?想添加第 28 个数据源?欢迎提交 PR。每个数据源都是 `apis/sources/` 中的一个独立模块 — 只需导出一个返回结构化数据的 `briefing()` 函数,并将其添加到 `apis/briefing.mjs` 中的编排器即可。
如果您觉得这个项目有用,点个 Star 也能帮助其他人发现它。
有关贡献指南、审查要求和数据源添加规则,请参阅 `CONTRIBUTING.md`。有关安全报告,请参阅 `SECURITY.md`。
## 联系方式
有关合作、集成或其他非问题类咨询,您可以通过 `[email protected]` 联系我。
对于 Bug 和功能请求,请使用 GitHub Issues,以便讨论保持可见且可操作。
---
## Star 历史
<a href="https://www.star-history.com/?repos=calesthio%2FCrucix&type=date&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/image?repos=calesthio/Crucix&type=date&theme=dark&legend=top-left" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/image?repos=calesthio/Crucix&type=date&legend=top-left" />
<img alt="Star History Chart" src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" />
</picture>
</a>
---
## 许可证
AGPL-3.0
| 3D 地球视图 |
|---|
![]() |
| 命令 | 功能 |
|---|
/status | 系统健康状态、上次扫描时间、数据源状态、LLM 状态 |
/sweep | 触发手动扫描周期 |
/brief | 最新情报的紧凑文本摘要(方向、关键指标、顶级 OSINT) |
/portfolio | 投资组合状态(如已连接 Alpaca) |
/alerts | 带层级的近期警报历史 |
/mute / /mute 2h | 静默警报 1 小时(或自定义时长) |
/unmute | 恢复警报 |
/help | 显示所有可用命令 |
/portfolio |
| 投资组合状态(如已连接 Alpaca) |
| 数据源 | 追踪内容 | 认证 |
|---|
| GDELT | 全球新闻事件、冲突地图(100+ 种语言) | 无 |
| OpenSky | 覆盖 6 个热点地区的实时 ADS-B 航班追踪 | 无 |
| NASA FIRMS | 卫星火情/热异常检测(3 小时延迟) | 免费密钥 |
| Maritime/AIS | 船只追踪、暗船、规避制裁 | 免费密钥 |
| Safecast | 6 个核设施附近的公民科学辐射监测 | 无 |
| ACLED | 武装冲突事件:战斗、爆炸、抗议 | 免费(OAuth2) |
| ReliefWeb | 联合国人道主义危机追踪 | 无 |
| WHO | 疾病暴发与突发公共卫生事件 | 无 |
| OFAC | 美国财政部制裁(SDN 名单) | 无 |
| OpenSanctions | 聚合全球制裁信息(30+ 数据源) | 部分 |
| ADS-B Exchange | 无过滤航班追踪,包括军用航班 | 付费 |
| 数据源 | 追踪内容 | 认证 |
|---|
| FRED | 22 项关键指标:收益率曲线、CPI、VIX、联邦基金利率、M2 | 免费密钥 |
| US Treasury | 国债、收益率、财政数据 | 无 |
| BLS | CPI、失业率、非农就业人数、PPI | 无 |
| EIA | WTI/布伦特原油、天然气、库存 | 免费密钥 |
| GSCPI | 纽约联储全球供应链压力指数 | 无 |
| USAspending | 联邦支出与国防合同 | 无 |
| UN Comtrade | 大国之间的战略性大宗商品贸易流向 | 无 |
| 数据源 | 追踪内容 | 认证 |
|---|
| NOAA/NWS | 美国实时天气警报 | 无 |
| EPA RadNet | 美国政府辐射监测 | 无 |
| USPTO Patents | 7 个战略技术领域的专利申请 | 无 |
| Bluesky | 地缘政治/市场话题的社会情绪 | 无 |
| 来自关键 subreddit 的社会情绪 | OAuth | |
| Telegram | 17 个精选的 OSINT/冲突/财经频道(网页抓取,可通过配置扩展) | 无 |
| KiwiSDR | 全球高频无线电接收机网络(约 600 台接收机) | 无 |
| 脚本 | 命令 | 描述 |
|---|
npm run dev | node --trace-warnings server.mjs | 启动仪表盘并自动刷新 |
npm run sweep | node apis/briefing.mjs | 执行单次扫描,将 JSON 输出到 stdout |
npm run inject | node dashboard/inject.mjs | 将最新数据注入静态 HTML |
npm run brief:save | node apis/save-briefing.mjs | 执行扫描并保存带时间戳的 JSON |
npm run diag | node diag.mjs | 运行诊断(Node 版本、导入、端口检查) |
| 变量 | 默认值 | 描述 |
|---|
PORT | 3117 | 仪表盘服务器端口 |
REFRESH_INTERVAL_MINUTES | 15 | 自动刷新间隔 |
LLM_PROVIDER | 禁用 | anthropic, openai, gemini, codex, openrouter, minimax, mistral 或 grok |
LLM_API_KEY | — | API 密钥(codex 无需) |
LLM_MODEL | 各提供商的默认值 | 覆盖模型选择 |
TELEGRAM_BOT_TOKEN | 禁用 | 用于 Telegram 警报与机器人命令 |
TELEGRAM_CHAT_ID | — | 你的 Telegram 聊天 ID |
TELEGRAM_CHANNELS | — | 额外监控的频道 ID(以逗号分隔) |
TELEGRAM_POLL_INTERVAL | 5000 | 机器人命令轮询间隔(毫秒) |
DISCORD_BOT_TOKEN | 禁用 | 用于 Discord 警报与斜杠命令 |
DISCORD_CHANNEL_ID | — | 用于警报的 Discord 频道 |
DISCORD_GUILD_ID | — | 服务器 ID(即时注册斜杠命令) |
DISCORD_WEBHOOK_URL | — | Webhook URL(仅警报回退,无需机器人) |
GET /events | 用于实时推送更新的 SSE 流 |