← Retour aux projets Projet Perso · Infrastructure

Hub ttoile.dev

Portail auto-hébergé de supervision et d'administration de mon homelab, bâti autour d'une séparation stricte entre un plan public exposé à Internet et un plan d'administration réservé au réseau local.

Node.js · Fastify React SSE temps réel Cloudflare Tunnel
Voir le projet

L'objectif

Le Hub est la page d'accueil publique de ttoile.dev et le poste de pilotage de mon infrastructure personnelle. Il affiche en temps réel l'état d'une quinzaine de services, héberge le portfolio public avec son formulaire de contact, et expose un plan d'administration — démarrage et arrêt des services, lecture des messages, journal d'audit — accessible uniquement depuis mon réseau local.

Tout le projet est construit autour d'une exigence : ce qui est sensible ne doit jamais être joignable depuis Internet, par conception et non par simple configuration.

La séparation public / admin

Le principe directeur du projet : les fonctions d'administration ne sont jamais exposées à Internet. Le plan public et le plan d'administration sont deux surfaces distinctes, et la frontière entre les deux est garantie au niveau de l'architecture réseau plutôt que par une simple règle applicative.

Cette approche « secure by design » m'a permis de traiter la séparation des privilèges comme une propriété structurelle du système, et non comme une option de configuration que l'on peut oublier ou contourner.

La supervision temps réel

  • Sondes HTTP et TCP toutes les dix secondes, avec délai d'expiration, décalage aléatoire au démarrage et protection anti-concurrence par service.
  • Diffusion de l'état vers l'interface en Server-Sent Events, sans rechargement ni sondage côté client.
  • Contrôle des services depuis l'interface, restreint à un ensemble d'actions et d'unités explicitement autorisées, sans jamais exposer de shell.
  • Journal d'audit inaltérable de chaque connexion, échec et action d'administration.

Le durcissement

La sécurité applicative a été traitée en défense en profondeur, en appliquant les bonnes pratiques que je recommande par ailleurs à mes clients :

  • Authentification forte par hachage moderne, sessions serveur et protection anti-CSRF.
  • Limitation des tentatives de connexion et réponses uniformes pour contrer l'énumération de comptes.
  • Formulaire de contact durci contre le spam et les abus, avec stockage en écriture seule.
  • En-têtes de sécurité et politique de sécurité de contenu (CSP) stricte, sans dépendance à un CDN.
  • Couverture par une suite de tests automatisés incluant les scénarios de sécurité.

Compétences développées

  1. Conception d'une architecture de sécurité par cloisonnement : séparation des plans par construction plutôt que par configuration.
  2. Développement backend Node.js / Fastify avec base SQLite et diffusion temps réel en Server-Sent Events.
  3. Administration système sécurisée : contrôle de services restreint à une liste d'actions autorisées, sans exposition de shell.
  4. Durcissement applicatif en défense en profondeur : authentification forte, anti-CSRF, limitation de débit, journal d'audit et CSP stricte.
  5. Exploitation en production : tunnel Cloudflare, service systemd, couverture de tests automatisés.