Guía para Desplegar API NestJS con PostgreSQL en AWS Lightsail

Guía completa paso a paso para desplegar una API NestJS con PostgreSQL en AWS Lightsail, gestionada por Cloudflare, con Nginx reverse proxy, Docker, Swagger y pipeline de despliegue seguro.

2 sept 2025 • 6 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Guía completa paso a paso para desplegar una API NestJS con base de datos PostgreSQL en AWS Lightsail, utilizando un subdominio gestionado por Cloudflare y reverse proxy con Nginx. Ideal para proyectos de aplicaciones a medida, software a medida y arquitecturas modernas en la nube con foco en rendimiento, seguridad y escalabilidad.

Objetivo final del despliegue en producción: API NestJS accesible bajo https://api.tudominio.com con base de datos PostgreSQL en contenedor, SSL gestionado por Cloudflare, documentación Swagger publicada y pipeline de actualización simple y repetible.

Requisitos previos: un servidor AWS Lightsail con Ubuntu, un dominio gestionado en Cloudflare, el proyecto NestJS alojado en GitLab y acceso SSH al servidor.

Preparación del proyecto en tu repositorio: estructura mínima recomendada en la raíz del repo con las carpetas y archivos src, package.json, Dockerfile, docker-compose.yml, .env.production, .dockerignore y .gitignore. Esta estructura facilita el build reproducible y la orquestación de servicios.

Dockerfile sugerido para producción con Node 20: base node 20, directorio de trabajo en app, copiar package.json y package lock, instalar dependencias con npm ci, copiar el código, compilar con npm run build, eliminar dependencias de desarrollo con npm prune --production, exponer el puerto 3000 y arrancar con npm run start:prod.

Orquestación con docker compose: un servicio postgres con imagen postgres 15, variables POSTGRES_DB POSTGRES_USER POSTGRES_PASSWORD, volumen persistente y healthcheck; y un servicio nestjs que se construye desde el Dockerfile, depende de postgres con condición service healthy, variables de entorno NODE_ENV DB_HOST DB_PORT DB_USERNAME DB_PASSWORD DB_NAME PORT JWT_SECRET SWAGGER_PASSWORD y exposición interna al puerto 3000 enlazado al host solo en 127.0.0.1 para mayor seguridad.

Configuración de NestJS con TypeORM mediante variables de entorno: host tomado de DB_HOST, puerto de DB_PORT, credenciales DB_USERNAME y DB_PASSWORD, base de datos DB_NAME, autoLoadEntities en true, y synchronize deshabilitado en producción para evitar cambios de esquema no controlados. Usa ConfigModule y ConfigService para centralizar la carga de variables.

Configuración del servidor Lightsail: inicia sesión con ssh -i tu clave.pem ubuntu arroba tu ip, actualiza el sistema con sudo apt update && sudo apt upgrade -y, instala Docker con el script oficial, añade tu usuario al grupo docker con sudo usermod -aG docker y vuelve a iniciar sesión, instala docker compose con el paquete del sistema y añade Git con sudo apt install git -y.

Despliegue de la aplicación: clona el repositorio desde GitLab con git clone y accede a la carpeta del proyecto, crea el archivo .env a partir de .env.production o constrúyelo manualmente. Variables de ejemplo para producción en el .env DB_HOST=postgres DB_PORT=5432 DB_USERNAME=usuario DB_PASSWORD=contraseña_segura DB_NAME=nombre_db PORT=3000 NODE_ENV=production JWT_SECRET=secreto_largo_y_aleatorio SWAGGER_PASSWORD=clave_admin_docs. Asegúrate de usar claves robustas y únicas.

Construir y arrancar en segundo plano con docker compose up -d --build, verificar estado con docker compose ps y revisar logs con docker compose logs -f. Pruebas locales en el servidor con curl https://localhost:3000 y curl https://localhost:3000/docs para confirmar que la API y Swagger responden.

Configuración del subdominio en Cloudflare: crea un registro DNS tipo A con nombre api apuntando a la IP pública del Lightsail, con proxy activado y TTL automático. Esto permite que Cloudflare gestione el tráfico y el certificado en el borde.

