Cómo alojar tu API Node.js con Caddy y Docker Compose en un VPS
Alojar tu propia API de Node.js en un VPS económico no solo es viable, sino que puede ser la decisión más acertada cuando tu aplicación necesita ejecutar procesos en segundo plano, mantener conexiones persistentes o manejar colas de trabajo. Mientras que muchas guías recomiendan plataformas serverless como Vercel, estas resultan limitadas para servicios que requieren Redis constante, WebSockets o trabajadores BullMQ. En este artículo exploramos una configuración profesional con Caddy, Docker Compose y un VPS de 6 €/mes, incluyendo despliegues sin tiempo de inactividad, CI/CD con GitHub Actions y monitorización básica. Esta arquitectura es ideal para startups bootstrapped o proyectos SaaS que necesitan optimizar costes sin sacrificar rendimiento.
La infraestructura se compone de un VPS con Ubuntu 24.04, Docker y Docker Compose. El proxy inverso Caddy gestiona automáticamente los certificados TLS de Let's Encrypt, eliminando la necesidad de certbot o crons. La API se ejecuta en un contenedor Node.js 22 con Hono, escuchando solo en localhost para evitar accesos directos externos. Un segundo contenedor (worker) utiliza la misma imagen pero arranca el proceso de BullMQ. Redis se configura con persistencia append-only y una política de desalojo allkeys-lru para gestionar la memoria de manera eficiente. Todo ello se define en un único docker-compose.yml con health checks para garantizar la disponibilidad.
Para lograr despliegues sin caídas, se emplea un script bash que actualiza los contenedores de API y worker sin recrear Redis, esperando hasta 60 segundos a que el health check responda. Si falla, se revierte automáticamente. El pipeline CI/CD usa GitHub Actions: al hacer push a main se construye la imagen Docker, se sube a GitHub Container Registry y se ejecuta el script de despliegue vía SSH con una clave ED25519 dedicada. El Dockerfile multi-etapa mantiene la imagen final en ~180 MB, usando un usuario no root por seguridad.
La monitorización se mantiene ligera pero efectiva: UptimeRobot verifica el endpoint /health cada 5 minutos y envía alertas por Telegram; un cron diario comprueba el uso de disco y notifica si supera el 80%; Redis limita la memoria a 256 MB. Con estos componentes, el coste total ronda los 7 €/mes, muy por debajo de alternativas gestionadas que fácilmente superan los 20 €. Esta aproximación enseña que no siempre necesitas infraestructura compleja o costosa desde el día uno.
En Q2BSTUDIO somos especialistas en diseñar e implementar soluciones técnicas a medida. Si tu proyecto requiere un enfoque similar —ya sea aplicaciones a medida con Node.js, arquitecturas cloud híbridas o integración de ia para empresas— podemos ayudarte a construirlo desde cero. También ofrecemos servicios de ciberseguridad, inteligencia de negocio con Power BI, y automatización de procesos mediante agentes IA. Nuestro equipo domina tanto servicios cloud AWS y Azure como el desarrollo de software a medida, adaptándose a las necesidades reales de cada negocio. Contáctanos para llevar tu API a producción con garantías.
Comentarios