explaingit

alexazhou/verynginx

5,989LuaAudience · ops devopsComplexity · 3/5Setup · moderate

TLDR

A browser-based control panel for Nginx that adds a visual firewall, real-time traffic statistics, and customizable request rules, no config file editing required, built on top of OpenResty.

Mindmap

mindmap
  root((VeryNginx))
    What it does
      Web dashboard
      Firewall rules
      Traffic stats
    Matchers and Actions
      IP blocking
      Rate limiting
      URI rewriting
      Bot detection
    Stats
      Requests per second
      Response times
      Bandwidth
    Setup
      Python installer
      Docker image
      JSON config file
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Block bad bots and malicious IPs through a web dashboard without editing nginx.conf

USE CASE 2

Rate-limit specific endpoints to prevent abuse using point-and-click rules

USE CASE 3

Monitor real-time requests per second, bandwidth, and response times per URI

USE CASE 4

Enable SQL injection and directory traversal protection with built-in preset filters

Tech stack

LuaNginxOpenRestyPythonDockerJavaScript

Getting it running

Difficulty · moderate Time to first run · 30min

Runs a Python installer that compiles OpenResty from source, a Docker image is available for a quicker start.

No license information is mentioned in the explanation.

In plain English

VeryNginx is a layer built on top of Nginx (using the OpenResty extension) that adds a web-based control panel, request statistics, and a customizable firewall. Instead of editing nginx configuration files by hand, you manage rules and settings through a browser dashboard. The core concept is a system of Matchers and Actions. A Matcher is a rule that selects incoming requests based on conditions like the client IP address, the host, the URI, the user agent, the referrer, or query parameters. An Action then runs on any request the Matcher selects. Available actions include redirecting requests, rewriting URIs internally, locking the scheme to HTTPS, verifying that a visitor is a real browser rather than a bot, rate-limiting requests, or blocking them entirely. The blocking action forms the firewall layer. VeryNginx ships with preset filter rules that block common attacks like SQL injection, directory traversal, and access to hidden files like .git directories. The dashboard also shows real-time statistics about Nginx operation: requests per second, average response time, bandwidth, and TCP connection count. For each URI, VeryNginx can track total request counts broken down by HTTP status code, bytes transferred, and average response time. Installation runs through a Python script that downloads and compiles OpenResty automatically, so you do not need to set up Nginx separately. After installation, the control panel is accessible at /verynginx/index.html with default credentials. Configuration changes saved in the dashboard take effect immediately without restarting Nginx. A Docker image is also available for containerized deployments. VeryNginx stores all its configuration in a single JSON file. Deleting that file resets everything to defaults, which can recover access if you accidentally lock yourself out.

Copy-paste prompts

Prompt 1
Set up VeryNginx with Docker and configure a rate-limit rule that blocks any IP making more than 100 requests per minute to /api/
Prompt 2
Create a VeryNginx Matcher that blocks all requests where the user agent contains bot except Googlebot
Prompt 3
How do I use VeryNginx to redirect all HTTP traffic to HTTPS for a specific domain?
Prompt 4
Configure VeryNginx to block access to .git directories and other hidden files on my server
Prompt 5
Show me how to read the VeryNginx stats dashboard to find which URIs are getting the most traffic
Open on GitHub → Explain another repo

← alexazhou on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.