Nginx UI: Web Interface for Managing Nginx Servers
GitHub Repo
AGPL-3.0
October 18, 2026 at 03:20 PM
0 views

Nginx UI: Web Interface for Managing Nginx Servers

@0xJackyProject Author

What Nginx UI is

Nginx UI is a web interface for managing Nginx servers, developed by 0xJacky, Hintay and Akino. It replaces a good part of the SSH-and-vim routine of running Nginx: editing site configurations, testing and reloading the server, issuing and renewing Let's Encrypt certificates, reading logs and watching server health, all from a browser. The backend is written in Go and the frontend in Vue, and the whole thing is distributed as a single executable binary.

The audience is anyone who runs Nginx as a reverse proxy or web server and wants a panel on top of it: self-hosters and homelab users with a handful of sites, small teams running a few VPSs, and operators managing several Nginx nodes who want changes mirrored across them. It is licensed under AGPL-3.0 and the repository dates back to February 2021.

How it works

Nginx UI works directly with the Nginx configuration on the host rather than inventing its own format. It follows the Debian web server configuration standard: site configuration files it creates go into a sites-available folder under the Nginx configuration directory (which it detects automatically), and enabling a site creates a symbolic link in sites-enabled. On distributions that do not use that layout by default, the README shows the change needed in nginx.conf so that the main http block includes /etc/nginx/conf.d/*.conf and /etc/nginx/sites-enabled/*.

When a configuration is saved, Nginx UI automatically tests the configuration file and reloads Nginx, and it keeps an automatic backup of every change with version comparison and restore. Configurations can be edited either in NgxConfigEditor, the project's own block editor for Nginx configuration, or in the Ace code editor, which highlights Nginx syntax and supports LLM code completion.

On first run, the panel is opened at http://<your_server_ip>:<listen_port> to complete the setup. When installed with the Linux script, the default listening port is 9000 and the default HTTP challenge port (used for certificate validation) is 9180, both configurable in /usr/local/etc/nginx-ui/app.ini.

Key features

  • Server statistics: online indicators for CPU usage, memory usage, load average and disk usage.
  • Configuration history: automatic backups after changes, with version comparison and restore.
  • Cluster management: mirror operations to multiple nodes to manage multi-server environments from one panel.
  • Encrypted export: export Nginx and Nginx UI configurations, encrypted, for quick deployment or recovery on a new machine.
  • Certificates: one-click deployment and automatic renewal of Let's Encrypt certificates.
  • Two editors: the NgxConfigEditor block editor or the Ace editor with syntax highlighting and LLM code completion.
  • AI assistant: an online ChatGPT-style assistant that supports multiple models, including chain-of-thought display for DeepSeek-R1, to help understand and optimise configurations.
  • MCP interface: Model Context Protocol endpoints that let AI agents interact with Nginx UI for automated configuration management and service control.
  • Operations tools: online Nginx log viewing, a web terminal, dark mode and a responsive layout.
  • Translations: official English, Simplified Chinese and Traditional Chinese, with more community languages through Weblate.

Getting started

Releases are published for macOS 11 and later, Windows 10 and later, a long list of Linux architectures (x86, amd64, arm64, several ARM variants, MIPS, RISC-V and LoongArch), FreeBSD, OpenBSD, Dragonfly BSD and OpenWrt. On Linux the quickest route is the installation script, which installs Nginx UI as a systemd service:

bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ install

The service is then controlled with the usual systemd commands:

systemctl start nginx-ui
systemctl stop nginx-ui
systemctl restart nginx-ui

With a downloaded binary, Nginx UI can be run in the foreground with a configuration file:

nginx-ui -config app.ini

There is also a Docker image, uozi/nginx-ui:latest, based on the latest official Nginx image. It is designed to replace the Nginx on the host: publish the container's ports 80 and 443 and it takes over serving. The README's example:

docker run -dit \
  --name=nginx-ui \
  --restart=always \
  -e TZ=Asia/Shanghai \
  -v /mnt/user/appdata/nginx:/etc/nginx \
  -v /mnt/user/appdata/nginx-ui:/etc/nginx-ui \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -p 8080:80 -p 8443:443 \
  uozi/nginx-ui:latest

The first time the container runs, the volume mapped to /etc/nginx must be empty. Once it is up, the panel is at http://<your_server_ip>:8080/install. For platforms without an official build, the project can be built manually with Make, Go 1.23 or newer and Node.js 21 or newer: the frontend is built with Bun in the app directory and the backend with go generate and go build.

Use cases

  • Self-hosted VPS: manage the reverse proxy in front of a set of self-hosted services, with certificates issued and renewed from the panel.
  • Small fleets: push the same configuration change to several Nginx nodes with cluster mirroring instead of editing each server.
  • Safer edits: rely on automatic test-and-reload plus version history to roll back a bad change quickly.
  • Server migration: export encrypted configurations from one host and restore them on a new one.
  • Agent-driven operations: connect an AI agent through the MCP interface to inspect or change configuration under supervision.

How it compares

The README does not compare itself to other projects. The natural baseline is managing Nginx by hand over SSH, which gives full control but no history, no built-in certificate workflow and no overview across servers. Other web panels for Nginx exist, and some of them generate their own proxy-host configuration from a database. Nginx UI's distinguishing approach is that it edits real Nginx configuration files in the standard Debian layout, so the files on disk stay readable and usable without the panel.

Things to know before adopting

  • AGPL-3.0: modifying Nginx UI and offering it to others over a network obliges you to make your modified source available. Running it unmodified for your own servers is the common case and is unaffected.
  • Configuration layout: on non-Debian systems you may need to reorganise nginx.conf into the sites-available and sites-enabled style before the panel can manage sites cleanly.
  • Privileged access: the panel can rewrite and reload Nginx and includes a web terminal, and the Docker example mounts /var/run/docker.sock, which gives the container control of the Docker host. Treat the panel as a privileged admin interface and put it behind TLS, for example with the reverse proxy configuration the README provides.
  • Docker replaces host Nginx: the image is meant to take over ports 80 and 443 from the host's Nginx, so plan the switch rather than running both.
  • Upgrades: users upgrading from an older Docker image should follow the project's WebSocket fix guide for required conf.d/nginx-ui.conf updates.
  • Script install: the Linux installer is a remote script piped to bash; review it first if your environment requires that.

Project activity

As of October 2026 the repository has about 11,600 stars. It was created in February 2021, is written in Go and is licensed under AGPL-3.0, with pushes as recent as mid-October 2026 on its dev branch. Docker images are published on Docker Hub as uozi/nginx-ui, the project is mirrored on AtomGit, and a public demo is available at demo.nginxui.com. The source is at github.com/0xJacky/nginx-ui and the documentation at nginxui.com.

Enjoying this project?

Discover more amazing open-source projects on TechLogHub. We curate the best developer tools and projects.

Project
nginx-ui
Created
October 18
Last Updated
October 18, 2026 at 03:20 PM

Maintain Nginx UI: Web Interface for Managing Nginx Servers? Add the badge to your README

Show that the project is featured on TechLogHub and send readers to this write-up.

Featured on TechLogHub
[![Featured on TechLogHub](https://techloghub.com/badge-neutral.svg)](https://techloghub.com/open-source/nginx-ui?utm_source=techloghub_badge&utm_medium=referral&utm_campaign=readme)

Find more projects like this

One email a week: new and trending developer tools, fresh comparisons, and what shipped. Unsubscribe in one click.