Documentation
System architecture
How the OmniOilPersonal services fit together across landing, backend, field/admin UIs, telemetry, MQTT, and operations infrastructure.
Status: VerifiedSources: 3
OmniOilPersonal is a Rust and TypeScript workspace. The production stack runs a Rust Axum backend, TimescaleDB/Postgres, Redis, MinIO, Mosquitto, a landing app, admin and field frontends, an events relay, telemetry ingestor, JSON report generator, and build orchestration services.
| Layer | Verified responsibility | Evidence |
|---|---|---|
| Backend API | HTTP API, WebSocket telemetry tickets, MQTT relay, migrations, metrics | services/backend-api/src/main.rs |
| Field edge | MQTT topics for status, health, logs, alarms, telemetry, provisioning | services/backend-api/src/main.rs |
| Storage | TimescaleDB/Postgres for telemetry, operations, auth, MQTT ACLs; Redis and MinIO are compose services | docker-compose.yml; services/backend-api/migrations |
| Frontend apps | Landing, admin dashboard, field PWA, and console are built as separate frontend targets | docker-compose.yml |
Pending validation
- Production deployment topology, uptime guarantees, and security certifications are intentionally not asserted here.
- Exact external domain routing should be validated against the deployed Nginx/gateway configuration before publishing operator-facing runbooks.
Source basis
- docker-compose.yml
- services/backend-api/src/main.rs
- services/shared-lib/src/mqtt_messages.rs