Migrasi dari Heroku
Panduan ini memandu Anda memigrasikan aplikasi dari Heroku ke Zeabur. Sebagian besar aplikasi Heroku berbasis Git dan menggunakan buildpack bahasa standar, sehingga proses perpindahannya mudah β Zeabur mendeteksi proyek Anda secara otomatis tanpa konfigurasi apa pun.
Sebelum Memulai
- Akun Zeabur.
- Kode sumber aplikasi Anda di repositori Git.
- Akses ke dashboard atau CLI Heroku (
heroku).
Langkah 1: Hubungkan Repositori Git Anda
Sebagian besar aplikasi Heroku sudah didukung oleh repositori Git. Jika aplikasi Anda juga demikian:
- 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 untuk aplikasi Anda.
Zeabur secara otomatis mendeteksi Node.js, Python, Ruby, Go, Java, PHP, dan banyak bahasa lainnya β tidak memerlukan Procfile.
Jika kode Anda hanya ada di Heroku Git (bukan di GitHub), push terlebih dahulu ke repositori GitHub:
heroku git:clone -a my-app
cd my-app
git remote add github https://github.com/your-username/my-app.git
git push github mainLangkah 2: Pindahkan Environment Variables
Heroku menyimpan konfigurasi dalam Config Vars. Ekspor variabel tersebut dan tambahkan ke Zeabur:
-
Tampilkan daftar config vars Heroku Anda:
heroku config -a my-app -
Di dashboard Zeabur, klik layanan Anda dan buka tab Variabel.
-
Tambahkan setiap variabel. Anda dapat menempelkannya satu per satu atau menggunakan fitur Bulk Edit untuk menempelkan banyak pasangan key-value sekaligus.
Anda tidak perlu mengatur PORT di Zeabur. Zeabur secara otomatis menetapkan dan menyuntikkan port. Jika aplikasi Anda membaca PORT dari environment (seperti kebanyakan aplikasi Heroku), aplikasi akan langsung berfungsi.
Langkah 3: Migrasikan Database Anda
Jika Anda menggunakan Heroku Postgres:
-
Buat backup dan unduh:
heroku pg:backups:capture -a my-app heroku pg:backups:download -a my-appPerintah ini mengunduh file
latest.dumpdalam format kustom Postgres. -
Buat database di Zeabur: klik Tambah Layanan β Database β PostgreSQL.
-
Impor data Anda menggunakan connection string PostgreSQL Zeabur:
pg_restore -d "your-zeabur-postgres-connection-string" --no-owner latest.dump -
Perbarui URL database aplikasi Anda: atur
DATABASE_URLdi tab Variabel Zeabur. Anda dapat menggunakan referensi variabel Zeabur${POSTGRES_URI}untuk menyuntikkan connection string dari layanan database secara otomatis.
Untuk Heroku Redis, gunakan redis-cli --rdb untuk mengekspor dan mengimpor data ke instance Redis di Zeabur.
Langkah 4: Ganti Add-on Heroku
Add-on Heroku memiliki padanan di Zeabur atau dapat dihubungkan sebagai layanan eksternal:
| Add-on Heroku | Padanan di Zeabur |
|---|---|
| Heroku Postgres | Database β PostgreSQL |
| Heroku Redis | Database β Redis |
| Heroku Scheduler | Gunakan cron sistem atau layanan terjadwal |
| Papertrail (log) | Penampil log bawaan di dashboard |
| SendGrid | Hubungkan melalui environment variables |
| Cloudinary | Hubungkan melalui environment variables |
Untuk add-on yang merupakan produk SaaS eksternal (SendGrid, Cloudinary, dan lainnya), cukup tetap gunakan layanan tersebut β pindahkan saja API key-nya ke tab Variabel di Zeabur.
Langkah 5: 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. - Perbarui record DNS Anda:
- Hapus target DNS Heroku yang lama (CNAME ke
*.herokuapp.comatau endpoint SSL Heroku). - Tambahkan record CNAME yang mengarah ke target yang disediakan Zeabur.
- Hapus target DNS Heroku yang lama (CNAME ke
Langkah 6: Verifikasi dan Go Live
- Picu deployment dengan melakukan push commit ke repositori yang terhubung (atau klik Deploy Ulang di dashboard).
- Periksa tab Log di Zeabur untuk memastikan aplikasi Anda berhasil berjalan.
- Uji alur utama aplikasi Anda (autentikasi, baca/tulis database, panggilan API).
- Setelah dipastikan berjalan baik, perbarui DNS production Anda agar mengarah ke Zeabur.
Perbedaan Utama: Heroku vs Zeabur
| Fitur | Heroku | Zeabur |
|---|---|---|
| Konfigurasi | Procfile + buildpack | Deteksi otomatis (tanpa konfigurasi) |
| Deployment | git push heroku main | Git push ke GitHub (deploy otomatis) |
| Penskalaan | Tipe dyno (Basic, Standard, Performance) | Alokasi sumber daya di dashboard |
| Perilaku tidur | Eco dyno tidur setelah 30 menit tidak aktif | Tidak tidur β selalu berjalan |
| Batas ukuran slug | 500 MB terkompresi | Tanpa batas ukuran slug |
| Database | Heroku Postgres (terkelola) | Layanan database (PostgreSQL, MySQL, MongoDB, Redis, dll.) |
| Add-on | Marketplace Add-on Heroku | Layanan prebuilt Zeabur + layanan eksternal |
| Harga | Harga bulanan per dyno | Paket langganan + biaya server |
Procfile Heroku tidak diperlukan di Zeabur. Zeabur mendeteksi start command Anda secara otomatis. Jika Anda perlu menyesuaikannya, Anda dapat mengaturnya di pengaturan layanan pada bagian Build & Deploy.
Selesai. Aplikasi Heroku Anda kini berjalan di Zeabur tanpa dyno, tanpa Procfile, dan tanpa batas ukuran slug. Jika Anda mengalami masalah, hubungi Zeabur Support.