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.

LayerVerified responsibilityEvidence
Backend APIHTTP API, WebSocket telemetry tickets, MQTT relay, migrations, metricsservices/backend-api/src/main.rs
Field edgeMQTT topics for status, health, logs, alarms, telemetry, provisioningservices/backend-api/src/main.rs
StorageTimescaleDB/Postgres for telemetry, operations, auth, MQTT ACLs; Redis and MinIO are compose servicesdocker-compose.yml; services/backend-api/migrations
Frontend appsLanding, admin dashboard, field PWA, and console are built as separate frontend targetsdocker-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