Despliegue de Next.js en Fly.io usando Docker y configuración de Postgres

Clase 22 de 24Curso 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?

  1. Preparar Fly.io:

    • Registra tu cuenta y agrega un método de pago.
    • Instala la herramienta de línea de comandos Flyctl.
  2. 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.
  3. 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?

  1. 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.
  2. 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.