PERBAIKI KONEKSI DOCKER POSTGRES-NEXTCLOUD DI OPENWRT

January 22, 2026 jaringan komputer openwrt


Masalah koneksi Connection refused antara container Nextcloud dan Postgres di OpenWRT ternyata bukan berasal dari aplikasi atau konfigurasi Docker Compose, melainkan dari pengaturan default kernel OpenWRT yang tidak kompatibel dengan cara kerja Docker. Berikut rangkuman langkah-langkah yang telah kita lakukan:

 

📋 LATAR BELAKANG MASALAH

 

- Container Nextcloud (172.18.0.3) tidak bisa terhubung ke Postgres (172.18.0.2) dengan error  Connection refused 

- DNS dan layanan Postgres berjalan normal, ping antar container tidak stabil

- Rules iptables Docker tampak benar namun tidak berfungsi

- Penyebab utama: OpenWRT secara default mengaktifkan modul  br_netfilter  yang memfilter traffic bridge melalui iptables, sehingga traffic TCP port 5432 ditolak kernel sebelum masuk container.

 

🛠️ LANGKAH-LANGKAH PERBAIKAN

 

1. Backup Konfigurasi Awal

 

Pertama-tama kita buat cadangan file  sysctl.conf  untuk keamanan:

 

bash

cp /etc/sysctl.conf /etc/sysctl.conf.backup-$(date +%Y%m%d-%H%M%S)

 

 

2. Matikan Filter Bridge di Kernel (Sementara)

 

Jalankan perintah berikut di terminal OpenWRT untuk menerapkan perubahan secara sementara:

 

bash

sysctl -w net.bridge.bridge-nf-call-iptables=0

sysctl -w net.bridge.bridge-nf-call-ip6tables=0

sysctl -w net.bridge.bridge-nf-call-arptables=0

 

 

3. Buka Forward Traffic

 

Pastikan lalu lintas forward bisa berjalan dengan lancar:

 

bash

iptables -P FORWARD ACCEPT

iptables -I DOCKER-USER -j ACCEPT

 

 

4. Perbarui Konfigurasi Permanen

 

Edit file  /etc/sysctl.conf  untuk menjaga perubahan setelah reboot:

 

bash

nano /etc/sysctl.conf

 

 

Ubah/tambahkan baris berikut:

 

plaintext

net.bridge.bridge-nf-call-iptables=0

net.bridge.bridge-nf-call-ip6tables=0

net.bridge.bridge-nf-call-arptables=0

 

 

Simpan file dan terapkan perubahan:

 

bash

sysctl -p

 

 

5. Restart Layanan Docker

 

Aktifkan semua konfigurasi dengan merestart Docker:

 

bash

/etc/init.d/dockerd restart

 

 

6. Verifikasi Koneksi

 

Masuk ke container Nextcloud, pasang client Postgres, dan uji koneksi:

 

bash

docker exec -it nextcloud-app bash

apt update && apt install -y postgresql-client

psql -h postgres -U nextcloud -d nextcloud

 

 

Setelah memasukkan password, muncul prompt  nextcloud=#  yang menandakan koneksi berhasil!

 

📌 KESIMPULAN

 

Masalah ini adalah kasus klasik Docker di OpenWRT yang sering membuat pengguna salah fokus ke komponen aplikasi. Pengaturan default kernel OpenWRT yang memfilter traffic bridge perlu diubah agar Docker bisa bekerja dengan optimal.

 

Dengan langkah-langkah di atas, koneksi antara Nextcloud dan Postgres dapat berjalan dengan stabil, dan konfigurasi akan tetap bertahan setelah sistem reboot.

Loading...