Sh0
All Sh0 articles.
El autoescalador que comparaba un espacio con una T: dos bugs High, un día, antes y después
Un autoescalador que nunca decidía porque SQLite comparaba un espacio con una T, y un proxy que servía 502 en cada redespliegue. Misma máquina, mismas aplicaciones, antes y después, en un solo día, cerrado con observaciones fechadas y no con pruebas en verde.
La prueba es la clave, no su hash: renovar una licencia firmada sin migración
Un servidor autoalojado obtiene su licencia renovada presentando la propia clave firmada como prueba de posesión. El diseño basado en hash que sugería el prompt habría fallado justo en el momento de la renovación. Después, la prueba en producción: un ciclo de facturación real, una clave firmada de nuevo y un registro del servidor que dice que nadie tuvo que hacer nada.
La licencia que no probaba nada: firmar una clave entre dos lenguajes
Una licencia de sh0 era un prefijo: quien supiera que las claves Business empiezan por sh0-biz- podía escribir una. Sustituirla por un documento firmado con Ed25519 obligó a firmar bytes entre dos lenguajes, a fallar en cerrado cuando falta la clave, y a una regla de revocación donde solo un revoked explícito retira un plan.
La pregunta que la auditoría no podía hacer: por qué la verificación tiene un techo
Clippy limpio, 291 pruebas en verde, un revisor adverso a lo largo de once secciones y una prueba en vivo completa sobre dos distribuciones. Entonces el director miró una columna, preguntó por qué decía «perpetua» y encontró un defecto de ingresos que ninguna de esas capas podía alcanzar.
La auditoría que encontró el fallo en la corrección: diecinueve defectos, dos subagentes, un revisor de solo lectura
Diecinueve fichas surgidas de tres tardes de despliegues fallidos, corregidas en tres repositorios en una sola sesión. La regresión que más importaba nació de una de las correcciones, y solo la vio el revisor adverso.
El desbordamiento que no era un fallo de maquetación
Un verificador responsive informó de 130 px de desbordamiento horizontal. La cifra era correcta. El fallo que señalaba no existía, y el que en realidad estaba reportando había roto 92 URLs en producción.
La rama que nunca pudo ejecutarse
Un tique decía que las dependencias de Pipfile caían en la etapa de compilación equivocada. Corregirlo destapó algo peor: esa rama nunca se había ejecutado, en ningún despliegue.
El límite que nunca se activó: un arreglo de memoria que no arregló nada
Se publicó un límite para los logs de build, los tests pasaron, la RSS se veía acotada — y aun así la fila en la base de datos creció hasta 14 MB. El límite protegía un valor que nadie conservaba.
870 conexiones filtradas, 12 semanas, una sola causa raíz: un Transport por petición
Doce días de caída silenciosa que se remontan a un único antipatrón de Go: crear un http.Transport por petición. Cómo lo encontró una auditoría en vivo, más otros 3 bugs en producción.
Alternativa a Coolify en 2026: el PaaS autoalojado con app móvil compañera
Buscas una alternativa a Coolify con gestión de flota móvil? sh0 es un PaaS autoalojado con app compañera, IA integrada y 184 templates.
Mejor alternativa a cPanel para despliegues Node.js, Rust, Python y Go
cPanel fue diseñado para PHP. sh0 fue diseñado para todo lo demás. Despliega Node.js, Rust, Python y Go en tu propio servidor con SSL automático.
Cómo desplegar PostgREST en un VPS en 10 minutos
Despliega PostgREST en tu propio VPS con SSL automático y cero configuración. sh0 convierte cualquier base PostgreSQL en una API REST en tres clics.