Sh0
All Sh0 articles.
Prevencion de inyeccion de comandos en un PaaS
Un PaaS ejecuta comandos proporcionados por el usuario por diseno. Asi es como construimos validate_command() para prevenir inyeccion shell en tareas cron, hooks de despliegue y Docker exec -- sin romper los casos de uso legitimos.
Construir un dashboard de produccion con Svelte 5 en 48 horas
Como construimos el dashboard de produccion de sh0 -- temas oscuro/claro, i18n en 5 idiomas, logs WebSocket en tiempo real y 7 paginas principales -- usando Svelte 5 runes y TailwindCSS 4 en 48 horas.
De listas planas a Stacks: redisenar toda nuestra UX
Tiramos nuestra interfaz de listas planas de apps/bases de datos y reconstruimos alrededor de stacks por proyecto con una doble sidebar, navegacion contextual y secciones estilo cPanel. Aqui esta el por que y el como.
El Deploy Hub: 183 opciones, una pagina
Como construimos un hub de despliegue estilo Softaculous con 183 opciones en 5 categorias, 7 componentes de formulario y una UX de panel dividido que hace que desplegar cualquier cosa se sienta como un clic.
Terminal web y explorador de archivos en un PaaS autoalojado
Cómo construimos un terminal basado en navegador (xterm.js + WebSocket + Docker exec) y un explorador de archivos estilo Docker Desktop con mkdir, edición y eliminación -- funciones que la mayoría de PaaS autoalojados no ofrecen.
Logs en tiempo real: streaming WebSocket desde contenedores Docker
Cómo construimos streaming de logs en tiempo real desde contenedores Docker al navegador usando WebSocket, con autenticación JWT, reconexión automática y un visor estilo terminal.
Docker Compose en un PaaS: parsing, validación y despliegue
Cómo añadimos soporte para Docker Compose a sh0 -- parseando YAML de Compose v3, validando dependencias, detectando referencias circulares y desplegando stacks multi-servicio.
Motor de respaldos: AES-256-GCM, 13 proveedores de almacenamiento y pesadillas FTP
Construyendo un motor de respaldos con almacenamiento conectable, cifrado AES-256-GCM, 13 proveedores de almacenamiento vía OpenDAL -- y el bug de FTP IPv6 que nos obligó a escribir nuestro propio cliente.
Autoescalado en Rust: umbrales de CPU, enfriamientos y balanceo de carga
Cómo construimos escalado horizontal con balanceo de carga Caddy, gestión de contenedores réplica y un autoescalador que evalúa umbrales de CPU/memoria con enfriamientos configurables.
Cron Jobs y entornos de vista previa: dos funcionalidades, cero tiempo de inactividad
Cómo construimos la programación de cron jobs con imposición de timeout y entornos de vista previa con integración de webhooks de PR -- desarrollados en paralelo usando aislamiento con git worktree.
Monitoreo y alertas: Email, Slack, Discord, Telegram, Webhooks
Construyendo un sistema de monitoreo con recolección periódica de estadísticas Docker, evaluación de alertas basada en umbrales y despacho multi-canal a Email, Slack, Discord, Telegram y webhooks personalizados.
Dándole cerebro a sh0: AI Gateway con Claude Tool Calling
Cómo construimos un AI gateway que permite a Claude gestionar servidores sh0 -- con streaming SSE, 10 definiciones de herramientas, ejecución de herramientas del lado del cliente y una interfaz de chat que se siente como hablar con un ingeniero DevOps.