FirstBreath is a modular, high-performance monitoring platform distributed across multiple repositories and services.
Overview
Hosting Choices
| Criterion | Choice | Justification |
|---|
| Cloud Provider | OVH VPS (France) | Data sovereignty (GDPR), low latency, cost-effective. NVIDIA GPU available for AI inference. |
| PaaS | Dokploy (open-source, self-hosted) | Heroku/Vercel alternative without vendor lock-in. Deployment managed via Git + Docker Compose. |
| Reverse Proxy | Traefik (via Dokploy) | Dynamic routing via Docker labels, automatic TLS termination (Let's Encrypt), API replica load balancing. |
| Containerization | Docker & Docker Compose | Reproducibility, service isolation, resource management (CPU/RAM/GPU). |
Client Constraint Justification
| Constraint | Solution Provided |
|---|
| Budget | OVH VPS with monthly commitment. Exclusively open-source tools (Dokploy, Traefik, Grafana, SonarQube). No licensing costs. |
| Security | Mandatory TLS (Let's Encrypt), non-root containers, isolated Docker networks (internal, monitor-net), dependency audits in CI. See Security. |
| Scalability | API in 2 replicas with Traefik load balancing. Independent Vision services with configurable resource limits. Microservices architecture enables horizontal scaling. |
| Quality of Service | Docker healthchecks on every service, automatic restart (unless-stopped / always), Grafana monitoring with alerts. |
Repositories and Technologies
| Repository | Role | Tech Stack |
|---|
| FirstBreath-Platform | Monorepo (Web, Mobile, Docs) | TurboRepo, Next.js, Expo, Docusaurus |
| Control-Hub-Back | REST API + WebSocket | AdonisJS (Node.js), MySQL 8, Redis |
| firstbreath-vision | AI / Vision System | Python, YOLO, OpenCV CUDA, TensorRT |
| Firstbreath Showcase | Showcase website (legacy → product dashboard) | Next.js, Prisma, MariaDB |
Service Sizing
Each service is sized via Docker Compose resource limits:
| Service | CPU Limit | RAM Limit | GPU | Replicas |
|---|
| REST API | 1.0 | 512 MB | — | 2 |
| WebSocket | 0.5 | 512 MB | — | 1 |
| MySQL 8 | — | 1 GB | — | 1 |
| Redis | — | 300 MB | — | 1 |
| Camera Manager | 4.0 | 2 GB | 1× NVIDIA | 1 |
| Batch Inference | 2.0 | 4 GB | 1× NVIDIA | 1 |
| Redis Worker | 0.5 | 256 MB | — | 1 |
| CloudBeaver | 0.5 | 512 MB | — | 1 |
| Showcase (Web) | 1.0 | 1 GB | — | 1 |
Docker Networks
| Network | Type | Role |
|---|
dokploy-network | External | Exposes services to the Traefik reverse proxy |
monitor-net | External | Inter-service communication (Vision ↔ Backend) without public exposure |
internal | Bridge | Private network for the Control-Hub stack |
control-hub-network | Bridge | Local development network |