Skip to content

EcoCtrl 是什么

EcoCtrl 是一个 能源与 IoT 控制平台,将 3D 建筑可视化门户、实时监控管理后台、REST API 后端整合在一个 pnpm 单仓库中。

它面向需要完成以下工作的设施团队:

  • 在 3D 视图中可视化多楼层建筑与设备,叠加热点标注与实时数据。
  • 实时监控能耗、故障与 IoT 设备状态。
  • 在统一控制台管理设备、用户、告警、维护计划与报表。
  • 通过类型化代理层接入第三方 IoT 网关。

一图看懂

层级技术栈用途
apps/webReact Router 7 + Babylon.js + TailwindCSS v4公共 3D 门户 — 楼宇视图、楼层、系统、分析
apps/adminReact 19 + Recharts + TailwindCSS v4内部管理后台 — 账号、设备、模型、报表、设置
apps/docsVitePress 2当前文档站点
packages/serverFastify 5 + Drizzle ORM + PostgreSQL + RolldownREST API 与 IoT 网关代理
packages/uiReact + Base UI + TailwindCSS v4共享组件库(shadcn/ui 风格)
packages/sharedZod + TypeScript共享 schema、类型与 Vite 工具

高层架构

                ┌───────────────────────────────┐
                │     浏览器(web / admin)     │
                └───────────────┬───────────────┘
                                │ HTTPS

                ┌───────────────────────────────┐
                │   Caddy 反向代理(TLS)       │
                │   /api/* → server  /static/*  │
                └───────────────┬───────────────┘

            ┌───────────────────┴────────────────────┐
            ▼                                        ▼
  ┌──────────────────┐                     ┌──────────────────┐
  │ 静态 SPA 包       │                     │ Fastify API       │
  │ (admin / web)    │                     │ Drizzle + Postgres│
  └──────────────────┘                     └──────────┬────────┘


                                          ┌──────────────────────┐
                                          │ 第三方 IoT 接口       │
                                          │ (自动刷新令牌)       │
                                          └──────────────────────┘

每个客户端 App 都用固定的 /api 前缀访问后端;真实的后端主机由开发模式下的 Vite 代理或生产环境下的 Caddy 在运行时改写。这意味着 修改 API 主机或前缀完全不需要重新构建前端

接下来该看哪里

基于 MIT 协议发布