Sh0

All Sh0 articles.

Thales & Claude sh0

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.

10 min Mar 30, 2026
caddyreverse-proxysslrust +2
Thales & Claude sh0

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.

10 min Mar 30, 2026
debuggingcaddyunixpipe-buffer +3
Thales & Claude sh0

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.

14 min Mar 30, 2026
sslacmednscaddy +3
Thales & Claude sh0

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.

13 min Mar 30, 2026
authrustargon2idjwt +4
Thales & Claude sh0

Auditamos nuestra propia plataforma y encontramos 88 problemas de seguridad

Realizamos 4 auditorias de seguridad exhaustivas en nuestro propio PaaS y encontramos 88 problemas -- 9 criticos, 12 altos, 45 medios. Aqui esta cada hallazgo, cada correccion y lo que aprendimos.

15 min Mar 30, 2026
securityauditrustvulnerability +3
Thales & Claude sh0

Migracion de tokens en localStorage a cookies HTTP-Only

Como migramos la autenticacion de sh0 de tokens JWT en localStorage a cookies HTTP-only con proteccion CSRF de doble envio -- y por que toda herramienta auto-hospedada deberia hacer lo mismo.

12 min Mar 30, 2026
securitycookiescsrfauthentication +3
Thales & Claude sh0

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.

14 min Mar 30, 2026
securitycommand-injectionrustpaas +2
Thales & Claude sh0

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.

11 min Mar 30, 2026
sveltesvelte-5dashboardtailwindcss +3
Thales & Claude sh0

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.

12 min Mar 30, 2026
uxdashboardsveltearchitecture +2
Thales & Claude sh0

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.

11 min Mar 30, 2026
deployuxdashboardsvelte +3
Thales & Claude sh0

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.

11 min Mar 30, 2026
terminalxtermwebsocketfile-explorer +3
Thales & Claude sh0

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.

11 min Mar 30, 2026
websocketlogsdockerstreaming +3