尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

为什么Crucix运行时依赖只有1个?深度解析零云端本地情报架构设计

为什么Crucix运行时依赖只有1个?深度解析零云端本地情报架构设计 为什么Crucix运行时依赖只有1个深度解析零云端本地情报架构设计【免费下载链接】CrucixYour personal intelligence agent. Watches the world from multiple data sources and pings you when something changes.项目地址: https://gitcode.com/gh_mirrors/cr/CrucixCrucix 是一款零云端、本地运行的开源情报OSINT聚合系统它把卫星火点、航班追踪、经济指标、冲突事件等 27 路数据源每 15 分钟在你的电脑上并行抓取一次渲染成一块贾维斯风格的实时情报仪表盘。更硬核的是——查看它的 package.json你会惊讶地发现运行时依赖只有 1 个express。这篇文章带你拆解一个监控全球的情报终端为什么敢把依赖砍到只剩一个️Crucix 能做什么一块跑在本地的情报终端先看看它的成品效果。下面这张是 Crucix 本地情报仪表盘的实际运行截图左侧是传感器状态栏中间是全球地图与 9 类信号标记右侧是跨源信号流和实时新闻——所有数据都来自你机器上的那一次扫掠Sweep。核心能力可以概括为三点多源并行抓取调度器 apis/briefing.mjs 同时向 27 个数据源发起请求新闻事件 GDELT、卫星火点 FIRMS、航班 OpenSky、辐射 Safecast、经济指标 FRED 等整轮扫掠约 30 秒完成本地仪表盘 自动刷新单文件 HTML 仪表盘 dashboard/public/jarvis.html 通过 SSEServer-Sent Events每 15 分钟自动推送新数据无需手动刷新页面变化检测与告警内置 Delta 引擎lib/delta/engine.mjs对比相邻两轮扫掠把新增、升级、降级的变化推送到 Telegram / Discord依赖只有1个它到底省掉了什么很多人第一反应是抓几十个 API 还要发机器人消息怎么可能只用一个依赖答案是——能不用第三方库的全部用 Node.js 22 的原生能力自己写。常见做法Crucix 的做法省掉的依赖用dotenv加载环境变量自己写了个 36 行的 .env 加载器dotenv用axios/node-fetch请求Node 22 内置fetchAbortController封装在 apis/utils/fetch.mjs自带超时、重试axios / node-fetch用各家 LLM 官方 SDKlib/llm/index.mjs 里 8 家大模型Claude、GPT、Gemini、Grok 等全部用裸 fetch 调 HTTP API8 个 SDK 全省了用第三方轮询库做 Telegram 机器人lib/alerts/telegram.mjs 自己实现长轮询node-telegram-bot-apidiscord.js被放在optionalDependencies里不装它Discord 告警会自动退化为零依赖的 Webhook 模式。也就是说最简配置下npm install只装 express 这一个包——负责启动 HTTP 服务、提供/api/data和 SSE 推送见 server.mjs。零云端架构数据如何只在你机器里流转所谓零云端是指 Crucix没有自己的后端服务没有数据库服务器、没有消息队列、没有 SaaS 账号node server.mjs一敲全部逻辑就跑在你本机。架构上有三个关键设计1. 并行 独立超时单点故障不影响全局调度器用Promise.allSettled()同时发射所有数据源每个源套一个 30 秒超时见 apis/briefing.mjs 中的runSource。某个 API 挂了、超时了只会记入errors列表其余 26 个源照常返回——这就是优雅降级。2. 文件系统即数据库扫掠结果和 Delta 记忆都以 JSON 文件落在runs/目录lib/delta/memory.mjs 负责热内存 3 轮 冷存储每日归档。没有 SQLite、没有 ORMcat runs/latest.json就能看到全部状态备份就是复制文件夹。3. 配置即环境变量所有设置集中在 crucix.config.mjs每项都可用.env覆盖端口、刷新间隔、LLM 提供商、Telegram/Discord Token。不配 API Key 也能跑——27 个源里有一半完全免认证缺 Key 的源返回结构化错误而不崩溃。三步跑起来零云端情报系统安装步骤环境要求只有一个Node.js 22用到原生fetch、顶层await、ESM。# 1. 获取源码 git clone https://gitcode.com/gh_mirrors/cr/Crucix cd Crucix # 2. 安装依赖真的只有一个 npm install # 3. 启动 npm run dev浏览器自动打开http://localhost:3117第一轮扫掠 30–60 秒后仪表盘开始填充。想先试试手感复制.env.example为.env填入FRED_API_KEY、FIRMS_MAP_KEY三个免费 Key各约 60 秒注册即可解锁最有价值的经济与卫星数据。也提供 Dockerfilenode:22-alpine仅装生产依赖一条docker compose up -d同样搞定。少依赖不是炫技这套设计换来了什么更小的攻击面供应链投毒的风险与依赖树规模成正比。依赖只有 1 个安全审计基本等于读几份源码更高的可用下限没有 SDK 版本漂移、没有传递依赖冲突LLM 挂了还有规则引擎兜底扫掠周期永不因 AI 失败而中断真正的本地可控数据流是公开 API → 本机 Node 进程 → 本机 runs/ 文件 → 浏览器没有任何环节经过第三方服务端单模块可测试每个数据源都是独立 apis/sources/ 模块node apis/sources/fred.mjs就能单独调试某一个常见问题没有 API Key 能用吗能。18 数据源完全免认证Crucix 以零 Key模式照常运行。它对新手友好吗不需要后端经验——会npm install和npm run dev就够了启动失败时还有诊断脚本node diag.mjs帮你定位问题。依赖少功能就少吗恰恰相反27 数据源、8 家 LLM 接入、双向 Telegram/Discord 机器人全部落在一个 express 之上。少依赖 ≠ 少功能而是把复杂度留在了自己的代码里。 一句话总结Crucix 用一个 express、一把原生 fetch、一个 JSON 文件目录换来了一个可完全脱离云端运行的本地情报终端——这正是极简依赖 零云端架构最有说服力的示范。【免费下载链接】CrucixYour personal intelligence agent. Watches the world from multiple data sources and pings you when something changes.项目地址: https://gitcode.com/gh_mirrors/cr/Crucix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表