Cara Instalasi PostgreSQL di Ubuntu 24.04 LTS

Daftar Isi
PostgreSQL mempunyai reputasi kuat mengenai standards compliance, extensibility, dan dukungan tipe data yang lebih kaya dibanding kebanyakan RDBMS lain (JSONB, array, range type, custom type). Panduan ini membahas instalasi PostgreSQL versi terbaru dari repository resmi PGDG di Ubuntu 24.04 LTS menggunakan paket qVM-2, mulai dari setup repository, pembuatan role dan database, konfigurasi autentikasi menggunakan pg_hba.conf, sampai verifikasi koneksi.
Pengenalan
PostgreSQL sebenarnya tidak punya tier "LTS" resmi seperti Ubuntu atau Node.js. Tiap major version — 16, 17, 18, dan seterusnya — sama-sama dapat dukungan resmi selama 5 tahun sejak rilis, lalu EOL. Jadi versi yang paling "long-term" otomatis versi terbaru, karena sisa masa dukungannya paling panjang. Ubuntu 24.04 LTS sendiri di repository default-nya hanya menyediakan PostgreSQL 16 (versi yang sudah ada saat Ubuntu 24.04 dirilis, dan otomatis makin tua seiring waktu karena repository Ubuntu tidak ikut update ke major version baru). Panduan ini menggunakan repository resmi PGDG (PostgreSQL Global Development Group) supaya bisa melakukan instalasi PostgreSQL 18 — major version terbaru dengan sisa masa dukungan sampai sekitar 2031.
Soal manajemen akses, kalau sudah terbiasa dengan MySQL/MariaDB, hal pertama yang terasa beda di PostgreSQL adalah cara mengatur siapa boleh akses apa. MySQL menyatukan konsep user dan privilege jadi satu — tinggal CREATE USER lalu GRANT. PostgreSQL memisahkannya jadi dua lapis: role (bisa berfungsi sebagai user atau group) yang diatur melalui SQL, dan pg_hba.conf yang menentukan dari mana, melalui method apa, dan ke database mana sebuah role boleh connect. Dua file inilah — postgresql.conf untuk parameter server, pg_hba.conf untuk aturan autentikasi — yang perlu dipahami sebelum PostgreSQL dibuka untuk akses remote.
Begitu instalasi selesai, otomatis dibuatkan OS-level user bernama postgres, yang jadi superuser database secara default. PostgreSQL sengaja mengikat akses lokal ke OS user melalui peer authentication — login sebagai postgres di database cuma bisa dilakukan melalui user Linux postgres.
qVM yang dipakai di panduan ini diasumsikan masih fresh install, belum ada konfigurasi tambahan apa pun.
Persyaratan
Software
- Ubuntu 24.04 LTS, kondisi fresh install
- Akses root atau user dengan hak sudo
- Koneksi internet untuk mengunduh package dari repository resmi PGDG
- SSH client di sisi lokal untuk remote ke qVM
Hardware / Spesifikasi VPS qVM
Panduan ini menggunakan paket qVM-2, dengan spesifikasi:
- vCPU: 1 core
- RAM: 2 GiB
- Storage: 50 GiB
RAM 2 GiB cukup untuk workload kecil sampai menengah tanpa tuning tambahan. Parameter seperti shared_buffers dan work_mem memang idealnya disesuaikan dengan RAM yang tersedia, tapi default bawaan PostgreSQL sudah cukup konservatif dan aman langsung digunakan di qVM-2.
Tahapan
1. Update dan Upgrade OS Ubuntu 24.04 LTS
apt update && sudo apt upgrade -y2. Tambahkan Repository Resmi PGDG
apt install -y postgresql-commonJalankan script setup resmi dari PGDG — otomatis mendeteksi codename Ubuntu (noble) dan menambahkan repository yang sesuai:
/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y
3. Instalasi PostgreSQL 18
apt install postgresql-18 -ySejak beberapa major version terakhir, sebagian besar modul contrib sudah ikut terbundle di package utama, jadi tidak perlu instal postgresql-contrib terpisah untuk kebutuhan umum.
Aktifkan biar jalan otomatis tiap qVM reboot, lalu cek statusnya:
systemctl enable postgresql
systemctl status postgresqlCek versi yang terpasang:
psql --version
4. Set Password untuk Role postgres
Masuk sebagai OS user postgres (sudah otomatis dibuat sejak instalasi), lanjut masuk ke psql:
sudo -i -u postgres psqlSet password buat role postgres — dibutuhkan nanti kalau mau connect menggunakan password authentication, bukan hanya mengandalkan peer authentication via OS user:
ALTER USER postgres WITH PASSWORD 'PasswordKuatAnda';
\q
5. Membuat Role dan Database Aplikasi
Masih sebagai OS user postgres, buat role dan database khusus untuk aplikasi. Jangan pernah menggunakan role postgres langsung buat koneksi aplikasi — sama seperti prinsip di MySQL, aplikasi harus punya akses terbatas, bukan superuser.
sudo -i -u postgres createuser --interactive app_userJawab n untuk pertanyaan "Shall the new role be a superuser?" kecuali memang sengaja butuh. Buat database, langsung set ownership-nya ke role tadi:
sudo -i -u postgres createdb app_db --owner=app_userSet password untuk role aplikasi melalui psql:
sudo -i -u postgres psql -c "ALTER USER app_user WITH PASSWORD 'PasswordKuatAnda';"6. Konfigurasi Remote Access (Opsional)
qVM tidak punya private network antar-instance — tiap qVM cuma punya IP Publik, jadi akses remote ke database otomatis melalui internet publik. qVM juga tidak mengaktifkan firewall (ufw) secara default, artinya port yang listen langsung bisa dijangkau dari internet. Konsekuensinya, entry di pg_hba.conf yang dibatasi per-IP jadi satu-satunya lapisan proteksi — jangan sampai isi baris ini 0.0.0.0/0.
Abaikan tahap ini kalau aplikasi berjalan di server yang sama. Lanjutkan hanya kalau aplikasi memang benar-benar berjalan di qVM terpisah.
Edit postgresql.conf supaya PostgreSQL listen di IP Publik qVM ini, bukan cuma localhost:
vim /etc/postgresql/18/main/postgresql.confCari baris:
#listen_addresses = 'localhost'Ubah jadi:
listen_addresses = 'localhost,161.248.116.110'Edit pg_hba.conf supaya cuma IP client tertentu yang boleh connect menggunakan password — inilah file yang benar-benar menentukan siapa boleh akses dari mana:
vim /etc/postgresql/18/main/pg_hba.confTambahkan baris berikut di bagian paling bawah file (scram-sha-256 adalah default hashing PostgreSQL 14 ke atas, jauh lebih kuat dibanding md5 yang masih sering muncul di tutorial-tutorial lama). Notasi /32 artinya satu host spesifik, bukan subnet:
host app_db app_user 161.248.116.110/32 scram-sha-256Ganti 161.248.116.110 dengan IP Publik qVM aplikasi yang akan connect. Kalau ada beberapa client, tambahkan satu baris per IP — PostgreSQL menolak koneksi dari IP mana pun yang tidak match baris pg_hba.conf, walau port 5432 sendiri bisa dijangkau dari mana saja di internet.
Restart supaya konfigurasi diterapkan:
systemctl restart postgresql7. Verifikasi Instalasi
psql -h localhost -U app_user -d app_db -c "SELECT version();"
Kalau diminta password dan query berhasil balikin version string yang menyebut PostgreSQL 18, instalasi sudah siap dipakai aplikasi.
Kesimpulan
VPS qVM-2 (1 core, 2 GiB RAM, 50 GiB storage) sekarang sudah jalanin PostgreSQL 18 dari repository resmi PGDG — major version dengan sisa masa dukungan terpanjang saat ini, dibanding PostgreSQL 16 bawaan repository default Ubuntu. Role dan database aplikasi sudah terpisah dari superuser postgres, dan remote access diatur eksplisit melalui pg_hba.conf, bukan sekadar buka port ke 0.0.0.0. Untuk kebutuhan backup, pg_dump/pg_basebackup bisa dijadwalkan melalui cron mirip pola mysqldump di MySQL/MariaDB. Kalau traffic sudah tumbuh signifikan dan butuh high availability, PostgreSQL punya streaming replication bawaan yang layak dipelajari sebagai langkah lanjutan.
Akun Sequel Anda siap untuk memesan & mengelola layanan cloud.
