Cómo terminé generando las portadas de este blog con SVG y código en vez de una API de imágenes con IA, y qué aprendí sobre cuándo conviene usar cada una.
Cómo preparé mi servidor casero en Docker para sobrevivir sin supervisión el fin de semana largo de Fiestas Patrias: restart policies, disco y backups puestos a prueba.
Cómo reutilicé la misma técnica que genera este blog (claude -p con --json-schema) para triage de logs de Docker y systemd en mi servidor casero, y dónde no confío en ella.
Cada cambio de hora en Chile es un buen recordatorio de un problema real de DevOps: los timers con hora local pueden saltarse o duplicar ejecuciones. Cómo lo resolví con UTC.
Automaticé backups de todo mi servidor casero con restic y cron, pero nunca los probé de verdad. La primera restauración en frío mostró lo que faltaba.
Cómo armé un sistema que genera borradores para este blog con claude -p y json-schema, portadas SVG por código y aprobación manual, incluyendo un bug real de duplicados.
Cómo configuré unattended-upgrades en Debian 13 para parchear seguridad sin reinicios sorpresa, y por qué conversar con un asistente de IA sobre los flags me hizo ver una interacción que se me había pasado.
Cómo transformé el aburrido mensaje de bienvenida de SSH en un dashboard que lee la configuración real del túnel y muestra qué servicios están arriba.
Armé mi servidor casero sin un solo puerto abierto al público, con fail2ban y actualizaciones automáticas. Igual hubo un hueco que el firewall nunca pudo tapar.
Construí un llamador de bingo con Node.js y Socket.IO para un evento presencial de más de 80 personas. La parte difícil no fue el código: fue aceptar que corría en mi propio servidor, sin margen de error.
Netdata es excelente para métricas de servidor, pero su interfaz no sirve en el celular. Por qué terminé construyendo mi propio mini-dashboard con Node.js, consumiendo su API y el socket de Docker.
Cómo el aislamiento de red por defecto de Docker rompe el descubrimiento IoT, y por qué un archivo de configuración que se regenera solo puede simular un bug de red durante días.
Por qué una Reolink y una cámara genérica se comportaron distinto en Home Assistant, y cómo go2rtc en un contenedor Docker resolvió lo que la configuración nunca iba a resolver.