Migrasi dari Vercel
Di Zenavo, aplikasi Next.js berjalan sebagai satu server yang terus menyala (next start), bukan fungsi serverless, dan situs statis disajikan oleh Caddy. Sebagian besar aplikasi bisa dipindahkan tanpa mengubah kode.
Padanan Vercel di Zenavo
| Vercel | Zenavo |
|---|---|
| Project | Layanan di sebuah proyek |
| Deployment Git dari branch produksi | Deploy saat push |
| Preview deployment | Tidak ada padanannya: tambahkan layanan yang mengikuti branch lain, atau kloning proyek |
| Serverless dan Edge Functions | Bagian dari satu server Next.js |
| Variabel lingkungan | Variabel; NEXT_PUBLIC_* sebagai argumen build |
Redirect, rewrite, dan header di vercel.json | next.config.js, atau konfigurasi server statis Anda |
| Vercel Postgres, KV, Blob | Tetap pakai penyedianya, atau pindah ke layanan database |
| Cron Jobs | Belum ada job terjadwal: jalankan layanan worker dengan scheduler |
1. Deploy aplikasi
- Tambahkan server dan buat proyek.
- Add Service → GitHub, pilih repositori, dan atur direktori root bila aplikasi ada di monorepo.
- Ikuti panduan Next.js atau Situs Statis: Next.js dibangun dengan
next builddan dijalankan dengannext start; Vite dan build statis lainnya disajikan dari folder output-nya.
Hal yang berperilaku berbeda dari Vercel:
- Incremental Static Regeneration dan cache gambar bekerja dengan
next start, tetapi cache-nya ada di kontainer dan kosong lagi setelah setiap deploy. - Middleware berjalan di server Node.js, bukan di lokasi edge.
- Redirect, rewrite, dan header di
vercel.jsontidak dibaca. Pindahkan keredirects(),rewrites(), danheaders()dinext.config.js.
2. Salin variabel
vercel env pull .env.production --environment=productionTempel barisnya di tab Variable layanan → Edit Raw Variables, tanpa variabel VERCEL_*. Pindahkan setiap variabel NEXT_PUBLIC_* (dan VITE_* untuk situs statis) ke Settings → Build → Build arguments, karena dibutuhkan saat build. Hapus file itu setelahnya.
3. Data
Database dari Vercel Marketplace (Neon, Upstash, Supabase, dan lainnya) tetap bisa dipakai dari Zenavo lewat connection string-nya. Untuk membawa PostgreSQL ke server Anda, buat dump SQL biasa dengan pg_dump --no-owner --no-acl "$POSTGRES_URL" | gzip > vercel.sql.gz, lalu unggah dan pulihkan di tab Backup & Restore layanan PostgreSQL baru (Mengunggah backup).
4. Alihkan domain
Pasang domain di Networking, lalu arahkan ke server dengan record A. Jika domain memakai nameserver Vercel, ubah record di Vercel DNS atau pindahkan nameserver terlebih dahulu (Domain & HTTPS).