Migrasi dari Fly.io
Panduan ini memandu Anda memigrasikan aplikasi dari Fly.io ke Zeabur. Baik Anda menjalankan aplikasi berbasis Docker, layanan web, maupun aplikasi full-stack dengan database Postgres, Zeabur dapat menanganinya dengan perubahan konfigurasi yang minimal.
Sebelum Memulai
- Akun Zeabur.
- Kode sumber aplikasi Anda di repositori Git (GitHub).
- Akses ke dashboard dan CLI Fly.io (
flyctl).
Jika aplikasi Anda di-deploy di Fly.io hanya menggunakan Docker image (tanpa repositori Git), Anda tetap dapat bermigrasi dengan melakukan push image ke container registry lalu men-deploy-nya di Zeabur sebagai layanan Docker.
Langkah 1: Tinjau Konfigurasi Fly.io Anda
Buka file fly.toml proyek Anda. File ini berisi pengaturan yang perlu Anda buat ulang di Zeabur:
# fly.toml β contoh
app = "my-app"
[env]
NODE_ENV = "production"
PORT = "8080"
[http_service]
internal_port = 8080
[[vm]]
memory = "512mb"
cpu_kind = "shared"Catat hal-hal berikut:
- Environment variables di bawah
[env]dan secret apa pun yang diatur melaluifly secrets list. - Port internal yang didengarkan aplikasi Anda.
- Volume jika Anda mengonfigurasi
[mounts].
Langkah 2: Ekspor Secret Fly.io Anda
Tampilkan semua secret agar Anda dapat memindahkannya ke Zeabur:
fly secrets list -a my-appPerintah ini menampilkan nama secret (nilainya disembunyikan). Untuk setiap secret, Anda perlu mengambil atau membuat ulang nilainya dari sumber aslinya (misalnya penyedia database atau dashboard API Anda).
Langkah 3: Hubungkan Repositori Git Anda ke Zeabur
- Masuk ke dashboard Zeabur.
- Buat proyek baru dan pilih server (atau beli server baru).
- Klik Tambah Layanan β Git dan hubungkan akun GitHub Anda.
- Pilih repositori yang berisi kode aplikasi Anda.
Zeabur secara otomatis mendeteksi bahasa dan framework proyek Anda β dalam sebagian besar kasus, fly.toml maupun Dockerfile tidak diperlukan.
Jika proyek Anda menggunakan Dockerfile, Zeabur akan mendeteksi dan menggunakannya secara otomatis. Tidak perlu konfigurasi tambahan.
Langkah 4: Konfigurasikan Environment Variables
- Klik layanan yang baru Anda buat di dashboard Zeabur.
- Buka tab Variabel.
- Tambahkan setiap environment variable dan secret dari aplikasi Fly.io Anda.
Anda tidak perlu mengatur PORT β Zeabur secara otomatis menetapkan dan menyuntikkan port untuk layanan Anda.
Langkah 5: Siapkan Penyimpanan Persisten (Jika Diperlukan)
Jika aplikasi Fly.io Anda menggunakan volume ([mounts] di fly.toml), Anda perlu membuat volume di Zeabur:
- Di pengaturan layanan Anda, buka tab Volume.
- Klik Tambah Volume dan tentukan mount path (misalnya
/data). - Zeabur menyediakan penyimpanan persisten yang tetap ada meskipun dilakukan deploy ulang.
Volume Fly.io tidak dapat diekspor secara otomatis. Anda perlu masuk melalui SSH ke mesin Fly.io Anda (fly ssh console), mengompresi data, lalu memindahkannya ke volume baru di Zeabur.
Langkah 6: Migrasikan Database Anda
Jika Anda menjalankan Fly.io Postgres:
-
Ekspor data Anda dari Fly.io Postgres:
fly proxy 15432:5432 -a my-app-db & pg_dump -h localhost -p 15432 -U postgres -d my_database > backup.sql -
Buat database di Zeabur: klik Tambah Layanan β Database β PostgreSQL.
-
Impor data Anda: gunakan connection string dari layanan PostgreSQL Zeabur:
psql "your-zeabur-postgres-connection-string" < backup.sql -
Perbarui URL database aplikasi Anda: di tab Variabel Zeabur, atur
DATABASE_URLke connection string PostgreSQL Zeabur. Anda dapat menggunakan referensi variabel bawaan Zeabur${POSTGRES_URI}untuk menyuntikkan connection string secara otomatis.
Langkah 7: Atur Domain Kustom
- Di dashboard Zeabur, klik layanan Anda dan buka tab Jaringan.
- Klik Generate Domain untuk mendapatkan subdomain
.zeabur.appgratis, atau klik Domain Kustom untuk menambahkan domain Anda sendiri. - Jika menggunakan domain kustom, perbarui record DNS Anda:
- Hapus record CNAME atau A Fly.io yang lama.
- Tambahkan record CNAME yang mengarah ke target yang disediakan Zeabur.
Perbedaan Utama: Fly.io vs Zeabur
| Fitur | Fly.io | Zeabur |
|---|---|---|
| Konfigurasi | fly.toml + CLI | Deteksi otomatis + dashboard |
| Deployment | Perintah CLI fly deploy | Git push (deploy otomatis) |
| Penskalaan | Machines API, konfigurasi manual | Penskalaan satu klik di dashboard |
| Database | Fly Postgres (dikelola sendiri) | Layanan database (PostgreSQL, MySQL, Redis terkelola, dll.) |
| Jaringan | IP Anycast, WireGuard | HTTPS otomatis, domain kustom |
| Penyimpanan persisten | Fly Volumes (terkunci pada region) | Zeabur Volumes (terkelola) |
| Model harga | Per VM + bandwidth | Paket langganan + biaya server |
Selesai. Aplikasi Fly.io Anda kini berjalan di Zeabur. Jika Anda mengalami masalah, hubungi Zeabur Support.