lancard/nginx-webui

GitHub: lancard/nginx-webui

一款面向 Nginx 的 Web 管理界面,通过可视化操作简化反向代理配置、证书自动管理和负载均衡等日常运维工作,并集成基础安全防护与 CI/CD 部署能力。

Stars: 43 | Forks: 7

# NGINX WebUI [![构建状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/31dca672ca103158.svg)](https://github.com/lancard/nginx-webui/actions/workflows/build-docker.yml) ![GitHub package.json version (branch)](https://img.shields.io/github/package-json/v/lancard/nginx-webui/master?filename=admin%2Fpackage.json) ![仓库大小](https://img.shields.io/github/repo-size/lancard/nginx-webui) ![文件数量](https://img.shields.io/github/directory-file-count/lancard/nginx-webui) ![Docker 拉取次数](https://img.shields.io/docker/pulls/lancard/nginx-webui) ![Docker 镜像大小](https://img.shields.io/docker/image-size/lancard/nginx-webui) ## 功能特性 - 一键设置反向代理 - 自动签发和续签 [Let's Encrypt](https://letsencrypt.org) 证书(包括 DNS 验证) - 集成 WAF 与 Anubis:通过智能请求过滤和攻击缓解来保护您的应用。 - 防爬虫与 Bot 保护:使用自适应 [Anubis](https://github.com/TecharoHQ/anubis) 规则拦截不需要的爬虫和恶意流量。 - **路径重写与重定向**:精细控制请求重写和重定向规则。 - **静态文件托管**:轻松暴露带有访问控制的文件夹。 - 适用于 CI/CD 的 API,支持启用/禁用 upstream 后端 - 通过 UI 进行 [Logrotate](https://github.com/logrotate/logrotate) 配置 - 面向高级用户的 NGINX 超级管理员/管理员模式 - 专为管理**多域名**和**团队**而设计 - 使用 Jenkins 或其他 CI/CD 工具进行无损部署 - 使用 **完整的 ES Modules (ESM)** 构建,打造现代化、模块化的 Node.js 架构 - **响应式、移动端友好的 UI**,可自适应桌面、平板和手机布局 - **轻量且最小的技术栈**:[tailwind](https://tailwindcss.com)、[daisyui](https://daisyui.com) 等(无重度框架) - 即时配置重载与验证 - 通过 UI 触发 NGINX 配置测试 + 重载 - **证书数据持久化存储在 Docker 卷中**,可直接用于生产环境 - 使用生产级 **Docker-Compose** 轻松设置 - **NGINX 状态仪表盘**:包含操作系统级别活动连接数在内的实时统计数据。 - **暗黑模式与主题**:支持主题切换的现代化 UI。 - **后端健康检查**:Ping 并验证后端服务器的可用性。 - Nginx 访问日志/错误日志展示。 ## 截图 | UI 概览 | 证书管理 | 后端服务器 | 域名/URL | |------------|----------------|----------------|-----------| | ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c94677c130103200.png) | ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/97e3cd64b8103201.png) | ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/428b91c5ec103202.png) | ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6a2f49a46e103204.png) | ## 视频教程 - **安装与负载均衡设置** [![安装与设置](https://img.youtube.com/vi/3SEdU_Jj5IM/0.jpg)](https://www.youtube.com/watch?v=3SEdU_Jj5IM) - **CI/CD + 无损部署** [![Jenkins 集成](https://img.youtube.com/vi/UaJF-s2AuZo/0.jpg)](https://www.youtube.com/watch?v=UaJF-s2AuZo) - **Let's Encrypt 证书续签** [![证书续签](https://img.youtube.com/vi/O12f2PYPCpU/0.jpg)](https://www.youtube.com/watch?v=O12f2PYPCpU) ## 快速设置 1. 安装 Docker 和 Docker-Compose - [Docker 安装文档](https://docs.docker.com/install/) - [Docker-Compose 安装文档](https://docs.docker.com/compose/install/) 2. 创建一个类似以下的 docker-compose.yml 文件: ``` version: '3.7' services: nginx-webui: image: lancard/nginx-webui container_name: nginx-webui environment: - TZ=Asia/Seoul ulimits: memlock: soft: -1 hard: -1 restart: always ports: - 80:80 - 81:81 - 443:443 volumes: - nginx-webui-data:/data - nginx-webui-log:/var/log/nginx volumes: nginx-webui-data: nginx-webui-log: ``` 3. 如果需要,请设置环境变量(如果未设置,nginx-webui 将自动生成密钥,您可以在 docker 日志中找到这些密钥) ``` JWT_SECRET=abcdefgh JWT_EXPIRES_IN=1h TRUST_PROXY=1 ``` 在服务器重启或跨多个 nginx-webui 服务器进行负载均衡等场景下,设置 JWT_SECRET 会非常有用。 要获取客户端的真实 IP 地址,请设置 TRUST_PROXY 环境变量。(指定服务器前面的代理数量)。 4. 运行 docker-compose ``` docker-compose up -d docker-compose logs # for check admin password ``` 5. 登录管理 UI 'administrator' 用户的密码在首次运行时随机生成。 您可以通过 'docker-compose logs' 进行查看 当您的 docker 容器运行后,通过端口 `81` 连接到管理界面。 (连接使用自签名证书保护。如果您收到安全警告信息,请忽略并继续) [https://127.0.0.1:81](http://127.0.0.1:81) 默认管理员用户: ``` id: administrator password: (get it from docker-compose logs) ``` 6. 设置配置 参见截图 4 7. 将 API 用于 CI/CD ``` curl --insecure -H "Authorization: Bearer ${token}" "https://localhost:81/api/upstream/${upstream-name}/${backend-address}/enable" curl --insecure -H "Authorization: Bearer ${token}" "https://localhost:81/api/upstream/${upstream-name}/${backend-address}/disable" ``` ## 重置密码 ``` cd /admin npm run password ``` ## 迁移指南 如果您正在从之前的版本升级,请参阅 [MIGRATION.md](./MIGRATION.md) 以获取详细的步骤和兼容性说明。 ## 安装 sshd 用于开发(用于贡献代码) - 创建一个卷并生成 id_rsa.pub 文件,然后将该卷挂载到 /root/.ssh - 它将自动开启 ssh 服务器。 - 切换目录至 /root/nginx-webui/admin - 执行 'npm run watch' - 它将开启 7777 端口 ## 构建技术 - 服务端:npm、nodejs、express - 客户端:daisyui、tailwind、esbuild、jquery、dayjs、chart.js ## 贡献者许可协议 为了便于许可证管理并避免法律纠纷,贡献的代码归属于作者,所有权利归属于作者。此外,本项目采用 MIT 许可证。如果您不同意,请不要提交 PR。 ## 许可证 MIT 许可证
标签:Anubis, API, CISA项目, DaisyUI, Docker, ESM, ES Modules, GNU通用公共许可证, HTTPX, Jenkins, LangChain, Let's Encrypt, Logrotate, MITM代理, Nginx, NIDS, Node.js, OISF, SSL证书, Tailwind CSS, WAF, WebUI, 一键配置, 人体姿态估计, 前端, 反向代理, 反爬虫, 可视化面板, 后端开发, 响应式设计, 团队协作, 多域名管理, 安全防御评估, 容器化, 日志管理, 服务器管理, 机器人防护, 流量过滤, 移动端友好, 网站管理, 自动化运维, 自动续签, 请求拦截, 超级管理员, 路径重写, 轻量级, 重定向, 防火墙, 静态文件托管