
Pendahuluan
Dalam pengembangan web modern, penggunaan reverse proxy seperti Nginx Proxy Manager (NPM) telah menjadi standar karena kemudahannya dalam mengelola sertifikat SSL, mengarahkan trafik ke berbagai layanan internal, dan mengoptimalkan performa server.
Bagi administrator sistem atau developer yang ingin mengelola banyak aplikasi (misalnya dari GitHub, WordPress, Nextcloud, dan lainnya) dalam satu server dengan kemudahan antarmuka berbasis web, Nginx Proxy Manager adalah solusi ideal.
Pada artikel ini, kita akan membahas cara instalasi Nginx Proxy Manager menggunakan Docker di OS Debian 12 (Bookworm), dengan integrasi MariaDB sebagai basis datanya.
Panduan ini akan sangat berguna untuk kamu yang ingin menyiapkan server self-hosted modern, efisien, dan terotomatisasi.
Persiapan Awal
1. Update Sistem
Langkah pertama, pastikan sistem Debian 12 kamu dalam kondisi terbaru.
sudo apt update && sudo apt upgrade -y
2. Install Dependensi Dasar
Beberapa paket dasar diperlukan agar Docker dan MariaDB dapat berjalan dengan baik.
sudo apt install ca-certificates curl gnupg lsb-release -y
Instalasi Docker dan Docker Compose
1. Tambahkan Repository Resmi Docker
Docker tidak tersedia secara default di repositori Debian, jadi kita perlu menambahkannya.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Kemudian tambahkan repositorinya:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2. Install Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
3. Verifikasi Instalasi
Pastikan Docker sudah aktif:
sudo systemctl enable --now docker
docker --version
Jika muncul versi Docker, berarti instalasi berhasil.
Instalasi MariaDB
MariaDB akan digunakan sebagai database untuk menyimpan konfigurasi proxy manager.
1. Install MariaDB Server
sudo apt install mariadb-server mariadb-client -y
2. Amankan Instalasi
Jalankan konfigurasi keamanan dasar:
sudo mysql_secure_installation
Ikuti langkah-langkah di layar untuk mengatur password root, menghapus pengguna anonim, menonaktifkan login jarak jauh, dan menghapus database test.
3. Buat Database untuk Nginx Proxy Manager
Masuk ke shell MariaDB:
sudo mysql -u root -p
Lalu jalankan perintah berikut:
CREATE DATABASE npm;
CREATE USER 'npmuser'@'localhost' IDENTIFIED BY 'passwordku';
GRANT ALL PRIVILEGES ON npm.* TO 'npmuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Ganti passwordku
dengan password yang kuat.
Instalasi Nginx Proxy Manager via Docker
1. Buat Direktori Konfigurasi
Buat folder untuk menyimpan data dan konfigurasi NPM:
mkdir -p /opt/nginx-proxy-manager/{data,letsencrypt}
cd /opt/nginx-proxy-manager
2. Buat File docker-compose.yml
Buat file dengan nama docker-compose.yml
:
nano docker-compose.yml
Isi dengan konfigurasi berikut:
version: '3'
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- "80:80"
- "81:81"
- "443:443"
environment:
DB_MYSQL_HOST: db
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: npmuser
DB_MYSQL_PASSWORD: passwordku
DB_MYSQL_NAME: npm
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
db:
image: mariadb:10.11
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: npm
MYSQL_USER: npmuser
MYSQL_PASSWORD: passwordku
volumes:
- ./data/mysql:/var/lib/mysql
Catatan:
- Port
81
digunakan untuk akses dashboard web. - Ubah
passwordku
danrootpassword
dengan password yang kuat.
3. Jalankan Docker Compose
Jalankan seluruh stack dengan perintah:
docker compose up -d
Cek apakah semua container sudah berjalan:
docker ps
Jika terlihat container jc21/nginx-proxy-manager
dan mariadb
, maka instalasi berhasil.
Akses Nginx Proxy Manager
Buka browser dan akses:
http://IP-server-anda:81
Login menggunakan akun default:
- Email: admin@example.com
- Password: changeme
Setelah login, kamu akan diminta untuk mengganti email dan password baru.
Menambahkan Proxy Baru dari GitHub
Jika kamu ingin men-deploy aplikasi web dari GitHub dan melindunginya di balik Nginx Proxy, lakukan langkah berikut:
- Clone proyek GitHub ke server, misalnya:
git clone https://github.com/username/proyek-web.git /var/www/proyek-web
- Jalankan proyek (misalnya Node.js, Laravel, atau PHP).
- Di dashboard Nginx Proxy Manager:
- Klik “Add Proxy Host”
- Masukkan domain atau subdomain
- Pada kolom Forward Hostname/IP, isi
IP-server
dan port aplikasi (contoh:127.0.0.1:3000
) - Centang Force SSL dan HTTP → HTTPS redirect
- Klik Save
Nginx Proxy Manager akan otomatis mengatur konfigurasi Nginx dan mengeluarkan sertifikat SSL gratis dari Let’s Encrypt.
Tips Keamanan dan Optimasi
- Pastikan Docker dan sistem Debian selalu diperbarui secara berkala.
- Gunakan firewall seperti UFW untuk membatasi akses ke port tertentu.
- Backup folder
/opt/nginx-proxy-manager/data
dan/opt/nginx-proxy-manager/letsencrypt
secara rutin. - Gunakan domain valid agar sertifikat SSL dapat diterbitkan tanpa error.
Kesimpulan
Dengan mengikuti langkah-langkah di atas, kamu kini memiliki sistem Nginx Proxy Manager yang berjalan di atas Docker dan MariaDB di Debian 12.
Setup ini sangat efisien, mudah dipelihara, serta mendukung otomatisasi SSL dan pengelolaan reverse proxy berbasis GUI.
Dikombinasikan dengan kemampuan Docker yang ringan dan modular, kamu bisa menambahkan berbagai layanan lain dari GitHub atau aplikasi lokal tanpa konflik port maupun konfigurasi manual yang rumit.
Kata Penutup
Nginx Proxy Manager adalah solusi elegan bagi siapa pun yang ingin mengelola banyak aplikasi web dalam satu server dengan keamanan dan kemudahan yang tinggi.
Dengan Docker dan MariaDB sebagai fondasi, kamu telah membangun ekosistem self-hosted yang tangguh, fleksibel, dan siap untuk produksi.
Selamat mencoba dan semoga panduan ini membantu kamu dalam membangun infrastruktur server yang modern dan profesional.