Cara Install Nginx UI Dasar Lewat Docker Compose (Setting Timezone Asia/Jakarta)

Kalau lo sering mainin server dan ngatur Nginx, pasti tau rasanya ribet edit-edit file konfigurasi pake terminal.
Nah, biar gak pusing, ada tool kece namanya Nginx UI ini kayak panel web buat ngatur Nginx langsung dari browser.
Tampilannya modern, gampang dipakai, dan bisa langsung reload Nginx tanpa ngetik panjang di terminal.

Sekarang gue kasih tau cara install Nginx UI lewat Docker, sekalian kita set timezone-nya ke Asia/Jakarta biar jamnya gak ngaco.

Sebenarnya, cara manual edit nginx.conf pake nano atau vim juga tetep jalan sih, cuma buat pemula atau yang gak terlalu hafal syntax Nginx, itu lumayan riskan. Salah satu koma atau kurung kurawal aja bisa bikin Nginx gagal reload dan situs down. Nah, Nginx UI ini bantu banget karena ada validasi config otomatis sebelum di-apply, jadi kemungkinan salah ketik yang bikin server down jadi lebih kecil. Plus ada juga fitur monitoring resource server, jadi lo bisa pantau CPU dan memory langsung dari dashboard yang sama.

Konten Terkait

1. Siapin Server yang Udah Ada Docker

Pertama, pastiin server lo udah ada:

  • Docker
  • Docker Compose

Kalau belum, langsung aja jalanin ini:

sudo apt update
sudo apt install docker.io docker-compose -y

Cek udah kepasang belum:

docker -v
docker compose version

Kalau dua-duanya nongol, berarti aman. Gas lanjut.

2. Bikin Folder Buat Nginx UI

Biar rapi, kita bikin satu folder khusus:

mkdir -p ~/nginxui
cd ~/nginxui

Nanti semua file dan datanya bakal disimpen di sini.

3. Bikin File docker-compose.yml

Masuk ke folder tadi, terus bikin file:

nano docker-compose.yml

Isi file-nya kayak gini:

version: "3.8"

services:
 nginx-ui:
    image: uozi/nginx-ui:latest
    container_name: nginx-ui
    restart: always
    environment:
      - TZ=Asia/Jakarta
    volumes:
      - ./nginx_conf:/etc/nginx
      - ./nginx_ui_data:/etc/nginx-ui
      - ./www:/var/www
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "8080:80"
      - "8443:443"

Penjelasan singkat:

  • TZ=Asia/Jakarta biar jam di dalam container sesuai waktu lokal.
  • nginx_conf tempat semua config Nginx.
  • nginx_ui_data nyimpen data dan setting dari UI-nya.
  • www buat nyimpen file web (kalau ada).
  • Port 8080 dan 8443 buat akses panel-nya nanti.

4. Jalankan Nginx UI-nya

Sekarang tinggal jalanin:

docker compose up -d

Tunggu bentar, nanti Docker otomatis download image-nya dan langsung jalanin.

Cek udah hidup belum:

docker ps

Kalau ada tulisan nginx-ui di situ, berarti udah sukses.

5. Akses dari Browser

Sekarang buka browser dan ketik:

http://IP_SERVER:8080

atau

https://IP_SERVER:8443

Kalau lo pake di PC lokal, ya tinggal:

http://localhost:8080

Tinggal login, dan boom! udah nongol dashboard Nginx UI yang cakep banget.
Dari situ lo bisa edit config, reload server, sampe manage website lo dari tampilan web.

6. Tips Biar Aman dan Lancar

  • Pertama kali jalanin, pastiin folder nginx_conf masih kosong ya.
    Soalnya si Nginx UI bakal auto bikin config default di situ.
  • Kalau lo pake firewall (kayak UFW atau di cloud), buka dulu port 8080 dan 8443 biar bisa diakses.
  • Kalau mau update ke versi terbaru: docker compose pull docker compose up -d. Sebelum update, ada baiknya cek dulu changelog resmi Nginx UI di GitHub-nya, soalnya kadang ada breaking changes di config format antar versi major yang bisa bikin config lama gak kebaca kalau langsung update tanpa nyesuaiin.
  • Buat liat log: docker logs -f nginx-ui

Amanin Dashboard-nya Juga

