Skip to content
YavLabsPublic

About

No description, website, or topics provided.

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

iAIOM - Open Source Infrastructure Monitoring SaaS

Language: English

Everything iAIOM

Stars Forks Contributors npm iAIOM Web GitHub App Install License Shell JavaScript Python Docker PostgreSQL Markdown

Open source | Hub + Agent model | Hybrid infrastructure monitoring | Real-time MQTT telemetry


iAIOM (All in One Monitoring Platform) is an open-source, self-hostable SaaS platform for monitoring hybrid infrastructure in real time.

It uses a Hub + Agent architecture where lightweight agents publish metrics and health data over MQTT, and a central hub handles ingestion, alerting, retention, and visualization.

Data hierarchy: Customer -> Server -> Service


Why iAIOM

  • Real-time telemetry using MQTT transport
  • Multi-tenant SaaS-style data model
  • Built-in alerting pipeline and notification channels
  • Self-host in Docker with a single edge entrypoint
  • Open architecture with clear docs for extension and contribution

Core Features

  • Hybrid Monitoring: Monitor services and infrastructure across cloud + on-prem hosts.
  • Hub + Agent Model: Deploy agents close to workloads; keep centralized control in hub.
  • Timeseries + Relational Storage: TimescaleDB for metrics, PostgreSQL for app/domain data.
  • Asynchronous Processing: Celery workers for alert evaluation, retention jobs, and probing tasks.
  • Security by Design: JWT auth, HMAC validation for MQTT bridge payloads, strict CORS policy.
  • Compliance Aware: GDPR-oriented data processing and retention controls.

Architecture Overview

Apps

  • apps/web - React 18 + Vite + ShadCN + Tailwind (JavaScript only)
  • apps/api - FastAPI + SQLAlchemy 2 async + Alembic + Celery
  • apps/agent - Python monitoring agent (PyInstaller distribution target)

Infrastructure

  • infra - Nginx, Mosquitto, TimescaleDB and related configuration
  • docker-compose.yml - production stack
  • docker-compose.dev.yml - local development stack with hot reload

Documentation

  • docs/architecture.md - system architecture and data flow
  • docs/db-schema.md - relational and timeseries schema details
  • docs/mqtt-topics.md - MQTT topic contracts and payloads
  • docs/security.md - security controls and trust boundaries
  • docs/rbac.md - role and permission model
  • docs/gdpr-dpa.md - privacy/compliance notes

Tech Stack

  • Frontend: Vite, React 18, Tailwind CSS, ShadCN UI
  • Backend: FastAPI, SQLAlchemy 2 (async), Pydantic v2, Alembic
  • Messaging: Eclipse Mosquitto (MQTT + MQTT-over-WebSocket)
  • Data: PostgreSQL + TimescaleDB
  • Jobs/Queue: Celery + Redis
  • Agent: Python, psutil, aiomqtt

Quick Start (Self-Hosted)

1) Configure environment

cp .env.example .env
# Edit .env and set all required secrets and credentials

2) Start the stack

# Production-like
docker compose up

# Development (hot reload)
docker compose -f docker-compose.dev.yml up

Hub entrypoint is available at http://localhost:5555 (default local setup).


Local Development

# From repo root
docker compose -f docker-compose.dev.yml up

Useful commands:

# API migrations
cd apps/api && alembic upgrade head

# Create a new migration after model changes
cd apps/api && alembic revision --autogenerate -m "description"

# Frontend lint
cd apps/web && pnpm lint

# API tests
cd apps/api && pytest

Configuration Notes

  • Never commit real secrets.
  • Use environment variables for all credentials and keys.
  • Keep CORS_ORIGINS explicit (no wildcard origins).
  • Ensure MQTT bridge HMAC validation is enabled with a strong key.

Project Status

iAIOM is actively developed. The repository contains scaffolded and in-progress modules across web, API, worker, and agent layers.

If you are evaluating for production, review:

  • docs/security.md
  • docs/architecture.md
  • docs/gdpr-dpa.md

Contributing

Contributions are welcome from the community.

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for behavior changes
  4. Run lint/tests locally
  5. Open a pull request with context and test notes

Please keep changes aligned with repository conventions:

  • Frontend is JavaScript only (no TypeScript files)
  • Database schema changes must go through Alembic migrations
  • Mutating API routes should include audit logging

Security

If you discover a security issue, please report it responsibly and avoid public disclosure before maintainers have time to patch.


License

This project is licensed under the MIT License. See LICENSE.

About

No description, website, or topics provided.

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages