Skip to content

NickScherbakov/sentio-iot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

🌐 Sentio IoT

Distributed Observability Platform for IoT & Edge Devices

License: MIT CI Docker Python React GitHub Stars GitHub Forks

Sentio IoT is an open-source, enterprise-grade observability platform designed specifically for IoT and edge devices. Monitor metrics, logs, and traces across thousands of devices in real-time with AI-driven alerting, predictive maintenance, and native integrations.

πŸš€ Quick Start β€’ πŸ“– Documentation β€’ πŸ—ΊοΈ Roadmap β€’ 🀝 Contributing β€’ πŸ’¬ Discussions


✨ Key Features

🎯 Core Capabilities

  • πŸ“Š Unified Observability - Metrics, logs, and traces in one platform
  • πŸ€– AI-Powered Analytics - Anomaly detection & predictive maintenance
  • πŸ“ˆ Horizontally Scalable - Handle thousands of devices effortlessly
  • 🎨 Modern Dashboard - Real-time visualizations with WebSocket updates

πŸ”Œ Connectivity & Security

  • 🌐 Multi-Protocol Support - Home Assistant, Zigbee, Modbus, OPC-UA
  • πŸ”’ Enterprise Security - JWT auth, RBAC, TLS/mTLS
  • ☁️ Flexible Deployment - Cloud, on-premises, or hybrid
  • 🐳 Container-Native - Full Docker & Kubernetes support

πŸš€ Quick Start

Get up and running in under 5 minutes!

# Clone the repository
git clone https://github.com/NickScherbakov/sentio-iot.git
cd sentio-iot

# Start all services with Docker Compose
docker-compose up -d

# Wait for services to initialize (~30 seconds)
docker-compose ps

# Access the dashboard
open http://localhost:3000
# Default credentials: admin / admin (⚠️ Change in production!)

πŸ“¦ What's Included

After running docker-compose up, you'll have:

Service Port Description
🎨 Dashboard 3000 Web UI for monitoring and management
πŸ”Œ API Server 8080 REST API and WebSocket endpoint
πŸ“Š VictoriaMetrics 8428 Time-series metrics database
πŸ“ Loki 3100 Log aggregation system
πŸ” Tempo 3200 Distributed tracing backend
πŸ’Ύ PostgreSQL 5432 Metadata and configuration store
πŸš€ Redis 6379 Cache and message queue

🎬 Next Steps

  1. πŸ“– Read the Full Documentation
  2. βš™οΈ Configure your first device connector
  3. 🎯 Set up alerts and monitoring
  4. πŸš€ Plan your production deployment

πŸ“– Documentation

Comprehensive documentation to help you get started:

Guide Description
πŸ“˜ Getting Started Complete overview and introduction
πŸ”§ Installation Detailed installation instructions
βš™οΈ Configuration Configuration reference and examples
πŸ“‹ Examples Ready-to-use configuration examples
πŸš€ Deployment Production deployment guide
πŸ“š API Reference REST API and WebSocket documentation
πŸ—οΈ Architecture Technical architecture deep dive
❓ FAQ Frequently asked questions
πŸ”§ Troubleshooting Common issues and solutions
πŸ†š Comparison Compare with alternatives

πŸ› οΈ Technology Stack

Backend

  • FastAPI (Python 3.11) - High-performance async API framework
  • aiohttp - Async HTTP client/server
  • scikit-learn - Machine learning library
  • OpenTelemetry - Observability instrumentation

Frontend

  • React 18 - Modern UI framework
  • Material-UI - Professional component library
  • Recharts - Powerful data visualization
  • Vite - Lightning-fast build tool

Storage & Infrastructure

  • VictoriaMetrics - Fast, cost-effective time-series DB
  • Loki - Horizontally-scalable log aggregation
  • Tempo - High-scale distributed tracing backend
  • PostgreSQL 15 - Reliable relational database
  • Redis 7 - In-memory data structure store
  • Docker - Containerization platform

πŸ—οΈ Architecture

Sentio IoT uses a modern microservices architecture designed for scalability and reliability:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         Dashboard (React)                        β”‚
β”‚                    http://localhost:3000                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚ REST/WebSocket
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      API Server (FastAPI)                        β”‚
β”‚              Authentication β€’ Authorization β€’ WebSocket           β”‚
β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚          β”‚          β”‚          β”‚
      β–Ό          β–Ό          β–Ό          β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Victoria  β”‚ β”‚ Loki β”‚ β”‚Tempo β”‚ β”‚  PostgreSQL  β”‚
β”‚ Metrics  β”‚ β”‚      β”‚ β”‚      β”‚ β”‚   & Redis    β”‚
β”‚(Metrics) β”‚ β”‚(Logs)β”‚ β”‚(Trace)β”‚ β”‚  (Metadata)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β–²          β–²        β–²
      β”‚          β”‚        β”‚
