Despliegue de Next.js en Fly.io usando Docker y configuración de Postgres
Clase 22 de 24 • Curso de Next.js Avanzado
Resumen
Desplegar aplicaciones modernas con Next.js puede ser un desafío, pero con herramientas como Fly.io y Docker, se simplifica enormemente. Fly.io es una opción flexible y económica que permite implementar aplicaciones dockerizadas fácilmente, ideal para startups y proyectos en crecimiento.
¿Qué es Fly.io y por qué usarlo con Next.js?
- Fly.io es una plataforma diseñada para desplegar aplicaciones utilizando Docker, adaptada a cualquier tipo de app.
- Es ideal para proyectos modernos, incluyendo aplicaciones basadas en Next.js.
- Ofrece opciones de configuración avanzada, integraciones con bases de datos como Postgres y soporte para múltiples regiones.
Ventajas:
- Transparencia en precios: despliegues económicos desde $4 a $5 al mes.
- Compatibilidad con Docker, que simplifica la configuración de entornos.
- Herramientas de integración como GitHub Actions, que automatizan despliegues.
¿Cómo configurar Fly.io para tu proyecto?
-
Preparar Fly.io:
- Registra tu cuenta y agrega un método de pago.
- Instala la herramienta de línea de comandos
Flyctl
.
-
Inicia tu proyecto:
- Ejecuta
fly launch
en tu terminal para configurar tu aplicación. - Fly.io detectará automáticamente que usas Next.js y generará archivos esenciales como:
- Dockerfile.
- Configuración para GitHub Actions.
- Ejecuta
-
Configura tu base de datos:
- Fly.io permite desplegar bases de datos como Postgres.
- Sigue los pasos para crear una IP pública y configura los puertos necesarios (como 5432).
- Usa herramientas como
psql
o un ORM para definir esquemas y poblar datos.
¿Qué sucede durante el despliegue?
- Fly.io genera archivos configurados automáticamente, como:
- Un Dockerfile optimizado para Node.js.
- Configuraciones de puertos y variables de entorno necesarias.
- La plataforma valida tu aplicación y la despliega, ajustándose a la región configurada.
Posibles errores:
- Variables de entorno no configuradas.
- Conexiones incorrectas a la base de datos.
- Asegúrate de mapear correctamente los puertos y establecer configuraciones de red.
¿Cómo gestionar variables de entorno y despliegues?
-
Configura las variables de entorno:
- Asegúrate de incluir las credenciales de la base de datos y otros valores necesarios.
- Define estas variables en tu archivo
.env
o dentro del Dockerfile.
-
Automatiza despliegues con GitHub Actions:
- Usa el archivo YAML generado por Fly.io para integraciones CI/CD.
- Sube tus cambios a GitHub para que el despliegue sea automático.
¿Qué pasos seguir para bases de datos avanzadas?
- Fly.io permite gestionar bases de datos Postgres con configuración avanzada:
- Define esquemas y tablas desde el terminal o un ORM.
- Configura conexiones externas habilitando una IP pública.
- Usa scripts de TypeScript o comandos SQL para poblar datos.