Script ini akan mengatur semua konfigurasi yang dibutuhkan agar koneksi antar container Docker tetap stabil bahkan setelah sistem reboot.
📝 SCRIPT OTOMATIS (NAMAI FILE: setup-docker-openwrt.sh )
bash
'''#!/bin/sh
# Script untuk mengatur firewall dan kernel OpenWRT agar kompatibel dengan Docker
# Dibuat untuk menyelesaikan masalah koneksi antar container (Connection refused)
echo "=== MEMULAI SETUP DOCKER DI OPENWRT ==="
# --------------------------
# BAGIAN 1: BACKUP FILE KONFIGURASI
# --------------------------
echo "[1/4] Membuat backup file konfigurasi..."
BACKUP_DATE=$(date +%Y%m%d-%H%M%S)
cp /etc/sysctl.conf /etc/sysctl.conf.backup-$BACKUP_DATE
cp /etc/firewall.user /etc/firewall.user.backup-$BACKUP_DATE
echo "Backup selesai: sysctl.conf.backup-$BACKUP_DATE & firewall.user.backup-$BACKUP_DATE"
# --------------------------
# BAGIAN 2: KONFIGURASI KERNEL
# --------------------------
echo "[2/4] Mengatur parameter kernel..."
# Hapus baris konfigurasi lama jika ada
sed -i '/net.bridge.bridge-nf-call-/d' /etc/sysctl.conf
# Tambahkan konfigurasi baru
cat >> /etc/sysctl.conf << EOF
# Konfigurasi untuk kompatibilitas Docker
net.bridge.bridge-nf-call-iptables=0
net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-arptables=0
EOF
# Terapkan perubahan kernel
sysctl -p
echo "Konfigurasi kernel berhasil diterapkan"
# --------------------------
# BAGIAN 3: KONFIGURASI FIREWALL
# --------------------------
echo "[3/4] Mengatur aturan firewall..."
# Hapus aturan lama jika ada
sed -i '/# RULES DOCKER OPENWRT/d' /etc/firewall.user
sed -i '/iptables -I FORWARD -i docker0/d' /etc/firewall.user
sed -i '/iptables -D DOCKER-ISOLATION/d' /etc/firewall.user
# Tambahkan aturan baru
cat >> /etc/firewall.user << EOF
# RULES DOCKER OPENWRT - MULAI
# Izinkan forwarding trafik Docker
iptables -I FORWARD -i docker0 -o docker0 -j ACCEPT
iptables -I FORWARD -i docker0 -j ACCEPT
iptables -I FORWARD -o docker0 -j ACCEPT
# Hapus isolasi Docker
iptables -D DOCKER-ISOLATION-STAGE-1 -j DROP 2>/dev/null
iptables -D DOCKER-ISOLATION-STAGE-2 -j DROP 2>/dev/null
# RULES DOCKER OPENWRT - SELESAI
EOF
# Restart firewall untuk menerapkan perubahan
/etc/init.d/firewall restart
echo "Konfigurasi firewall berhasil diterapkan"
# --------------------------
# BAGIAN 4: RESTART LAYANAN DOCKER
# --------------------------
echo "[4/4] Merestart layanan Docker..."
/etc/init.d/dockerd restart
echo "Layanan Docker berhasil direstart"
echo "=== SETUP SELESAI ==="
echo "Konfigurasi akan tetap ada setelah reboot"
echo "Untuk menguji koneksi, coba akses layanan antar container"
🚀 CARA MENJALANKAN SCRIPT
1. Salin script di atas ke file setup-docker-openwrt.sh di OpenWRT:
bash
nano setup-docker-openwrt.sh
2. Berikan izin eksekusi:
bash
chmod +x setup-docker-openwrt.sh
3. Jalankan script sebagai root:
bash
./setup-docker-openwrt.sh
📋 APA YANG DILAKUKAN SCRIPT?
1. Backup Otomatis: Membuat cadangan file sysctl.conf dan firewall.user dengan nama berdasarkan tanggal/jam.
2. Konfigurasi Kernel: Menonaktifkan filter bridge kernel agar Docker bisa bekerja optimal.
3. Firewall Persist: Menambahkan aturan forwarding Docker ke firewall.user sehingga tidak hilang setelah reboot.
4. Restart Layanan: Menerapkan semua perubahan dengan merestart firewall dan Docker.
✅ CARA MEMVERIFIKASI
Setelah menjalankan script, cek apakah konfigurasi sudah benar:
bash
# Cek parameter kernel
sysctl net.bridge.bridge-nf-call-iptables
# Cek aturan firewall
iptables -L FORWARD -n | grep docker0
