Sh0
All Sh0 articles.
OpenAPI comme source unique de vérité : docs, outils MCP et playground
Comment nous avons utilisé utoipa pour auto-générer une spécification OpenAPI 3.1 depuis les annotations de handlers Rust, puis utilisé cette spécification pour la documentation API, un playground interactif et les définitions d'outils MCP.
SSL automatique : DNS, ACME et certificats personnalisés
Comment sh0 gère les certificats SSL automatiquement via l'intégration ACME de Caddy, supporte les uploads de certificats personnalisés avec chiffrement AES-256-GCM des clés privées, et configure le DNS pour les déploiements auto-hébergés.
Le bug de 16 Ko : comment un buffer de pipe a figé toute notre plateforme
Un buffer de pipe de 16 Ko causait le gel de Caddy toutes les 5 minutes. L'histoire du débogage d'un deadlock classique de pipe Unix qui nous a menés de la confusion à un correctif de 5 lignes.
Déploiements bleu-vert : construire un pipeline zéro-downtime en Rust
Le pipeline de déploiement en 8 étapes qui propulse sh0 : clone, analyse, build, déploiement, health check, routage, swap et nettoyage -- avec des swaps de conteneurs bleu-vert et une gestion automatique du disque.
Dompter Caddy comme reverse proxy programmatique
Comment nous avons transformé Caddy en reverse proxy entièrement programmatique piloté via son API Admin, avec SSL automatique, synchronisation des routes et récupération après crash.
34 règles pour détecter les erreurs de déploiement avant qu'elles ne surviennent
Nous avons construit un moteur d'analyse statique en Rust pur avec 34 règles réparties en 8 catégories pour détecter les problèmes de sécurité, les erreurs de configuration et les erreurs de déploiement avant qu'elles n'atteignent la production.
Détection automatique de 19 stacks technologiques depuis le code source
Comment le moteur de build de sh0 détecte 19 stacks technologiques, génère des Dockerfiles de production avec des builds multi-étapes, et crée des contextes de build optimisés -- le tout en Rust pur.
Écrire un client Docker Engine from scratch en Rust
Pourquoi nous avons écrit un client Docker Engine API personnalisé avec hyper et des sockets Unix au lieu de passer par le CLI Docker, et le parsing de flux multiplexés qui a tout fait fonctionner.
Le CLI sh0 : 10 commandes qui reflètent le tableau de bord
Comment nous avons construit le CLI sh0 avec 10 commandes qui reflètent chaque action du tableau de bord -- déployer, logs, variables d'environnement, health checks et SSH dans les conteneurs.
Autoscaling en Rust : seuils CPU, cooldowns et répartition de charge
Comment nous avons construit la mise à l'échelle horizontale avec la répartition de charge Caddy, la gestion de conteneurs répliqués, et un autoscaler avec des cooldowns configurables.
Multi-serveur BYOS : tunnels SSH, transfert d'images et Trust On First Use
Comment nous avons construit le support multi-serveur : tunnels SSH vers les sockets Docker distants via russh, transfert d'images par disque, vérification de clé hôte Trust On First Use.