Une personne. Un serveur. Tout ce qui tourne ici, je l'ai dessiné, codé, et je le fais tenir debout.

Je m'appelle Erwan Baillon. Ce panneau lit, en direct, la supervision de la machine qui héberge cette page et tout le reste : 14 sites (13 prototypes, 1 en bêta), une forge, des bases, des bots. Ce n'est pas un datacenter, c'est un serveur dans une pièce ; ce qui est rouge l'est pour de vrai, ce qui est à l'arrêt l'est parce que je l'ai décidé.

0
services surveillés
0
en ligne maintenant
0
en panne maintenant
45
arrêtés volontairement
—
disponibilité sur 24 h, services surveillés
Sites web (publics, via Cloudflare)0/0
Conciergeries0/0
Infrastructure0/0
Projets (LAN et autres)0/0
Trading et R&D0/0
Bases de Donnees & Services Internes0/0
Securite0/0

Une case par service. Vert en ligne, rouge en panne, gris hachuré arrêté volontairement. Touchez une case pour lire son nom.

dernier battement il y a 7 hLu depuis Uptime Kuma toutes les 60 s. Détail public sur status.ebaillon.fr
Serveur physique
1
en France, chez moi
Kubernetes
v1.35
un seul nœud, Debian 13
Namespaces
35
Pods
~110
Applications ArgoCD
58
GitOps depuis Gitea
PostgreSQL
16
CloudNativePG, sauvegardes 14 jours
Entrée
Traefik 3
derrière un tunnel Cloudflare
Secrets
Vault
External Secrets Operator
Mesure
Prometheus
Grafana, Loki, Alertmanager
Défense
Falco
CrowdSec, kube-router, Trivy

Infrastructure

Un homelab : du matériel à moi, dans une pièce, pour apprendre et pour héberger ce que je construis sans dépendre d'un fournisseur.

Statut public de chaque service sur status.ebaillon.fr.

Un serveur en France : Kubernetes v1.35, un seul nœud.

Une requête

  1. Internet
    visiteurs
  2. Cloudflare
    DNS, proxy, WAF ; aucun port ouvert ici
  3. Tunnel
    cloudflared, connexion sortante
  4. Traefik 3
    TLS, CrowdSec, une route par hôte
  5. Applications
    ns projects, web, media, bots…
  6. PostgreSQL 16
    CloudNativePG, ns database
  7. Redis, MinIO
    cache par application, objets et sauvegardes

Une mise en production

  1. Gitea
    code, CI, registre d'images
  2. ArgoCD
    réveillé par webhook, 58 applications
  3. Kubernetes
    déploie les charts Helm, un seul nœud

Autour, sans flèche

  1. Vault
    secrets distribués par External Secrets
  2. Supervision
    Prometheus, Grafana, Loki, Uptime Kuma
  3. Falco, CrowdSec
    détection noyau, bannissements, règles réseau, scan d'images

Rien n'est ouvert vers l'extérieur. Les sites publics passent par un tunnel Cloudflare sortant jusqu'à Traefik ; l'administration reste sur le réseau local, et les pods ne se parlent que si une règle réseau l'autorise (kube-router). CrowdSec bannit, Falco regarde ce que font les processus et Trivy cherche les failles des images.

Tout vient de Git. Chaque application est un chart Helm dans Gitea. La CI construit l'image, pousse le tag, ArgoCD applique. Pas de commande à la main sur le serveur, un retour arrière est un revert.

Les données au même endroit. Une grappe PostgreSQL 16 gérée par CloudNativePG, des secrets dans Vault distribués par External Secrets, des objets dans MinIO. La base est sauvegardée chaque nuit vers MinIO, avec retour à n'importe quel instant des 14 derniers jours.

Mesuré, pas supposé. Prometheus et Grafana pour les métriques, Loki pour les journaux, Alertmanager pour me réveiller, Uptime Kuma pour la vérité vue de l'extérieur, celle affichée en haut de cette page.

Produits et services

14 sites, chacun né d'un problème précis d'un métier précis. Le statut, en face de chaque nom, vient de la même liste que cette page.

