Instalasi dan Konfigurasi Nginx Proxy Manager untuk GitHub di Debian 12 dengan Docker dan MariaDB

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 dan rootpassword 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:

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:

  1. Clone proyek GitHub ke server, misalnya:
git clone https://github.com/username/proyek-web.git /var/www/proyek-web
  1. Jalankan proyek (misalnya Node.js, Laravel, atau PHP).
  2. 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.

Leave a Comment