Migrasi dari Railway
Proyek Railway sangat mirip dengan proyek Zenavo: layanan, jaringan privat, variabel bersama, dan volume semuanya punya padanan.
Padanan Railway di Zenavo
| Railway | Zenavo |
|---|---|
| Proyek dan environment | Proyek di satu server; environment lain adalah proyek hasil kloning |
| Layanan dari GitHub | Layanan dari GitHub, di-deploy ulang saat push |
| Build Nixpacks atau Railpack | zbpack, atau Dockerfile Anda |
Perintah start, path healthcheck (railway.json) | Perintah start dan health check HTTP |
Variabel referensi ${{Postgres.DATABASE_URL}} | Variabel bersama, seperti ${POSTGRESQL_CONNECTION_STRING} (Variabel Lingkungan) |
<service>.railway.internal | <hostname>.zenavo.internal (Jaringan Privat) |
| Volume | Volume |
| Watch paths | Watch paths |
| Replika | Replika, di satu server |
| Jadwal cron | Belum ada job terjadwal: jalankan layanan worker dengan scheduler di aplikasi |
1. Bangun ulang layanan
- Tambahkan server dan buat proyek.
- Tambahkan database terlebih dahulu (Database), lalu setiap layanan aplikasi dari Add Service → GitHub, dengan direktori root yang sama.
- Salin perintah start dan path healthcheck setiap layanan dari pengaturan Railway atau
railway.jsonke Settings layanan.
2. Salin variabel
Raw Editor di Variables layanan Railway menampilkannya sebagai baris KEY=value; tempel di Variable → Edit Raw Variables. Ganti variabel referensi dengan variabel bersama Zenavo: ${{Postgres.DATABASE_URL}} menjadi ${POSTGRESQL_CONNECTION_STRING}, dan ${{api.RAILWAY_PRIVATE_DOMAIN}} menjadi api.zenavo.internal.
3. Pindahkan data
Untuk PostgreSQL, buat dump SQL biasa lewat URL publik database (DATABASE_PUBLIC_URL di Railway), dengan versi mayor yang sama di Zenavo:
pg_dump --no-owner --no-acl "$DATABASE_PUBLIC_URL" | gzip > railway.sql.gzUnggah di tab Backup & Restore database baru dan pulihkan ke database yang masih kosong (Mengunggah backup). Untuk MySQL, gunakan mysqldump dengan cara yang sama.
Untuk volume, salin file-nya keluar (misalnya dengan tar dari shell di layanan Railway), lalu unggah dengan kartu Files layanan, atau pulihkan .tar tanpa kompresi ke volume kosong (Backup & Restore).
4. Alihkan domain
Pasang setiap domain di Networking, lalu ganti CNAME Railway dengan record A ke alamat IP server (Domain & HTTPS).