Instalación de Nginx como reverse proxy: instala con sudo apt install nginx -y, habilítalo y arráncalo con systemctl. Crea un servidor virtual para api.tudominio.com que escuche en el puerto 80 y reenvíe al backend de NestJS en 127.0.0.1:3000. Añade cabeceras de proxy como Host X Real IP X Forwarded For y X Forwarded Proto, y ajusta timeouts para peticiones largas. Habilita el sitio, prueba la configuración con sudo nginx -t y recarga con sudo systemctl reload nginx.

Configura el cortafuegos permitiendo Nginx Full con sudo ufw allow Nginx Full y revisa las reglas activas con sudo ufw status. Mantén cerrados puertos innecesarios para mejorar la ciberseguridad del servidor.

SSL con Cloudflare sin certificados en origen mediante modo flexible: en el panel de Cloudflare selecciona SSL TLS en modo Flexible, activa Always Use HTTPS y asegura que el registro DNS del subdominio esté proxificado. Opcionalmente para máxima seguridad considera modo Full o Full strict con certificado de origen en Nginx si tu caso lo requiere.

Pruebas finales desde tu equipo: curl https://api.tudominio.com debería redirigir a HTTPS si activaste Always Use HTTPS y curl https://api.tudominio.com y https://api.tudominio.com/docs deberían responder a tu API y a la documentación Swagger respectivamente.

Automatización del despliegue con un pequeño script de actualización en el servidor: pasos recomendados pull del código con git pull origin main, copiar .env.production a .env, detener servicios con docker compose down, reconstruir y levantar con docker compose up -d --build. Con esto podrás publicar nuevas versiones en segundos.

Mantenimiento diario y diagnóstico: ver logs globales con docker compose logs -f, logs de un servicio concreto con docker compose logs -f nestjs_app o postgres, reiniciar solo la API con docker compose restart nestjs_app, reconstruir tras cambios con docker compose up -d --build y parar todo con docker compose down.

Copias de seguridad de la base de datos: crea backups con docker exec postgres_db pg_dump -U usuario nombre_db mayor que backup.sql y para restaurar utiliza cat backup.sql tubería docker exec -i postgres_db psql -U usuario -d nombre_db. Programa estas tareas con cron y guarda los archivos en almacenamiento seguro.

Puntos críticos de seguridad para producción: cambia todos los passwords por defecto, usa secrets largos y aleatorios para JWT y otros tokens, limita la exposición de puertos a localhost cuando sea posible, endurece Nginx y el sistema, no subas archivos .env a GitLab, aplica actualizaciones del sistema con regularidad y monitoriza logs y métricas.

Flujo recomendado para despliegues futuros: sube cambios a GitLab en la rama principal, ejecuta el script de despliegue en el servidor, verifica salud de servicios y endpoints clave y actualiza documentación o migraciones si procede.

En Q2BSTUDIO aceleramos proyectos de software a medida y aplicaciones a medida con arquitecturas cloud, automatización y seguridad desde el diseño. Somos especialistas en inteligencia artificial, ia para empresas, agentes IA, ciberseguridad, pentesting, servicios cloud aws y azure, servicios inteligencia de negocio y power bi. Si buscas un partner para desplegar y escalar tu backend con buenas prácticas, contáctanos. Descubre nuestros servicios de servicios cloud en AWS y Azure para construir infraestructuras resilientes y optimizadas y consulta cómo creamos aplicaciones a medida y software a medida con enfoque full stack y DevSecOps.

Resultado final esperado: API disponible en https://api.tudominio.com, documentación pública o protegida en https://api.tudominio.com/docs, SSL automático con Cloudflare, base de datos PostgreSQL contenida y persistente, y pipeline de despliegue listo para crecer con tu negocio.

Consejo extra para entornos avanzados: considera separar redes de docker, activar logs estructurados en JSON para observabilidad, usar Full strict con certificados de origen en Nginx, incorporar un WAF a nivel de Cloudflare, habilitar rate limiting y cache selectiva de respuestas idempotentes, y añadir monitorización con métricas y alertas.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat