Blog
All articles. All pillars. All authors.
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.
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.
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.
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.
Nous avons audité notre propre plateforme et trouvé 88 problèmes de sécurité
Nous avons mené 4 audits de sécurité complets sur notre propre PaaS et trouvé 88 problèmes -- 9 critiques, 12 élevés, 45 moyens. Voici chaque découverte, chaque correctif, et ce que nous avons appris.
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.
Auth en Rust : Argon2id, JWT, TOTP et clés API
Construire un système d'authentification complet en Rust : hachage de mots de passe Argon2id, jetons JWT HS256, 2FA TOTP avec codes de secours, génération de clés API et chiffrement AES-256-GCM.
Migration des jetons localStorage vers les cookies HTTP-Only
Comment nous avons migré l'authentification de sh0 des jetons JWT en localStorage vers des cookies HTTP-only avec protection CSRF en double soumission.
Prévention de l'injection de commandes dans un PaaS
Un PaaS exécute des commandes fournies par l'utilisateur par conception. Voici comment nous avons construit validate_command() pour empêcher l'injection shell dans les tâches cron, les hooks de déploiement et Docker exec.
Construire un tableau de bord de production avec Svelte 5 en 48 heures
Comment nous avons construit le tableau de bord de production de sh0 -- thèmes sombre/clair, i18n en 5 langues, logs WebSocket en temps réel, et 7 pages principales -- avec Svelte 5 runes et TailwindCSS 4 en 48 heures.
Le Deploy Hub : 183 options, une page
Comment nous avons construit un hub de déploiement de style Softaculous avec 183 options réparties en 5 catégories, 7 composants de formulaire et une UX en panneau partagé.
Terminal web et explorateur de fichiers dans un PaaS auto-hébergé
Comment nous avons construit un terminal dans le navigateur (xterm.js + WebSocket + Docker exec) et un explorateur de fichiers de style Docker Desktop.