Skip to content

Latest commit

 

History

History
59 lines (41 loc) · 1.48 KB

File metadata and controls

59 lines (41 loc) · 1.48 KB

Go Device Telemetry API

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.

Documentation

Features

  • User Authentication with JWT
  • Device Management (CRUD)
  • Telemetry Collection (time-series sensor data)
  • Command Dispatch to devices
  • CI pipeline (GitHub Actions)

Tech Stack

  • Language: Go (Golang)
  • Router: Chi
  • Database: PostgreSQL + pgx + Goose SQL migrations

Quick Start

  1. Clone the repository
git clone git@github.com:raphico/go-device-telemetry-api.git
cd go-device-telemetry-api
  1. 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)
  1. Run server
go run cmd/api/main.go

Future improvements

  1. Unit & Integration testing
  2. Continuous Deployment
  3. WebSocket endpoint for real-time telemetry streaming
  4. MQTT broker integration (devices publish telemetry → backend ingests)
  5. OTA firmware update endpoint

License

Licensed under the MIT License. Check the LICENSE file for details.