Operations 10 min read

nginxWebUI: Graphical Management Tool for Nginx – Installation, Configuration, and Usage Guide

This article introduces nginxWebUI, a web‑based graphical interface for managing Nginx configurations, explains its technical architecture, provides step‑by‑step installation instructions for jar, Docker and systemd service on Linux, and demonstrates how to use the UI for HTTP, TCP, SSL, load‑balancing, and remote server management.

Code Ape Tech Column
Code Ape Tech Column
Code Ape Tech Column
nginxWebUI: Graphical Management Tool for Nginx – Installation, Configuration, and Usage Guide

nginxWebUI is a graphical management tool for Nginx that allows users to configure HTTP forwarding, TCP forwarding, reverse proxy, load balancing, static HTML serving, and automatic SSL certificate issuance and renewal through a web interface. It can generate an nginx.conf file, start and reload Nginx, and manage multiple Nginx servers in a cluster.

Technical description : The project is built on the Solon web framework and uses an embedded H2 database, so no external database installation is required. SSL certificates are obtained via Let’s Encrypt using the acme.sh script, with automatic renewal at 2 AM for certificates older than 60 days (Linux only). For TCP/stream support, the system adds the ngx_stream_module.so configuration when needed.

Jar installation (Ubuntu example) :

apt update
apt install openjdk-11-jdk
apt install nginx

For CentOS use yum install java-11-openjdk and yum install nginx . Windows users must download JDK and Nginx manually and set JAVA_HOME and Path .

Download the latest jar:

Linux: mkdir /home/nginxWebUI/
      wget -O /home/nginxWebUI/nginxWebUI.jar http://file.nginxwebui.cn/nginxWebUI-3.4.4.jar
Windows: download via browser to D:/home/nginxWebUI/nginxWebUI.jar

Start the program:

Linux: nohup java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &
Windows: java -jar -Dfile.encoding=UTF-8 D:/home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=D:/home/nginxWebUI/

Optional startup parameters (all optional) include --server.port , --project.home , --spring.database.type , and datasource settings for MySQL.

Docker installation :

apt install docker.io   # Ubuntu
yum install docker      # CentOS
docker pull cym1102/nginxwebui:latest
docker run -itd \
  -v /home/nginxWebUI:/home/nginxWebUI \
  -e BOOT_OPTIONS="--server.port=8080" \
  --privileged=true \
  --net=host \
  cym1102/nginxwebui:latest

When using docker‑compose , the service definition is:

version: "3.2"
services:
  nginxWebUi-server:
    image: cym1102/nginxwebui:latest
    volumes:
      - type: bind
        source: "/home/nginxWebUI"
        target: "/home/nginxWebUI"
    environment:
      BOOT_OPTIONS: "--server.port=8080"
    privileged: true
    network_mode: "host"

Building from source : Use Maven to package the project ( mvn clean package ) and Docker to build the image ( docker build -t nginxwebui:latest . ).

Systemd service for auto‑start :

vim /etc/systemd/system/nginxwebui.service
[Unit]
Description=NginxWebUI
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/nginxWebUI
ExecStart=/usr/bin/java -jar /home/nginxWebUI/nginxWebUI.jar
Restart=always

[Install]
WantedBy=multi-user.target

Enable and start the service with systemctl daemon-reload , systemctl enable nginxwebui.service , and systemctl start nginxwebui.service .

Usage : Access the UI at http:// host :8080 . The first login requires initializing an admin account. The UI allows managing HTTP, TCP, reverse proxy, SSL certificates (including Let’s Encrypt DNS mode with Alibaba Cloud credentials), load balancing, static HTML uploads, backup/restore of configuration files, and remote management of multiple Nginx servers.

API : Documentation is available at http:// host :8080/doc.html . API calls need a token obtained from the admin panel and added to the request header.

Password recovery : Stop the service ( pkill java ) and run the jar with --project.findPass=true to print all usernames and passwords and disable two‑factor authentication.

Source code is open‑source at https://github.com/cym1102/nginxWebUI .

DockerdeploymentconfigurationlinuxnginxsslWeb UI
Code Ape Tech Column
Written by

Code Ape Tech Column

Former Ant Group P8 engineer, pure technologist, sharing full‑stack Java, job interview and career advice through a column. Site: java-family.cn

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.