Migrasi dari Fly.io
Aplikasi Fly.io adalah image Docker, jadi biasanya bisa di-deploy di Zenavo dengan Dockerfile yang sama. fly.toml tidak dibaca; pengaturannya dipetakan ke layanan seperti di bawah.
Padanan Fly.io di Zenavo
| Fly.io | Zenavo |
|---|---|
| App | Layanan di sebuah proyek di satu server |
[build] dengan Dockerfile | Dockerfile di direktori root |
internal_port dari [http_service] | Port HTTP layanan |
[env] dan secrets | Variabel |
[processes] | Satu layanan per proses dari repositori yang sama, dengan perintah start-nya |
[deploy] release_command | Perintah yang dijalankan sebelum aplikasi, di perintah start |
Volume [[mounts]] | Volume |
| Pemeriksaan HTTP | Health check HTTP |
<app>.internal dan Flycast | <hostname>.zenavo.internal (Jaringan Privat) |
| Region, auto stop dan start | Satu server per proyek; layanan tetap berjalan |
fly certs | Sertifikat Let's Encrypt otomatis |
1. Deploy aplikasi
- Tambahkan server dan buat proyek.
- Add Service → GitHub, pilih repositori; pratinjau seharusnya menampilkan Dockerfile. Atur port HTTP ke
internal_portaplikasi. - Tambahkan satu layanan untuk setiap entri di
[processes]dengan perintahnya, dan satu volume untuk setiap[[mounts]]di path yang sama.
2. Salin variabel
Salin [env] ke Variable → Edit Raw Variables. fly secrets list hanya menampilkan nama, bukan nilainya, jadi ambil nilainya dari tempat Anda menyimpannya. Arahkan URL database ke database Zenavo, seperti DATABASE_URL=${POSTGRESQL_CONNECTION_STRING}.
3. Pindahkan data
PostgreSQL. Buka tunnel ke aplikasi Fly Postgres dan buat dump SQL biasa; Zenavo tidak membaca format custom 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.gzUnggah dan pulihkan di tab Backup & Restore layanan PostgreSQL baru, dengan versi mayor yang sama (Mengunggah backup).
Volume. Kemas volume menjadi arsip tanpa kompresi di mesin, lalu unduh:
fly ssh console -a my-app -C "tar cf /tmp/data.tar -C /data ."
fly ssh sftp get /tmp/data.tar -a my-appPulihkan data.tar ke volume baru yang kosong dari tab Backup & Restore layanan, dengan proyek dihentikan (Backup & Restore).
4. Alihkan domain
Pasang domain di Networking, lalu ganti record A dan AAAA yang mengarah ke Fly dengan record A ke alamat IP server (Domain & HTTPS).