Sh0
All Sh0 articles.
La CLI de sh0: 10 comandos que replican el panel
Como construimos la CLI de sh0 con 10 comandos que replican cada accion del panel -- desplegar, logs, variables de entorno, verificaciones de salud y SSH a contenedores -- usando clap, reqwest y tokio-tungstenite.
Despliegues bleu-vert: construir un pipeline de cero downtime en Rust
El pipeline de despliegue en 8 pasos que impulsa sh0: clonar, analizar, construir, desplegar, health check, enrutar, intercambiar y limpiar -- con intercambios de contenedores bleu-vert y gestion automatica de disco.
119 plantillas de un clic: de WordPress a Ollama
Cómo construimos un sistema de plantillas basado en YAML con sustitución de variables, ordenamiento de dependencias y 119 plantillas listas para producción que cubren bases de datos, CMS, IA/ML y más.
i18n desde el día uno: 5 idiomas en 105 sesiones
Por qué construimos sh0 con soporte para 5 idiomas desde la primera sesión del panel, y cómo mantuvimos la ortografía correcta en inglés, francés, español, portugués y suajili a lo largo de 105 sesiones de desarrollo.
Dia Cero: 10 crates Rust en 24 horas
Como montamos una plataforma PaaS completa -- 10 crates Rust, 24 tablas de base de datos, cliente Docker Engine, servidor API, motor de build y health checks -- en un solo dia.
Escribir un cliente Docker Engine desde cero en Rust
Por que escribimos un cliente personalizado de la API Docker Engine usando hyper y sockets Unix en lugar de invocar el CLI de Docker, y el parseo de flujos multiplexados que lo hizo funcionar.
Deteccion automatica de 19 stacks tecnologicos desde el codigo fuente
Como el motor de build de sh0 detecta 19 stacks tecnologicos, genera Dockerfiles de produccion con builds multi-etapa y crea contextos de build optimizados -- todo en Rust puro.
34 reglas para detectar errores de despliegue antes de que ocurran
Construimos un motor de analisis estatico en Rust puro con 34 reglas en 8 categorias para detectar problemas de seguridad, errores de configuracion y errores de despliegue antes de que lleguen a produccion.
Domar Caddy como reverse proxy programatico
Como convertimos Caddy en un reverse proxy completamente programatico gestionado via su API Admin, con SSL automatico, sincronizacion de rutas y recuperacion ante caidas.
El bug de 16 KB: como un buffer de pipe congelo toda nuestra plataforma
Un buffer de pipe de 16 KB causaba que Caddy se congelara cada 5 minutos. La historia de depuracion de un clasico deadlock de pipe Unix que nos llevo de la confusion a un arreglo de 5 lineas.
SSL automatico: DNS, ACME y certificados personalizados
Como sh0 gestiona certificados SSL automaticamente via la integracion ACME de Caddy, soporta subidas de certificados personalizados con claves privadas cifradas con AES-256-GCM, y configura DNS para despliegues auto-hospedados.
Auth en Rust: Argon2id, JWT, TOTP y claves API
Construyendo un sistema de autenticacion completo en Rust: hashing de contrasenas Argon2id, tokens JWT HS256, 2FA TOTP con codigos de respaldo, generacion de claves API y cifrado AES-256-GCM.