β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Collectors Service                            β”‚
β”‚               Metrics β€’ Logs β€’ Traces Ingestion                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     Protocol Connectors                           β”‚
β”‚        Home Assistant β€’ Zigbee β€’ Modbus β€’ OPC-UA                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β–Ό                    β–Ό
              [IoT Devices]        [Industrial PLCs]

Core Components

  • 🎨 Dashboard: Modern React SPA with Material-UI
  • πŸ”Œ API Server: FastAPI with async/await for high concurrency
  • πŸ“Š Collectors: High-throughput data ingestion service
  • πŸ”— Connectors: Protocol-specific device integration layer
  • πŸ€– AI Engine: Machine learning for anomaly detection
  • πŸ’Ύ Storage: Best-in-class open-source data stores

πŸ”Œ Supported Protocols & Integrations

🏠 Smart Home

  • Home Assistant - Full API integration
  • Zigbee - Via MQTT/Zigbee2MQTT
  • Z-Wave - Coming in v1.4
  • Matter/Thread - Roadmap

🏭 Industrial

  • Modbus TCP - PLCs and sensors
  • OPC-UA - Industrial Ethernet standard
  • BACnet - Building automation (planned)
  • LonWorks - Roadmap

πŸ”œ Coming Soon

MQTT, CoAP, KNX, and custom protocol support - see our Roadmap

🀝 Contributing

We love contributions! Sentio IoT is built by the community, for the community.

Ways to Contribute

  • πŸ› Report bugs - Open an issue with details
  • πŸ’‘ Suggest features - Share your ideas
  • πŸ“ Improve docs - Help others get started
  • πŸ’» Submit PRs - Fix bugs or add features
  • ⭐ Star the repo - Show your support!

Getting Started

  1. Read our Contributing Guide
  2. Check out Good First Issues
  3. Join discussions in GitHub Discussions
  4. Review our Code of Conduct

Development Setup

# Clone your fork
git clone https://github.com/YOUR_USERNAME/sentio-iot.git
cd sentio-iot

# Create a branch
git checkout -b feature/amazing-feature

# Make your changes and test
docker-compose up -d

# Commit and push
git commit -m "Add amazing feature"
git push origin feature/amazing-feature

# Open a Pull Request

πŸ—ΊοΈ Roadmap

Check out our Roadmap to see what's coming next! We're working on:

  • 🎨 Custom dashboard builder
  • 🏒 Multi-tenancy support
  • 🧠 Advanced AI/ML models
  • πŸ“± Mobile applications
  • πŸ”Œ Additional protocol support
  • ☸️ Kubernetes deployment

Vote on features and suggest new ones in GitHub Issues!

πŸ“Š Project Stats

GitHub commit activity GitHub issues GitHub pull requests GitHub contributors GitHub last commit

πŸ™ Acknowledgments

Sentio IoT builds on amazing open-source projects:

Special thanks to all our contributors!

🌟 Support the Project

If you find Sentio IoT useful, please consider:

  • ⭐ Star this repository - It helps others discover the project
  • 🐦 Share on social media - Spread the word
  • πŸ’¬ Join discussions - Help build the community
  • 🀝 Contribute - Code, docs, or ideas
  • πŸ’– Sponsor - Support ongoing development

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

What this means:

  • βœ… Commercial use allowed
  • βœ… Modification allowed
  • βœ… Distribution allowed
  • βœ… Private use allowed
  • ℹ️ License and copyright notice required

πŸ” Security

Security is a top priority. Please review our Security Policy and report vulnerabilities responsibly.

πŸ“ž Contact & Community

🎯 Use Cases

Sentio IoT is perfect for:

  • 🏠 Smart Home Monitoring - Track all your IoT devices in one place
  • 🏭 Industrial IoT - Monitor factory equipment and sensors
  • 🏒 Building Management - Oversee HVAC, lighting, and security systems
  • 🌾 Agriculture - Monitor greenhouses and farm equipment
  • πŸ’‘ Energy Management - Track power consumption and optimize usage
  • πŸš— Fleet Management - Monitor vehicle telemetry and diagnostics

Built with ❀️ by the open-source community

⭐ Star us on GitHub! β€” it motivates us to create more features ⭐

Report Bug β€’ Request Feature β€’ Ask Question

About

Sentio IoT is an open-source observability hub for IoT and edge computing. Monitor metrics, logs, and traces across thousands of devices in real-time. Features AI-driven alerting, predictive maintenance, native integrations (Home Assistant, Zigbee, Modbus), and secure cloud/on-prem deployment.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors