Cómo usar DNS-01 con Let's Encrypt sin entregar API key al proveedor DNS usando un solo contenedor Docker

Problema Muchas instalaciones de homelab o entornos de producción ligera necesitan certificados TLS para dominios y sub‑dominios, a menudo con soporte wildcard. El método DNS‑01 de ACME es el único que permite wildcard, pero requiere que el cliente pueda crear y borrar registros TXT en la zona DNS. La práctica más extendida es dar a Certbot (o a un proxy como Traefik) acceso mediante una API del proveedor DNS. Eso implica almacenar una clave API en el host, lo que genera dos problemas recurrentes: ...

August 23, 2026 · Ernesto

Cómo automatizar despliegues multi‑platforma con un único archivo metadata

Problema En entornos homelab con varios orquestadores (Docker, Kubernetes, LXC/VM en Proxmox) y servicios de red distribuidos, cada nueva aplicación exige una cadena de pasos repetitivos: reserva DHCP, registros DNS internos y externos, configuración de Traefik, reglas de Authelia, usuarios de bases de datos, documentación en Netbox y wikis, entre otros. Cuando el número de apps supera unas cuantas decenas, la lista se vuelve una carga operativa que ralentiza la entrega y aumenta la probabilidad de errores manuales. El patrón que se repite es la fragmentación de la configuración: cada componente tiene su propio fichero o UI y no existe una fuente única de verdad que pueda ser consumida por los distintos sistemas de automatización. ...

August 22, 2026 · Ernesto

Cómo diagnosticar puertos publicados por Docker que eluden UFW

Problema En muchos servidores domésticos o de pequeña empresa Docker se ejecuta detrás de un firewall gestionado con UFW. La expectativa natural es que ufw status refleje exactamente qué puertos están permitidos o bloqueados. Sin embargo, Docker manipula directamente iptables, insertando reglas de NAT y de filtrado que pueden estar por encima de las cadenas creadas por UFW. Cuando eso ocurre, un puerto publicado con -p host:container queda accesible desde la red aunque ufw status indique que está bloqueado. El síntoma típico es: ...

August 22, 2026 · Ernesto

Cómo publicar internal web apps en dispositivos móviles managed y unmanaged (BYOD)

Problema Muchas organizaciones tienen un catálogo creciente de aplicaciones web internas que se ejecutan en contenedores Docker o en clústers de Kubernetes. Los usuarios necesitan acceder a esas apps desde sus smartphones, pero el parque de dispositivos es mixto: algunos están gestionados mediante Intune, otros son BYOD y no pueden recibir agentes, certificados ni configuraciones especiales. El reto consiste en ofrecer acceso clientless (a través del navegador o una app mínima) manteniendo: ...

August 17, 2026 · Ernesto

Cómo solucionar errores de SQLite y symlinks en Docker dentro de LXC unprivileged

Problema Al ejecutar varios servicios basados en Docker (por ejemplo, Komga, Calibre‑Web, LazyLibrarian, Suwayomi) dentro de un contenedor LXC sin privilegios, es frecuente encontrarse con dos patrones de fallo: Bloqueos de SQLite (SQLITE_BUSY o OperationalError: database is locked) que impiden que la aplicación arranque o que realice operaciones de escritura. Errores al crear symlinks (ln: failed to create symbolic link … Operation not supported) que aparecen en aplicaciones que dependen de KCEF, Chromium Embedded Framework u otras bibliotecas que usan enlaces simbólicos. Ambos síntomas aparecen cuando los directorios de datos y de medios están montados desde el host mediante bind mount o SMB/CIFS y el contenedor LXC está configurado como unprivileged (UID/GID mapeados). La combinación de AppArmor, la falta de soporte de O_SYMLINK en sistemas de archivos remotos y el modo de bloqueo de SQLite (WAL) genera un entorno donde las llamadas POSIX esperadas son denegadas o se comportan de forma no atómica. ...

August 16, 2026 · Ernesto