La plupart des sites ci-dessous sont des prototypes : construits pour tester une idée en quelques jours, ils tournent pour de vrai mais ne sont pas prêts pour un usage réel. Les statuts sont indiqués site par site : 13 prototypes, Sorago en bêta.

Produits

Des outils en ligne pour des métiers précis, construits pour régler un problème concret et rien d'autre.

Open source

Quatre dépôts publics, choisis parce qu'ils tiennent debout seuls. Le reste est sur github.com/ErwanBAILLON.

nginx-manager

Python, aucune dépendance, licence GPL-3.0

Un outil en ligne de commande qui crée et gère des vhosts nginx sans jamais casser le serveur.

  • Écritures atomiques et sauvegardes horodatées avant chaque changement
  • nginx -t avant d'activer, retour arrière en une commande
  • Réglages TLS sûrs par défaut, commande doctor pour auditer l'existant
  • 107 tests exécutés contre le vrai binaire nginx
Lire le code sur GitHub

ArenaCrypto

Python, licence MIT

Une arène de recherche crypto, signaux seulement : des modèles concurrents décident chaque heure sur des données de marché publiques, un juge déterministe les note en avant contre des modèles nuls.

  • Boucle champion / challenger : une stratégie ne monte que si le juge la promeut
  • Rapports Telegram, aucun ordre passé, aucune clé privée
  • Scores comparés à des modèles nuls, pas à un backtest flatteur

Le produit, c'est le juge, pas le modèle.

Lire le code sur GitHub

honeypot-sql

Go, binaire statique, licence MIT

Un pot de miel MySQL et PostgreSQL à faible interaction : il termine la vraie poignée de main réseau, note les identifiants et les requêtes que les robots essaient, et transmet chaque adresse qui le touche à CrowdSec. Il protège les sites listés sur cette page.

  • Jamais de SQL exécuté : chaque réponse est une table figée, aucune connexion sortante
  • Stockage borné : 256 octets par blob client, tout le reste résumé, une base qui ne gonfle pas
  • Un binaire sans CGO, non-root sur distroless, tableau de bord sans JavaScript
  • 28 tests Go, dont des tests d'intégration avec les vrais clients mysql et pgx

Il ne riposte jamais : la décision appartient à CrowdSec.

Lire le code sur GitHub

DB-monitor

TypeScript, Next.js, licence MIT

Une seule console pour un parc de bases hétérogène : PostgreSQL, CockroachDB, MySQL/MariaDB, Redis/Valkey, MongoDB, ClickHouse, OpenSearch, SQL Server, SQLite, Cassandra/ScyllaDB, InfluxDB 2, Neo4j 5, etcd, Oracle Free, plus RabbitMQ et MinIO/S3. C'est l'outil qui surveille les bases derrière cette page.

  • Mots de passe chiffrés AES-256-GCM, clé tenue hors de l'application
  • Chaque action demande confirmation et finit dans un journal d'audit
  • Consoles en lecture seule imposées côté serveur (transactions READ ONLY, délai 5 s), pas seulement filtrées
  • Chaque moteur validé contre un vrai serveur : 16 tests d'intégration, un par moteur
Lire le code sur GitHub

L'atelier

Qui

Une personne, du croquis à la mise en production. J'écris le code, je dessine l'interface, je tiens le serveur et je réponds aux messages. Le jour, je suis consultant ; ici, c'est le terrain d'essai.

Comment

Un problème concret, un prototype en quelques jours, mis en ligne tout de suite pour voir s'il sert. Open data publique (IGN, ADEME, BOAMP, Base adresse nationale) et règles explicites plutôt qu'une boîte noire. Ce qui ne sert pas est retiré.

Ce que je cherche

Des gens qui ont un vrai problème à régler, un métier à m'expliquer, ou un bout d'infrastructure à construire avec quelqu'un qui a déjà cassé et réparé la sienne.

Ce que je ne vends pas

Pas de régie publicitaire, pas de mesure d'audience, pas de promesse qu'un prototype est un produit. Si un site vous intéresse, écrivez-moi : je vous dirai honnêtement où il en est.

Contact

Pour une question sur un site précis, écrivez de préférence depuis ce site. Pour tout le reste, c'est ici, ou à [email protected].