Langsung ke konten

Migrasi dari Heroku ​

Zenavo membangun dan menjalankan aplikasi Heroku dengan sedikit perubahan: Zenavo membangun dari Git dengan zbpack atau Dockerfile Anda sebagai pengganti buildpack, dan mengatur PORT dengan cara yang sama. Aplikasi Anda lalu berjalan di server milik Anda sendiri.

Padanan Heroku di Zenavo ​

HerokuZenavo
AplikasiProyek di satu server
Proses web di ProcfileLayanan yang dibangun dari repositori, dengan port HTTP
worker dan proses lainSatu layanan tambahan per proses dari repositori yang sama, dengan perintah itu dan tanpa port HTTP
Buildpackzbpack, atau Dockerfile Anda
Fase releasePerintah yang dijalankan sebelum aplikasi, di perintah start
Config varsVariabel lingkungan
Heroku Postgres, Heroku RedisLayanan database di proyek
Dyno dan scalingReplika dan batas sumber daya
Automated Certificate ManagementSertifikat Let's Encrypt otomatis
Pipeline dan review appTidak ada padanannya: kloning proyek untuk staging
Heroku SchedulerBelum ada job terjadwal: jalankan layanan worker dengan scheduler di aplikasi

1. Deploy aplikasi ​

  1. Tambahkan server dan buat proyek.
  2. Add Service → GitHub, pilih repositori dan branch, lalu periksa Build Plan Preview.
  3. Atur perintah start bila tebakan zbpack berbeda dari baris web: di Procfile Anda: ZBPACK_START_COMMAND di Settings → Build → zbpack options, atau Startup Command di Settings (Pengaturan Layanan). Letakkan perintah release: di depannya, misalnya sh -c "bin/rails db:migrate && bin/rails server -b 0.0.0.0".
  4. Untuk setiap jenis proses lain, tambahkan repositori itu lagi dengan perintah proses tersebut dan tanpa port HTTP.

Aplikasi yang sudah mendengarkan di $PORT tidak perlu diubah; dengarkan juga di 0.0.0.0.

2. Salin variabel ​

Ekspor config vars lalu tempel di tab Variable layanan → Edit Raw Variables, atau atur dengan CLI:

sh
heroku config --shell -a my-app > heroku.env
zenavo env set --file heroku.env -s web

Jangan salin DATABASE_URL, REDIS_URL, dan variabel add-on lainnya: arahkan ke layanan database baru, seperti DATABASE_URL=${POSTGRESQL_CONNECTION_STRING}. Hapus heroku.env setelahnya; file itu berisi rahasia.

3. Pindahkan database ​

Tambahkan PostgreSQL ke proyek dengan versi mayor yang sama seperti di Heroku (heroku pg:info menampilkannya). Backup Heroku sendiri memakai format custom pg_dump, yang tidak dibaca Zenavo, jadi buat dump SQL biasa:

sh
pg_dump --no-owner --no-acl "$(heroku config:get DATABASE_URL -a my-app)" | gzip > heroku.sql.gz

Unggah heroku.sql.gz di tab Backup & Restore database baru dan pulihkan ke database yang masih kosong (Mengunggah backup). Aktifkan mode pemeliharaan terlebih dahulu (heroku maintenance:on) agar tidak ada yang ditulis setelah dump. Unggahan dibatasi 2 GB.

Heroku Redis biasanya hanya cache: mulai Redis baru dalam keadaan kosong.

4. Alihkan domain ​

Pasang setiap domain di tab Networking layanan. Domain Heroku memakai CNAME ke herokudns.com; ganti dengan record A ke alamat IP server. Sertifikat diterbitkan setelah record ter-resolve (Domain & HTTPS). Pertahankan aplikasi Heroku sampai aplikasi baru sudah melayani trafik untuk beberapa waktu.

Tidak berafiliasi dengan Zeabur.