Mejor forma de gestionar TLS certificates y domain challenges en entornos self‑hosted

Problema En un homelab o cualquier entorno self‑hosted es frecuente ejecutar varios servicios detrás de un proxy inverso. Cada servicio necesita TLS para evitar tráfico en texto plano, pero la validación HTTP‑01 de Let’s Encrypt no funciona cuando el objetivo está aislado en la red local o no es accesible desde Internet. El reto es decidir entre certificados auto‑firmados y certificados públicos obtenidos mediante el desafío DNS‑01, y además garantizar que la renovación y rotación sean automáticas y seguras. ...

August 15, 2026 · Ernesto

Proxmox vs Docker Swarm para alta disponibilidad en servidores homelab

Problema Los entusiastas de homelab que gestionan dos servidores físicos suelen buscar una capa de alta disponibilidad (HA) que permita replicar servicios críticos sin añadir una carga operativa excesiva. El patrón típico incluye: Un nodo principal que ejecuta la mayor parte de los contenedores o máquinas virtuales. Un nodo secundario que actúa como respaldo y, en caso de falla, asume la carga. Necesidad de un sistema de almacenamiento compartido que ofrezca rendimiento cercano al NVMe y que sea fácil de provisionar. Preferencia por herramientas que no requieran un aprendizaje profundo ni una infraestructura de orquestación compleja. En este contexto, la decisión recae entre dos enfoques populares: Proxmox VE (con LXC y KVM) y Docker Swarm. Cada uno aborda la HA y el almacenamiento de forma distinta, y la elección depende de la complejidad aceptable, el tipo de carga de trabajo y la experiencia del administrador. ...

August 15, 2026 · Ernesto

Cómo desplegar actualizaciones de Docker Compose aprobadas desde GitHub a múltiples LXC en Proxmox

Problema En entornos homelab o pequeñas infraestructuras se combina a menudo Proxmox como hipervisor, LXC para aislar servicios y Docker Compose para orquestar contenedores. Cuando se usa Renovate para mantener actualizadas las imágenes, el flujo típico es: Renovate detecta una nueva versión. Crea un Pull Request (PR) que actualiza el archivo docker-compose.yml. El administrador revisa y fusiona el PR. El punto crítico aparece después del merge: los cambios deben llegar a cada LXC que ejecuta Docker, y el contenedor debe ser recreado con la nueva imagen. Hacer esto manualmente (login en cada LXC, git pull, docker compose up -d) es tedioso y propenso a errores, sobre todo cuando hay varios hosts. Necesitamos un mecanismo que: ...

August 14, 2026 · Ernesto

Cómo diagnosticar y solucionar fallos comunes al auto‑hostear una pila de IA con Docker y networking

Problema Al montar varios servicios (gateway LLM, agente de mensajería, servidor multimedia y escritorio remoto) en una única VM de 4 vCPU, es frecuente encontrarse con que los contenedores arrancan, los puertos parecen abiertos y, sin embargo, nada responde. Los logs aparecen vacíos o con mensajes genéricos como “command not found” o “permission denied”. La raíz suele ser una combinación de reglas de firewall invisibles, políticas de reinicio que no reintentan, y permisos de usuario que no coinciden con los archivos creados durante la instalación. ...

August 14, 2026 · Ernesto

Cómo mantener un stack self‑hosted fiable con Proxmox, Docker y servicios de medios

Problema Los entornos self‑hosted que combinan hipervisores, contenedores y aplicaciones de medios tienden a volverse frágiles cuando crecen en complejidad. Un fallo en el almacenamiento, una actualización inesperada de un contenedor o una pérdida de conectividad de red pueden detener servicios críticos como Plex, Sonarr o los backups. El reto común es mantener la disponibilidad mientras se sigue añadiendo hardware (GPU passthrough, 10 GbE) y software (monitoring, backup, VPN). La pregunta recurrente es: ¿cómo estructurar el stack para que los fallos sean detectados y mitigados sin intervención manual constante? ...

August 14, 2026 · Ernesto