内容
**Cloudflare 未构建的物联网平台。** 将您的硬件指向一个 HTTPS 或 WebSocket 端点,观察变量自行出现,构建实时拖拽式仪表盘,自动化并通过干净的 API 读取所有内容 — 完全在您拥有的基础设施上。nodrix 是单租户且开源的:它部署在您的 Cloudflare 账户中,使用 Workers、Durable Objects、D1 和 R2。
## 功能
- 📡 **通过 HTTPS 或 WebSocket 发送遥测数据** — 硬件将 JSON 发送到项目;变量在首次出现时自动创建。无需定义模式,无需运行 MQTT 代理。
- 📊 **实时仪表盘** — 拖拽式小部件网格通过休眠的 WebSocket 流式更新;链接分享任何仪表盘的只。
- 🧩 **可嵌入的小部件** — 每个都是与框架无关的 Web 组件,您可以直接将其嵌入到自己的应用程序- 🎮 **双向 — 切换按钮、滑块选择器和按钮通过询或控制套接字将值写回硬件。
- 🤖 **视觉自动化** — 变量、出/日落和事件触发器运行条件和操作:webhook、代码片段和服务集成。
- 🔌 **集成** — 扩展到 HTTP、电子邮件和聊天(Slack、Telegram、Discord 等)。
- 📖 **干净的读取 API** — 最新状态、时间序列和变量列表,背后只有一个令牌。
- 🧠 **原生 MCP 服务器** — 一个所有者控制的模型上下文协议端点,带有用于 AI 客户端的 Claude 连接器()。
- 用户 所有者/管理员/成员角色、电子和社交登录(Google、GitHub)。
- **审计日志**每个特权操作都在记录和分页 快速开始
部署到您的 账户** —部署](https://nodrix.live),或隆仓库运行 ` deploy:platform` **创建所有** — 首次创建“”页面; `所有者3. **创建 并从仪表盘生成项目令牌。
4. **发送遥测数据** — 变量在数据到达时创建:
```bash
curl -X POST https://<your-worker>/v1/telemetry -H "Authorization: Bearer $NODRIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{"metrics":{"temperature":23.4,"humidity":61}}'
```
5. **读取数据:**
```bash
curl https://<your-worker>/v1/projects/<project>/state \
-H "Authorization: Bearer $NODRIX_TOKEN"
```
## 架构
- **Worker** ([worker/](worker/)) — 一个 Hono 应用程序。Dur项目、仪表盘、调度器和 MCP 代理;一个配置;D1(元数据)、R2(遥测历史)、KV(读取缓存 + JWKS **Web** ([web/](web/)) — Vue 3wind + Reka UI 管理面板和拖拽式仪表盘,作为 Worker 静态资产构建和提供服务。
- **共享shared/](shared/)) — 与框架无关的 Web 组件小部件目录和自动化块,被 web 和 worker 共享,因此只有一个真实来源 **部署** ([deploy/](deploy/)) — 单击部署到 Cloudflare 背后的小型配置载入器。
```
worker/ Cloud — API、Durable Objects、Workflow
web/ Vue 3 管理面板 + 仪表盘构建工具
shared/ Web 组件集成目录、自动化块
deploy/ 一键部署 配置
scripts/ 、版本和迁移生成器
```
## 存储
| 存储 | 持有内容 |
|---|---|
| 项目 DO(SQLite) | 最新变量状态、最近环形缓冲区、待处理控制写入、刷新游标 |
| R2 | 冷遥测历史(NDJSON,按项目 + 小时分区) |
| D1 | 用户、会话、账户、项目、变量、仪表盘、令自动化、集成、审计日志、OAuth 提供者配置(仅元数据 — 永远不会有遥测点) |
| KV | 缓存的 `/state` 响应和 JWKS |
| 仪表盘 DO | 每个仪表盘的订阅 + 休眠的 WebSocket |
| 调度器 DO | 下一次计划/日落自动化触发时间的一个 |
## 身份验证
[Better Auth](https://www.better-auth.com) 处理登录。默认启用电子邮件 + 密码;Google 和 GitHub OAuth 可以在运行时从 **设置 → 登录提供者** (所有者输入每个提供者的客户端 ID + 密钥,登录页面立即显示匹配的按钮)启用。
在全新部署上的首次注册成为 `所有者`。之后,注册关闭:所有者从 **用户** 界面邀请人员,每个人员都有所有者/管理员/成员角色。会话基于 Cookie,持续 30 天;每个设备都是一个单独的会话,可以从 **用户** 界面列出和撤销。
## 开发
nodrix 使用 [Bun](https://bun.sh)。
```bash
bun install
bun run dev # worker(wrangler dev)
bun run dev:web # web(vite)
bun run typecheck
bun run build
bun run deploy:platform # 构建 + 部署 worker
```
## 链接
- **网站** — https://nodrix.live
- **更新日志** — https://nodrix.live/changelog
- **路线图** — https://nodrix.live/roadmap
## 许可证
[MIT](LICENSE) © Arjun Krishna