Cara Instalasi dan Penggunaan Supabase
0 people liked this article
A. Pendahuluan
Jika kalian sedang membangun aplikasi web atau mobile modern, mungkin pernah mendengar tentang Supabase. Dikenal luas sebagai alternatif open-source untuk Firebase, Supabase menawarkan fungsionalitas serupa—seperti database real-time, autentikasi, dan penyimpanan file—namun dibangun di atas keandalan dan kekuatan PostgreSQL.
Tidak seperti solusi NoSQL, menggunakan Supabase berarti Anda tetap bisa menikmati fitur relasional SQL penuh, tanpa harus repot mengelola infrastruktur backend dari nol.
Nah pada kesempatan kali ini kita akan melakukan instalasi Suabase pada layanan VPS
Sepesifikasi dan Software yang di gunakan
Ubuntu: 24.04
Ram: 4GB
CPU: 2 Cpu
Storage: 60GB
Docker yang sudah di install pada VPS (Saya menggunakan Neo Lite Pro)
B. Cara Instalasi Supabase
1. Download code supabase yang yang sudah di konfigurasi pada github
# Dapatkan kodenya
git clone --depth 1 https://github.com/supabase/supabase
# Buat direktori proyek supabase baru
mkdir supabase-project
# Struktur direktori akan terlihat seperti ini
# .
# ├── supabase
# └── supabase-project
# Salin file compose ke proyek Anda
cp -rf supabase/docker/* supabase-project
# Salin variabel .env
cp supabase/docker/.env.example supabase-project/.env
# Pindah ke direktori proyek
cd supabase-project
# Unduh image terbaru
docker compose pull2. Langkah selanjutnya jalankan perintah berikut untuk melakukan rekonfigurasi supabase (pastikan kembali pada melakukan rekonfigurasi .env sudah terdapat secure password dan juga API Key)
# Generate Secure Password
sh utils/generate-keys.sh
# Konfigurasi/Generate API Key
sh utils/add-new-auth-keys.shMengatur URL Supabase untuk keperluhan akses dashboard
Di dalam file .env yang sudah kita siapkan sebelumnya, ada beberapa pengaturan URL krusial yang perlu disesuaikan dengan lingkungan server atau VPS:
SUPABASE_PUBLIC_URL: Ini adalah alamat utama untuk mengakses seluruh ekosistem Supabase Anda dari internet—mulai dari Dasbor Studio, API, hingga Storage. Jika menggunakan domain, formatnya akan terlihat seperti [http://domainanda.com:8000](http://domainanda.com:8000).
API_EXTERNAL_URL: URL ini secara khusus digunakan oleh layanan autentikasi untuk mengatur callback API. Nilainya umumnya disamakan saja dengan SUPABASE_PUBLIC_URL.
SITE_URL: Ini adalah alamat tempat aplikasi frontend atau website utama Anda berjalan (misalnya [http://domainanda.com:3000](http://domainanda.com:3000)). Setelah pengguna berhasil login atau memverifikasi email, Supabase akan secara otomatis mengarahkan mereka kembali ke URL ini.
Di Mana Menemukan Kredensial/Akses?
Setelah semua konfigurasi berjalan, rahasia dan kunci akses proyek kalian akan tersimpan dengan aman di dalam file .env. Saat tiba waktunya untuk menghubungkan aplikasi yang sedang kalian bangun ke Supabase self-hosted ini, akan membutuhkan beberapa kunci berikut:
POSTGRES_PASSWORD: Ini adalah password absolut database. Kalian akan membutuhkannya jika ingin terhubung langsung ke database menggunakan string koneksi Postgres standar, atau saat menggunakan perangkat lunak pihak ketiga seperti DBeaver, pgAdmin, dan psql.
SUPABASE_PUBLIC_URL: URL dasar (endpoint) yang sudah kita bahas di atas. Kalian akan memasukkan nilai ini sebagai parameter supabaseUrl saat menginisialisasi library klien di kode.
SUPABASE_PUBLISHABLE_KEY (atau anon key): Kunci API publik yang aman untuk diletakkan di sisi client (seperti di kode React, Vue, HTML, atau aplikasi mobile).
SUPABASE_SECRET_KEY (atau service_role key): Ini adalah kunci "sakti" yang memiliki akses penuh dan dapat melewati semua aturan keamanan database (Row Level Security). Sangat penting: Kunci ini hanya boleh digunakan di lingkungan server/backend yang aman. Jangan pernah membocorkannya ke frontend atau aplikasi client-side!
Dalam file .env, edit untuk mengubah kata sandi, dan secara opsional untuk mengubah nama pengguna DASHBOARD_PASSWORD dan DASHBOARD_USERNAME.
3. Apabila semua sudah di lakukan sesuai dengan step-step sebelumnya, langkah selanjutnya jalankan perintah berikut docker compose up -d

4. Apabila download images dan container sudah berjalan (running), selanjutnya kalian bisa mencoba untuk mengakses supabase dashboard http://IP_Public:8000. Untuk username dan password, bisa di cek pada .env yang ada di project supabase kalian

5. Done!! kalian sudah dapat mengakses supabase self hosted yang ada di VPS.

C. Penggunaan Supabase
Setelah Supabase berhasil diinstal secara self-hosted dan kredensial dari file .env sudah Anda siapkan, langkah selanjutnya adalah menghubungkannya ke aplikasi. Berkat arsitekturnya, Supabase bisa berinteraksi dengan database PostgreSQL seolah-olah sedang mengonsumsi REST API biasa.
Mari kita lihat bagaimana cara melakukan operasi dasar menggunakan lingkungan Node.js.
1. Memulai Koneksi (Inisialisasi)
Pastikan Anda sudah menginstal library resmi klien Supabase di dalam proyek Node.js Anda dengan menjalankan npm install @supabase/supabase-js.
2. Buat file dengan extension .env lalu isikasn dengan text berikut, lalu isikan SUPABASE_PUBLISHABLE_KEY dengan ANON_KEY yang letak nya ada di .env supabase project kalian
SUPABASE_PUBLIC_URL="http://IP_SERVER_ANDA:8000"
SUPABASE_PUBLISHABLE_KEY="eyJhbGciOi..."3. Lalu pada code ini buat file dengan nama index.js
import { createClient } from '@supabase/supabase-js';
import 'dotenv/config'; // Memuat variabel dari file .env
// Mengambil kredensial dari environment variables
const supabaseUrl = process.env.SUPABASE_PUBLIC_URL;
const supabaseKey = process.env.SUPABASE_PUBLISHABLE_KEY;
if (!supabaseUrl || !supabaseKey) {
console.error("❌ Error: URL atau API Key Supabase tidak ditemukan di file .env");
process.exit(1);
}
// Inisialisasi client Supabase
const supabase = createClient(supabaseUrl, supabaseKey);
async function testConnection() {
console.log("Mencoba terhubung ke Supabase di:", supabaseUrl);
try {
// Melakukan query ringan untuk menguji koneksi
// Kita mencoba mengambil 1 baris dari tabel sembarang, misalnya 'users'
// Walaupun tabel tidak ada, Supabase akan merespons yang menandakan koneksi berhasil
const { data, error } = await supabase
.from('users')
.select('*')
.limit(1);
// Jika error karena tabel belum dibuat, itu wajar. Yang terpenting bukan masalah jaringan (Network Error).
if (error && error.code === '42P01') {
console.log("✅ Koneksi BERHASIL! (Server merespons, namun tabel 'users' belum dibuat).");
} else if (error) {
console.error("⚠️ Koneksi berhasil, tetapi ada peringatan/error database:", error.message);
} else {
console.log("✅ Koneksi BERHASIL! Supabase merespons dengan baik.");
console.log("Data sampel (jika ada):", data);
}
} catch (err) {
// Menangkap error jaringan seperti server down, URL salah, atau port tertutup
console.error("❌ KONEKSI GAGAL!");
console.error("Pesan Error:", err.message);
console.error("Pastikan server Supabase sedang berjalan dan port terbuka.");
}
}
// Menjalankan fungsi test
testConnection();4.Buat tabel dengan nama “users” yang nantinya di gunakan sebagai pengetesan koneksi, lalu save

5. Jalankan index.js dengan menggunakan node index.js yang nantinya akan mendapati respons sebagai berikut

D. Kesimpulan
Membangun aplikasi modern tidak selalu berarti Kalian harus bergantung dan terkunci pada layanan cloud pihak ketiga. Dengan menginstal Supabase secara self-hosted, Anda mendapatkan perpaduan yang sangat ideal: kemudahan development ala BaaS (Backend-as-a-Service) dipadukan dengan kekuatan dan privasi dari infrastruktur yang Anda kelola sendiri.
Semoga artikel yang telah kami sampaikan dapat membantu Anda. Anda juga dapat menemukan artikel lainnya melalui halaman Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala teknis terkait dengan layanan Biznet GIO, Anda dapat menghubungi kami melalui email support@biznetgio.com atau dapat melalui live chat di website Biznet GIO, melalui chat WhatsApp dan bisa juga melalui telepon ke nomor (021) 5714567.
import { createClient } from '@supabase/supabase-js'
// Disarankan untuk memanggil nilai ini dari environment variables aplikasi Anda
const supabaseUrl = process.env.SUPABASE_PUBLIC_URL
const supabaseKey = process.env.SUPABASE_PUBLISHABLE_KEY
export const supabase = createClient(supabaseUrl, supabaseKey)
Popular Articles
-
Cara Install & Konfigurasi Monitoring Cacti Serta Mengetahui Fungsi Fitur Pada Cacti
15 people say this guide was helpful
-
Cara Mengaktifkan Telnet pada Windows 7, 8 dan 10
5 people say this guide was helpful
-
Install dan Konfigurasi Samba Server pada Ubuntu
5 people say this guide was helpful
-
Jenis-Jenis Software Virtualisasi untuk Membuat Virtual Machine
7 people say this guide was helpful