Je pilote des livraisons IT, et j'opère ma propre infrastructure.
Service Delivery Manager. En parallèle, j'administre un serveur qui héberge neuf services en production, de la sécurité de l'hôte aux sauvegardes.
Une évolution continue, du projet télécom au pilotage de services IT
- Chef de projet télécom
- IT Operations Coordinator
- Incident & Environment Manager
- Service Delivery Manager Aujourd'hui
Infrastructure
Ce que j'ai construit
Un serveur personnel que j'administre seul, monté couche par couche et utilisé au quotidien.
Un socle sécurisé
Serveur Linux durci, accès chiffrés, mises à jour et sauvegardes automatisées.
Neuf services
Gestion de mots de passe, dépôt de code, veille, recettes : des usages réels.
De l'automatisation
Workflows n8n, MCP, agents IA.
Architecture et services schéma, 3 couches, 9 services
Trois couches, montées dans cet ordre
-
L'hôte
Debian 13 sur VPS OVH : compte non privilégié, accès par clé, pare-feu UFW en liste blanche, fail2ban sur SSH, mises à jour de sécurité automatiques. Swap de 2 Gio persistant avec une
swappinessbasse, parce qu'un LLM local et une base de données se disputent vite la RAM. -
Le routage
Traefik lit les labels Docker et publie chaque service sur son sous-domaine, avec un certificat Let's Encrypt obtenu et renouvelé sans intervention. Un seul réseau Docker partagé sert de bus : aucun port applicatif n'est exposé sur l'hôte, seuls 80 et 443 le sont.
-
Les données et les modèles
Une instance PostgreSQL mutualisée, une base par application. Ollama fait tourner des modèles en local sous une limite mémoire explicite. Sauvegardes par
pg_dumpet archives des volumes, planifiées et rapatriées hors du serveur.
Les neuf services
-
TraefikPoint d'entrée unique : routage, HTTPS, redirections.Version épinglée, réseau déclaré explicitement sur chaque conteneur.
-
n8nAutomatisations : digest de veille quotidien, tâches planifiées, outillage des agents.Fuseau horaire imposé par variables d'environnement, sinon les crons partent en UTC.
-
OllamaModèles de langage exécutés sur le serveur, sans appel à un service tiers.Plafond mémoire assumé : le choix du modèle dépend de ce qui reste pour le reste.
-
PostgreSQLStockage des applications, une base et un rôle par service.Migration des objets vers des rôles dédiés en cours, tracée comme dette.
-
GiteaForge privée : la description de l'infrastructure et le code applicatif y vivent.Dépôts séparés pour l'infra et les applications, secrets exclus du suivi.
-
VaultwardenCoffre de mots de passe de la famille, synchronisé sur les clients Bitwarden.Conteneur ramené à un utilisateur non privilégié, vérifié côté processus hôte.
-
MealieRecettes et menus de la semaine, alimentés aussi par les agents.API exposée aux workflows n8n pour créer une recette depuis une URL ou du texte.
-
MinifluxAgrégateur de flux : la source de la veille résumée chaque matin.Déduplication des articles déjà traités pour ne pas les résumer deux fois.
-
Portail personnelTableau de bord privé : météo, dernières recettes, raccourcis.Réécrit depuis zéro en Node sans framework, après une première version générée.
En production Travaux en cours
Trois incidents, de la panne au correctif symptôme, cause, correctif
-
Erreurs 504 aléatoires sur un service pourtant démarré
- Symptôme
- Erreur 504 aléatoire sur un conteneur sain.
- Cause
- Le conteneur appartient à deux réseaux Docker ; le proxy choisissait le mauvais.
- Correctif
- Réseau de publication déclaré explicitement par label, sur chaque service.
-
Aucune route découverte au démarrage du proxy
- Symptôme
- Aucune route découverte au démarrage, le proxy tourne à vide.
- Cause
- Version du proxy trop ancienne pour la version d'API du moteur Docker installé.
- Correctif
- Version épinglée et vérifiée sur les notes de publication, plus jamais de tag flottant.
-
Un modèle de langage arrêté dès la première requête
- Symptôme
- Conteneur tué par la limite mémoire dès la première requête.
- Cause
- Le nom du modèle annonce les paramètres actifs, pas ce qui est chargé en mémoire.
- Correctif
- Sélection des modèles sur la mémoire réellement consommée, mesurée avant mise en service.
Méthode
Comment je travaille
Auditer avant de durcir
Relevé de l'état réel avec des outils d'audit reconnus, puis correction ciblée.
Sauvegarder avant de toucher
Dump de la base et copie des volumes avant toute opération sur des données vivantes.
Documenter en continu
Une fiche technique sectionnée suit les décisions d'architecture.
Nommer la dette
Ce qui est reporté est listé, daté et justifié.
Feuille de route 4 chantiers priorisés
- Prochain
Authentification unique
Un fournisseur d'identité en frontal du proxy, pour cesser de gérer un mot de passe par service. En attente de validation de la marge mémoire.
- Engagé
Secrets chiffrés dans le dépôt
Chiffrement des fichiers de configuration sensibles, pour versionner la stack complète sans versionner les secrets en clair.
- Engagé
Durcissement du proxy
Accès indirect au démon Docker, en-têtes de sécurité, limitation de débit, politique TLS explicite.
- Engagé
Sauvegardes complètes
Étendre la couverture aux derniers services, avec restauration testée et non supposée.
Contact
Me joindre
Une question sur un point d'architecture, ou une opportunité à discuter : écrivez-moi.
- contact@jpoussin.frE-mail
- LinkedInParcours détaillé