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.io | Zenavo |
|---|---|
| Aplicación | Un servicio en un proyecto en un servidor |
[build] con un Dockerfile | El Dockerfile del directorio raíz |
internal_port de [http_service] | El puerto HTTP del servicio |
[env] y secrets | Variables |
[processes] | Un servicio por proceso desde el mismo repositorio, con ese comando de arranque |
[deploy] release_command | Un comando que se ejecuta antes de la aplicación, en el comando de arranque |
Volúmenes [[mounts]] | Volúmenes |
| Comprobaciones HTTP | Una comprobación de salud HTTP |
<app>.internal y Flycast | <hostname>.zenavo.internal (Red privada) |
| Regiones, parada y arranque automáticos | Un servidor por proyecto; los servicios siguen en marcha |
fly certs | Certificados de Let's Encrypt automáticos |
1. Despliega la aplicación
- Añade un servidor y crea un proyecto.
- Add Service → GitHub y elige el repositorio; la vista previa debería mostrar Dockerfile. Pon como puerto HTTP el
internal_portde la aplicación. - 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:
fly proxy 15432:5432 -a my-db
pg_dump --no-owner --no-acl "postgres://postgres:PASSWORD@localhost:15432/my_app" | gzip > fly.sql.gzSú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:
fly ssh console -a my-app -C "tar cf /tmp/data.tar -C /data ."
fly ssh sftp get /tmp/data.tar -a my-appRestaura 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).