Blog

Alternatif Supabase yang bisa di-self-host di VPS kecil

Cari alternatif Supabase untuk self-host di VPS kecil? Kanesh adalah backend data satu container yang jalan di SQLite atau PostgreSQL milikmu.

Kanesh adalah alternatif Supabase yang bisa di-self-host di VPS kecil kalau kamu butuh lapisan data, bukan seluruh platform. Ia berjalan sebagai satu container sekitar 8,9 MB, memakai SQLite secara default, dan bisa memakai PostgreSQL milikmu. Kanesh produk baru di rilis stabil pertamanya, dan belum punya penyedia login OAuth atau function.

Apa itu Supabase

Supabase adalah platform pengembangan Postgres open-source. Ia menggabungkan database, auth, storage, function, dan API data. Kalau kamu memang mau semuanya sekaligus, Supabase dibuat untuk itu. Kami tidak membandingkan angka sumber daya di sini: lihat dokumentasi self-hosting Supabase untuk kebutuhan servermu.

Pertanyaan untuk VPS kecil adalah berapa banyak bagian bergerak yang sanggup kamu jalankan, backup, dan perbarui di satu mesin.

Yang menentukan apakah VPS kecil cukup

  • Berapa banyak layanan yang kamu jalankan, karena masing-masing adalah proses atau container yang harus dipantau.
  • Apakah database berjalan di mesin yang sama atau di host terkelola.
  • Berapa memori yang tersisa untuk database setelah aplikasi.
  • Bagaimana kamu mem-backup data dan seberapa sering kamu menguji restore.
  • Siapa yang menangani HTTPS di depan aplikasi.

Setup VPS kecil dengan Kanesh

Kanesh adalah satu binary Go dengan Studio tertanam dan tanpa server Node saat runtime. Image-nya sekitar 8,9 MB (arm64, diukur 2026-10-04), dan memorinya idle di bawah 10 MiB pada smoke test lokal. Itu bukan benchmark, dan belum termasuk datamu, beban query, maupun server PostgreSQL.

Bangun image dari repositori dengan docker build -t kanesh ., seperti di Memulai. Lalu jalankan dengan bind ke localhost, dan reverse proxy yang menyediakan HTTPS di depannya:

docker run --name kanesh -p 127.0.0.1:8080:8080 -v kanesh-data:/data \
  -e COOKIE_SECURE=true \
  kanesh

Setel COOKIE_SECURE=true saat aplikasi berada di balik HTTPS, dan daftarkan proxy kamu di TRUSTED_PROXIES. File SQLite berada di DATA_DIR/kanesh.db, jadi backup volume kanesh-data. Kalau mau PostgreSQL, arahkan DATABASE_URL ke server yang kamu jalankan atau sewa, lalu setel DATABASE_DRIVER=postgres. Detailnya ada di konfigurasi dan setup database.

Supabase dan Kanesh berdampingan

KaneshSupabase
BentukBackend data dalam satu containerPlatform pengembangan Postgres dengan database, auth, storage, function, dan API data
DatabaseSQLite, PostgreSQL, MySQLPostgres
API dataREST, GraphQL, ekspor OpenAPI 3.1API data
AuthAkun anggota, peran, sesi, token APILayanan auth
FileDatabase atau penyimpanan kompatibel S3 (S3, MinIO, R2)Layanan storage
Kebutuhan sumber dayaImage sekitar 8,9 MB, idle di bawah 10 MiB pada smoke testTidak dibandingkan di sini
AI agentEndpoint MCP read-only (opt-in)Tidak dibandingkan di sini
KematanganBaru, rilis stabil pertamaTidak dibandingkan di sini

Yang belum ada

Kanesh belum punya OAuth atau SSO, realtime, workflow, hook, maupun SDK. Login OAuth atau SSO, realtime, dan workflow ada di roadmap. Kalau aplikasimu butuh login terkelola dengan penyedia sosial atau function di server, kamu perlu membangun atau menjalankannya terpisah, atau memilih platform yang sudah menyertakannya.

FAQ

Bisakah Kanesh jalan di VPS kecil?

Bisa. Satu container, tanpa server Node, dan SQLite sebagai default berarti sedikit bagian yang bergerak. Ukur dengan datamu sendiri, karena angka yang kami publikasikan berasal dari smoke test lokal, bukan benchmark.

Apakah Kanesh memakai PostgreSQL seperti Supabase?

Bisa. Setel DATABASE_DRIVER=postgres dan DATABASE_URL, lalu Kanesh menyimpan koleksi sebagai tabel asli dengan foreign key. SQLite adalah default, dan MySQL juga didukung. Kalau database pilihanmu gagal, Kanesh berhenti dan tidak pindah ke SQLite.

Apakah Kanesh menyertakan auth dan storage?

Sebagian. Kanesh punya akun anggota dengan peran, cookie sesi HttpOnly, dan token API pribadi yang di-hash, punya masa berlaku, dan bisa dicabut. Belum ada OAuth atau SSO. File dan gambar disimpan di database secara default, atau di S3, MinIO, atau R2 kalau kamu menyetel STORAGE_DRIVER=s3. Lihat penyimpanan file.

Langkah berikutnya

Jalankan dengan Memulai. Untuk perbandingan dengan platform backend lengkap lainnya, baca Kanesh vs Appwrite.

Traktir kopi