# smartpot-cloud **Repository Path**: devgaolihai/smartpot-cloud ## Basic Information - **Project Name**: smartpot-cloud - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-09 - **Last Updated**: 2025-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SmartPot Cloud ## 运行依赖 - Node.js 18+ - MySQL 5.7+ ## 快速开始 ```bash pnpm install pnpm dev ``` 构建产物: ```bash pnpm exec tsc node dist/index.mjs ``` ## 配置说明 `config/config.json` 负责静态配置,MySQL 中的 `config` 表用于动态配置中心。静态配置键包括: ```ts interface StaticConfig { service: string; "server.port": number; "server.host": string; "mysql.host": string; "mysql.port": number; "mysql.username": string; "mysql.password": string | null; "mysql.database": string; "mysql.connection-limit": number; "mysql.wait-for-connections": boolean; "mysql.queue-limit": number; "log.level": "info" | "debug" | "warn" | "error"; "api-audit-logger.enabled": "true" | "false"; debug: boolean; } interface DynamicConfig { "sms.spug.template-id": string; "api-audit-logger.enabled": "true" | "false"; // 是否开启 API 审计日志 } ``` ## HTTP API(/api/v1) - `POST /auth/send`:发送验证码 - `POST /auth/verify`:校验验证码并返回 token - `POST /device`:绑定设备 - `POST /device/config`:下发配置(可用 `deviceId` 查询参数指定目标设备) - `GET /device/config`:获取设备当前配置 - `GET /device/status`:获取设备在线状态 所有 `/device/*` 接口需在 `Authorization: Bearer ` 下访问。 ## 设备 WebSocket - 连接地址:`ws://:/ws/device` - 首条消息必须为 ```json { "type": "HANDSHAKE", "payload": { "deviceId": "xxx" } } ``` - 服务端返回 `{"type":"HANDSHAKE"}` 表示握手成功,并维持心跳(`PING`/`PONG`) - 下发配置:`{"type":"CONFIG","payload":{"configs":[...]}}` - 设备上报全量配置:`{"type":"UPLOAD_ALL_CONFIG","payload":{"configs":[...]}}`