Saltar al contenido

Migrar desde Fly.io ​

Las aplicaciones de Fly.io son imágenes de Docker, así que normalmente se despliegan en Zenavo con el mismo Dockerfile. fly.toml no se lee; sus ajustes se corresponden con el servicio como se indica abajo.

Equivalencias entre Fly.io y Zenavo ​

Fly.ioZenavo
AplicaciónUn servicio en un proyecto en un servidor
[build] con un DockerfileEl Dockerfile del directorio raíz
internal_port de [http_service]El puerto HTTP del servicio
[env] y secretsVariables
[processes]Un servicio por proceso desde el mismo repositorio, con ese comando de arranque
[deploy] release_commandUn comando que se ejecuta antes de la aplicación, en el comando de arranque
Volúmenes [[mounts]]Volúmenes
Comprobaciones HTTPUna comprobación de salud HTTP
<app>.internal y Flycast<hostname>.zenavo.internal (Red privada)
Regiones, parada y arranque automáticosUn servidor por proyecto; los servicios siguen en marcha
fly certsCertificados de Let's Encrypt automáticos

1. Despliega la aplicación ​

  1. Añade un servidor y crea un proyecto.
  2. Add Service → GitHub y elige el repositorio; la vista previa debería mostrar Dockerfile. Pon como puerto HTTP el internal_port de la aplicación.
  3. Añade un servicio por cada entrada de [processes] con su comando, y un volumen por cada [[mounts]] en la misma ruta.

2. Copia las variables ​

Copia [env] en Variable → Edit Raw Variables. fly secrets list solo muestra los nombres, no los valores, así que toma los valores de donde los guardes. Apunta las URL de base de datos a las bases de datos de Zenavo, como DATABASE_URL=${POSTGRESQL_CONNECTION_STRING}.

3. Traslada los datos ​

PostgreSQL. Abre un túnel a la aplicación Fly Postgres y haz un volcado en SQL plano; Zenavo no lee el formato custom de pg_dump:

sh
fly proxy 15432:5432 -a my-db
pg_dump --no-owner --no-acl "postgres://postgres:PASSWORD@localhost:15432/my_app" | gzip > fly.sql.gz

Súbelo y restáuralo en la pestaña Backup & Restore de un nuevo servicio PostgreSQL, con la misma versión principal (Subir una copia de seguridad).

Volúmenes. Empaqueta el volumen en un archivo sin comprimir en la máquina y descárgalo:

sh
fly ssh console -a my-app -C "tar cf /tmp/data.tar -C /data ."
fly ssh sftp get /tmp/data.tar -a my-app

Restaura data.tar en el nuevo volumen vacío desde la pestaña Backup & Restore del servicio, con el proyecto detenido (Copia de seguridad y restauración).

4. Cambia el dominio ​

Asocia el dominio en Networking y sustituye los registros A y AAAA que apuntan a Fly por un registro A a la dirección IP del servidor (Dominios y HTTPS).

Sin relación con Zeabur.