A backend service built with Go for managing IoT devices, collecting telemetry data, sending remote commands, tracking command execution, and providing secure, paginated access for clients. Includes authentication, CRUD operations, and CI setup.
- User Authentication with JWT
- Device Management (CRUD)
- Telemetry Collection (time-series sensor data)
- Command Dispatch to devices
- CI pipeline (GitHub Actions)
- Language: Go (Golang)
- Router: Chi
- Database: PostgreSQL + pgx + Goose SQL migrations
- Clone the repository
git clone [email protected]:raphico/go-device-telemetry-api.git
cd go-device-telemetry-api
- Set environmental variables
export DATABASE_URL="postgres://telemetry_user:telemetry_pass@localhost:5432/telemetry_db"
export HTTP_PORT="8080"
export JWT_SECRET=$(openssl rand -base64 32)
- Run server
go run cmd/api/main.go
- Unit & Integration testing
- Continuous Deployment
- WebSocket endpoint for real-time telemetry streaming
- MQTT broker integration (devices publish telemetry → backend ingests)
- OTA firmware update endpoint
Licensed under the MIT License. Check the LICENSE file for details.