Cara Install PostgreSQL
di VPS Linux

Database enterprise-grade, gratis, dan lebih powerful dari MySQL untuk banyak use case.

± 25 menit baca SufaNet
Install PostgreSQL di VPS Linux

Pendahuluan

PostgreSQL adalah database relasional open source yang digunakan oleh perusahaan kelas dunia: Instagram, Reddit, Shopify, hingga perusahaan fintech besar.

Banyak developer di Indonesia masih default ke MySQL karena lebih familiar. Padahal untuk aplikasi modern — terutama yang butuh JSON, full-text search, atau transaksi kompleks — PostgreSQL seringkali lebih unggul.

PostgreSQL vs MySQL: Kapan Pakai Yang Mana?

Fitur PostgreSQL MySQL
JSON Native✅ Powerful JSONB⚠️ Terbatas
Full ACID✅ Sangat ketat✅ InnoDB
Ekosistem Laravel✅ Didukung penuh✅ Default
CTE & Window Function✅ Excellent⚠️ Dasar

Install PostgreSQL di VPS Linux

Update sistem dan install dari repository resmi:

sudo apt update && sudo apt upgrade -y
sudo apt install postgresql postgresql-contrib -y

Cek status service:

sudo systemctl status postgresql
sudo systemctl enable postgresql

Cek versi terpasang:

psql --version

Setup User dan Database

Login sebagai user postgres (default superuser):

sudo -u postgres psql

Buat user dan database baru di dalam psql prompt:

-- Buat user baru dengan password
CREATE USER appuser WITH PASSWORD 'password_kuat_kamu';

-- Buat database
CREATE DATABASE appdb OWNER appuser;

-- Beri privileges
GRANT ALL PRIVILEGES ON DATABASE appdb TO appuser;

-- Keluar
\q

Test login dengan user baru:

psql -U appuser -d appdb -h localhost

Konfigurasi Remote Access (Opsional)

⚠️ Peringatan: Aktifkan remote access hanya jika memang dibutuhkan. Pastikan firewall sudah dikonfigurasi dengan benar.

Edit postgresql.conf:

sudo nano /etc/postgresql/*/main/postgresql.conf

# Ubah baris ini:
listen_addresses = 'localhost'   # ubah ke '*' untuk semua interface
# atau lebih aman:
listen_addresses = 'localhost,IP_VPS_KAMU'

Edit pg_hba.conf untuk mengizinkan koneksi dari IP tertentu:

sudo nano /etc/postgresql/*/main/pg_hba.conf

# Tambahkan di bagian bawah:
host    appdb    appuser    IP_CLIENT_KAMU/32    md5

Buka port di firewall dan restart:

sudo ufw allow from IP_CLIENT_KAMU to any port 5432
sudo systemctl restart postgresql

Optimasi Performa PostgreSQL

Edit postgresql.conf untuk tuning basic:

# Untuk VPS 2GB RAM:
shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 4MB
maintenance_work_mem = 128MB
wal_buffers = 16MB
checkpoint_completion_target = 0.9
max_connections = 100

Untuk kalkulasi otomatis sesuai spesifikasi VPS, gunakan tool PGTune.

Backup Otomatis dengan pg_dump

Backup manual database:

pg_dump -U appuser -d appdb > backup_$(date +%Y%m%d).sql

Otomatiskan dengan cron — backup harian jam 02:00:

crontab -e

# Tambahkan:
0 2 * * * pg_dump -U appuser -d appdb | gzip > /backup/appdb_$(date +\%Y\%m\%d).sql.gz

Kenapa VPS SufaNet Cocok untuk PostgreSQL?

  • SSD NVMe — I/O database sangat cepat
  • RAM dedicated tanpa overcommit
  • Cocok untuk database 24/7
  • Bandwidth besar untuk query remote

Database butuh storage yang cepat dan jujur

PostgreSQL performa terbaik di VPS dengan SSD NVMe dan RAM yang tidak di-share.

🚀 Lihat VPS Singapore SufaNet

FAQ

Bisa migrasi dari MySQL ke PostgreSQL?

Bisa, menggunakan tool pgloader. Prosesnya tidak instan tapi cukup otomatis untuk banyak kasus.

Laravel bisa pakai PostgreSQL?

Ya, Laravel mendukung PostgreSQL secara native. Cukup ubah DB_CONNECTION=pgsql di file .env.

Kesimpulan

PostgreSQL bukan sekadar alternatif MySQL. Untuk aplikasi modern yang butuh query kompleks, JSON, atau concurrency tinggi, PostgreSQL adalah pilihan lebih baik.

Instalasi di VPS Linux mudah, konfigurasi straightforward, dan sudah siap production dengan beberapa tweak.