Karena dashboard Nginx UI ini punya akses penuh buat ubah config server, jangan dibiarin kebuka bebas ke publik tanpa proteksi tambahan. Beberapa hal yang perlu lo perhatiin: pertama, jangan pakai password default atau password yang gampang ditebak pas setup awal. Kedua, kalau memungkinkan, batasi akses dashboard cuma dari IP tertentu (misal IP kantor atau VPN) lewat firewall, jangan dibuka ke 0.0.0.0/0. Ketiga, aktifkan HTTPS buat akses dashboard-nya sendiri (bukan cuma buat situs yang dikelola), soalnya kalau lo login lewat HTTP biasa, kredensial bisa gampang disadap kalau jaringannya gak aman.

7. Backup Data-nya (Biar Aman)

Nginx UI nyimpen semua setting dan config di folder:

~/nginxui/nginx_conf
~/nginxui/nginx_ui_data

Lo bisa backup dua folder itu ke server lain, cloud, atau pake rclone biar kalau kenapa-kenapa, tinggal restore.

Kendala yang Sering Muncul

  • Container jalan tapi dashboard gak bisa diakses
    Cek firewall/security group, pastikan port 8080 dan 8443 udah kebuka buat akses dari luar.
  • Error “port already in use” pas docker compose up
    Biasanya port 8080/8443 udah dipake service lain. Ganti port di docker-compose.yml ke port lain yang masih kosong, misal 9080 dan 9443.
  • Timezone masih salah meski udah diset
    Pastikan restart-nya pakai docker compose down lalu docker compose up -d lagi, bukan cuma restart biasa, karena env var kadang gak ke-apply kalau cuma di-restart.
  • Config yang di-generate Nginx UI gak nongol/hilang
    Cek permission folder nginx_conf, pastikan Docker punya akses baca-tulis ke folder tersebut.

Penutup

Udah deh, segitu aja.
Sekarang lo punya panel Nginx UI yang udah jalan mulus pake Docker, dan timezone-nya juga udah sesuai Asia/Jakarta.
Gak perlu lagi ribet buka file .conf pake nano atau vim tinggal klik-klik di browser aja.

Nah, sekarang panel Nginx UI lo udah jalan mulus. Langkah selanjutnya biar beneran siap produksi adalah setup reverse proxy supaya bisa diakses lewat domain sendiri (bukan cuma IP:port), sekalian aktifin SSL otomatis dari Let’s Encrypt biar aksesnya HTTPS. Dengan setup lengkap kayak gini, lo udah punya panel manajemen Nginx yang setara sama tools berbayar, tapi gratis dan bisa lo kontrol penuh sendiri. Kalau ada yang nyangkut soal ini, drop komentar aja bro, nanti aku bantuin.

Kalau Nginx UI lo udah jalan dan mau nambahin site atau host baru di dalamnya, langkah-langkahnya udah aku tulis lengkap di cara nambahin site / host di Nginx UI.

Jundi Husni Mubaraq

Jundi Husni Mubaraq

Saya seorang software engineer yang sejak awal 2026 megang penuh (sendirian) tanggung jawab infrastruktur server di tempat saya kerja: deploy dan maintain server Linux Ubuntu on-premises, bangun keamanan berlapis pakai CrowdSec dan Cloudflare, kelola job scheduling dan monitoring pakai Cronicle, deploy aplikasi containerized pakai Docker, sampai ngurusin mail server korporat dari nol. Sebelumnya saya 3+ tahun jadi Software Engineer/Fullstack Developer di beberapa perusahaan, termasuk proyek skala internasional (EUDR compliance system buat Lindt & Sprungli) dan sistem rumah sakit (SIMRS, rekam medis elektronik, integrasi BPJS Kesehatan) di RS PKU Muhammadiyah Surakarta. jundi.hm ini tempat saya dokumentasiin apa yang beneran saya kerjain dan pelajarin di lapangan, bukan sekadar riset teori, S.Kom dari Universitas Duta Bangsa Surakarta jadi bekal awal, tapi yang nulis di sini adalah pengalaman langsung ngelola server production sehari-hari. Selengkapnya: https://iam.jundi.hm

Lihat Juga Nih

Selanjutnya Nih

Kasih Komentar

Email kamu gak bakal ditampilin ke publik. Kalau ada tanda ini artinya wajib diisi ya *

Rekomendasi.

Lagi Viral.