Language: English
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
- 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
- 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.
apps/web- React 18 + Vite + ShadCN + Tailwind (JavaScript only)apps/api- FastAPI + SQLAlchemy 2 async + Alembic + Celeryapps/agent- Python monitoring agent (PyInstaller distribution target)
infra- Nginx, Mosquitto, TimescaleDB and related configurationdocker-compose.yml- production stackdocker-compose.dev.yml- local development stack with hot reload
docs/architecture.md- system architecture and data flowdocs/db-schema.md- relational and timeseries schema detailsdocs/mqtt-topics.md- MQTT topic contracts and payloadsdocs/security.md- security controls and trust boundariesdocs/rbac.md- role and permission modeldocs/gdpr-dpa.md- privacy/compliance notes
- 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
cp .env.example .env
# Edit .env and set all required secrets and credentials# Production-like
docker compose up
# Development (hot reload)
docker compose -f docker-compose.dev.yml upHub entrypoint is available at http://localhost:5555 (default local setup).
# From repo root
docker compose -f docker-compose.dev.yml upUseful 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- Never commit real secrets.
- Use environment variables for all credentials and keys.
- Keep
CORS_ORIGINSexplicit (no wildcard origins). - Ensure MQTT bridge HMAC validation is enabled with a strong key.
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.mddocs/architecture.mddocs/gdpr-dpa.md
Contributions are welcome from the community.
- Fork the repository
- Create a feature branch
- Add tests for behavior changes
- Run lint/tests locally
- 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
If you discover a security issue, please report it responsibly and avoid public disclosure before maintainers have time to patch.
This project is licensed under the MIT License. See LICENSE.