Portfolio
CV
20 avr. 2026 Case Study

Home Infrastructure : Self-hosting sur VPS OVH

Infrastructure self-hostée sur VPS OVH : reverse proxy Traefik, authentification Authelia, monitoring Prometheus/Grafana/node_exporter, cache Dragonfly, object storage Garage, messaging Redpanda/NATS — déploiement via Docker Compose avec réseau proxy externe.

DockerTraefikPrometheusGrafanaLinuxDragonflyGarageRedpandaNATS
Home Infrastructure

L’Objectif

Mettre en place une infrastructure personnelle sur un VPS OVH (Ubuntu), capable d’héberger plusieurs services avec TLS automatique, authentification centralisée et monitoring complet — le tout via Docker Compose. Au-delà du socle réseau/auth/observabilité, l’infra inclut aussi des briques data inspirées des services cloud managés (object storage, cache mémoire, message streaming), pour expérimenter ces patterns en dehors d’un contexte AWS/GCP.

Architecture

Réseau proxy externe

Tous les services partagent un réseau Docker proxy externe. Traefik est le seul point d’entrée exposé publiquement. Les services internes ne publient aucun port directement : ils communiquent uniquement via ce réseau.

networks:
  proxy:
    external: true

Reverse proxy Traefik

Traefik gère la terminaison TLS (Let’s Encrypt via challenge DNS) et le routage vers les services via labels Docker. Chaque conteneur déclare sa propre règle de routage sans modifier la config centrale.

Authentification Authelia

Authelia s’intercale comme middleware d’authentification. Les services sensibles (Grafana, dashboard Traefik) demande une session valide avec clé A2F avant de laisser passer la requête.

Note: Authelia ne convient plus pour mon usage, le service est orienté portail web, et j’ai besoin de pouvoir authentifier certains services par API. Authentik serait donc un bon prétendant

Monitoring Prometheus / Grafana

  • node_exporter collecte les métriques système (CPU, RAM, disque, réseau)
  • Prometheus scrappe les targets toutes les 15 secondes
  • Grafana expose des dashboards temps réel avec alerting sur les seuils critiques

Cache mémoire Dragonfly

Dragonfly remplace Redis comme cache applicatif sur l’infra, il sert de couche de cache pour plusieurs services hébergés sur le VPS.

Object storage Garage

Garage fournit un stockage objet compatible S3, auto-hébergé. La configuration et les tests sont faits (buckets, policies d’accès).

Messaging Redpanda & NATS

Deux brokers de messages cohabitent sur l’infra pour explorer différents patterns d’event streaming :

  • Redpanda (compatible API Kafka) pour du event streaming durable et du replay de messages
  • NATS pour de la messagerie légère pub/sub et request/reply à faible latence

Le setup est fonctionnel et validé avec des messages de démonstration. l’objectif est de mettre à disposition ces services pour mes projets futurs, et mes tests de laboratoire :).

Ce que j’ai appris

J’ai dû gérer différents problèmes : gestion des secrets via fichiers .env hors dépôt, debug réseau inter-conteneurs, et tuning des alertes pour éviter le bruit.

Dragonfly, Garage, Redpanda et NATS ont aussi été l’occasion de comprendre par la pratique des patterns qu’on retrouve côté cloud managé (S3, ElastiCache, Kinesis/SQS) : configuration de policies d’accès, compatibilité de protocole comme contrainte de migration. Avec 2 broker, un orienté durabilité/replay (Redpanda) et un broker orienté latence (NATS), ça me permet de mieux comparer les 2 philosophies