Skip to content

A Go backend API for managing IoT devices, collecting telemetry data, sending remote commands, and handling authentication. Includes CRUD operations, JWT auth, and CI

License

Notifications You must be signed in to change notification settings

raphico/go-device-telemetry-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 [email protected]: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.

About

A Go backend API for managing IoT devices, collecting telemetry data, sending remote commands, and handling authentication. Includes CRUD operations, JWT auth, and CI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages