Không có mô tả

0xJacky e5928be448 chore(ci): switch r2 upload from wrangler to aws s3 cli 1 tuần trước cách đây
.cursor d64990ec4f feat(config): supports delete file or directory 1 tháng trước cách đây
.devcontainer ccebcfdf66 enhance(auto-cert): update ignore condition 4 tuần trước cách đây
.github e5928be448 chore(ci): switch r2 upload from wrangler to aws s3 cli 1 tuần trước cách đây
.idea 2db7f02c76 chore(idea): exclude go-path 5 tháng trước cách đây
.vscode 28cc1dad64 refactor(event): use WebSocket event bus instead of SSE #1197 3 tuần trước cách đây
api 86390a5ec2 feat(kernal): add support for h2 and h3 protocols 2 tuần trước cách đây
app 195f167b59 chore(deps): update all non-major dependencies 1 tuần trước cách đây
cmd 9759967a63 fix(notification): update content function to include translation flag for all notifications 1 tháng trước cách đây
docs 195f167b59 chore(deps): update all non-major dependencies 1 tuần trước cách đây
internal ddd538b587 feat: add consul resolver and related tests for service discovery #1241 1 tuần trước cách đây
mcp 7069cb16d0 refactor(nginx): replace direct reload calls with unified control method for better error handling 2 tháng trước cách đây
model 06570b51db refactor:(cert) migrate domains to json array 3 tuần trước cách đây
query a3f8f90668 feat(auth): implement short token for user authentication and update related login responses 3 tuần trước cách đây
resources 6b40d02b93 feat: add `pidfile` parameter to support OpenRC 2 tháng trước cách đây
router 28cc1dad64 refactor(event): use WebSocket event bus instead of SSE #1197 3 tuần trước cách đây
settings 1fd24eb175 feat(nginx): add SbinPath option in settings 4 tuần trước cách đây
template b63dbe1e50 refactor: refresh 25.04 3 tháng trước cách đây
.air.toml 65a4aaad5a chore: update lego 1 tuần trước cách đây
.dockerignore 00f4855dce feat: use devconatiner 5 tháng trước cách đây
.editorconfig 4f25a0c670 chore: migrate to ESlint v9 9 tháng trước cách đây
.gitignore 455c9497b7 feat(install): self check before install 3 tháng trước cách đây
.weblate.ini 43fb701425 enhance: new integration method with Weblate to reduce issues with merging changes 1 năm trước cách đây
CODE_OF_CONDUCT.md 4edf8bd82b chore: create CODE_OF_CONDUCT.md 5 tháng trước cách đây
CONTRIBUTING.md 4215d2f6f9 chore: Create CONTRIBUTING.md 2 năm trước cách đây
Dockerfile 17c3d21f6e feat: use working directory from environment variable for `risefront` 2 tháng trước cách đây
LICENSE 2cf7bdf19b Create LICENSE 3 năm trước cách đây
README-es.md 422c3ce821 chore: update docs 1 tháng trước cách đây
README-ja_JP.md 422c3ce821 chore: update docs 1 tháng trước cách đây
README-vi_VN.md 422c3ce821 chore: update docs 1 tháng trước cách đây
README-zh_CN.md 422c3ce821 chore: update docs 1 tháng trước cách đây
README-zh_TW.md 422c3ce821 chore: update docs 1 tháng trước cách đây
README.md edb8a8a48d chore: update docs 3 tuần trước cách đây
SECURITY.md 66639e0d19 chore: create SECURITY.md 5 tháng trước cách đây
app.example.ini 86390a5ec2 feat(kernal): add support for h2 and h3 protocols 2 tuần trước cách đây
demo.Dockerfile 876e58d49b chore(demo): add our prime sponsor 2 tháng trước cách đây
docker-compose-demo.yml 38a019720b enhance(demo): ban Internet 9 tháng trước cách đây
go.mod 65a4aaad5a chore: update lego 1 tuần trước cách đây
go.sum 65a4aaad5a chore: update lego 1 tuần trước cách đây
install.sh 5081ca72c8 fix(install): improve nginx-ui service management and error handling #1079 2 tháng trước cách đây
main.go 86390a5ec2 feat(kernal): add support for h2 and h3 protocols 2 tuần trước cách đây
version.sh 82da0ef05e chore: use go generate 3 tháng trước cách đây

README-es.md

Logotipo de la interfaz de usuario de Nginx

Interfaz de usuario (UI) de Nginx

Otra UI web de Nginx, desarrollada por 0xJacky, Hintay y Akino.

Build and Publish

Documentación

Para consultar la documentación, visite nginxui.com.

Stargazers en el tiempo

Stargazers over time

English | Español | 简体中文 | 繁體中文

Tabla de Contenidos
  1. Sobre el proyecto
  2. Cómo empezar
  3. Compilación manual
  4. Script para Linux
  5. Ejemplo de configuración de proxy reverso de Nginx
  6. Contribuir
  7. Licencia

Sobre el proyecto

Dashboard

Demostración

URL:https://demo.nginxui.com

  • Nombre de usuario: admin
  • Contraseña: admin

Características

  • Estadísticas en línea para los indicadores del servidor, como el uso de la CPU, el uso de la memoria, el promedio de carga y el uso del disco.
  • Asistente de ChatGPT en línea
  • Despliegue con un solo clic y renovación automática de certificados Let's Encrypt.
  • Edición de las configuraciones de sitios web con nuestro NgxConfigEditor de diseño propio, que es un editor de bloques fácil de usar para configuraciones de nginx o con el Editor de código Ace que admite resaltar la sintaxis de configuración de nginx.
  • Visualización en línea los registros de Nginx
  • Escrito en Go y Vue, distribuído en un único binario ejecutable.
  • Prueba automática del archivo de configuración y recarga de nginx después de guardar la configuración.
  • Terminal Web
  • Modo oscuro
  • Diseño web adaptable

Internacionalización

  • Inglés
  • Chino Simplificado
  • Chino Tradicional

Aceptamos traducciones a cualquier idioma.

Desarrollado con

Cómo empezar

Antes de usar

La UI de Nginx sigue la configuración estándar de archivos de un servidor web de Debian. Los archivos de configuración del sitio creados se colocarán en la carpeta sites-available que se encuentra dentro de la carpeta de configuración de Nginx (detectada automáticamente). Los archivos de configuración para un sitio habilitado crearán un soft link en la carpeta sites-enabled. Es posible que deba ajustar la forma en que se organizan los archivos de configuración.

Para sistemas que no sean Debian (y Ubuntu), es posible que deba cambiar el contenido del archivo de configuración nginx.conf al estilo Debian como se muestra a continuación.

http {
	# ...
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

Para más información: debian/conf/nginx.conf

Instalación

La UI de Nginx está disponible en las siguientes plataformas:

  • macOS 11 Big Sur y posterior (amd64 / arm64)
  • Windows 10 y posterior (x86 /amd64 / arm64)
  • Linux 2.6.23 y posterior (x86 / amd64 / arm64 / armv5 / armv6 / armv7 / mips32 / mips64 / riscv64 / loongarch64)
    • Incluyendo pero no limitado a Debian 7 / 8, Ubuntu 12.04 / 14.04 y posterior, CentOS 6 / 7, Arch Linux
  • FreeBSD
  • OpenBSD
  • Dragonfly BSD
  • Openwrt

Puede visitar latest release para descargar la última distribución, o simplemente usar los scripts de instalación para Linux.

Uso

Al ejecutar por primera vez la UI de Nginx, visite en su navegador http://<your_server_ip>:<listen_port> para completar las configuraciones posteriores.

Desde el ejecutable

Ejecutar UI Nginx en la terminal

nginx-ui -config app.ini

Presione Control+C en la terminal para salir de la UI de Nginx.

Ejecutar UI Nginx en Segundo plano

nohup ./nginx-ui -config app.ini &

Detenga la UI de Nginx con el siguiente comando.

kill -9 $(ps -aux | grep nginx-ui | grep -v grep | awk '{print $2}')

Con Systemd

Si está utilizando el script de instalación para Linux, la UI de Nginx se instalará como el servicio nginx-ui en systemd. Utilice el comando systemctl para controlarlo.

Iniciar UI Nginx

systemctl start nginx-ui

Detener UI Nginx

systemctl stop nginx-ui

Reiniciar UI Nginx

systemctl restart nginx-ui

Con Docker

Nuestra imagen dpcker uozi/nginx-ui:latest se basa en la última imagen nginx y se puede usar para reemplazar Nginx en el host. Puede realizar el cambio fácilmente publicando los puertos 80 y 443 del contenedor en el host.

Nota
  1. Cuando utilice este contenedor por primera vez, asegúrese de que el volumen mapeado a /etc/nginx esté vacío.
  2. Si desea incluir archivos estáticos, puede mapear directorios al contenedor.

Ejemplo de desplegado Docker

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/www:/var/www \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -p 8080:80 -p 8443:443 \
  uozi/nginx-ui:latest

Compilación manual

En plataformas que no tienen una versión de compilación oficial, pueden compilarse manualmente.

Prerequisitos

  • Make

  • Golang 1.23+

  • node.js 21+

    npx browserslist@latest --update-db
    

Compilación del Frontend

Ejecute el siguiente comando en el directorio app.

pnpm install
pnpm build

Compilación del Backend

Primero compile la interfaz y luego ejecute el siguiente comando en el directorio raíz del proyecto.

go generate
go build -tags=jsoniter -ldflags "$LD_FLAGS -X 'github.com/0xJacky/Nginx-UI/settings.buildTime=$(date +%s)'" -o nginx-ui -v main.go

Script para Linux

Uso básico

Instalar and Actualizar

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

El puerto de escucha predeterminado es 9000 y el puerto de Desafío HTTP predeterminado es 9180. Si hay un conflicto de puertos, modifique manualmente /usr/local/etc/nginx-ui/app.ini, luego use systemctl restart nginx-ui para recargar el servicio de UI de Nginx.

Eliminar UI Nginx UI, excepto los archivos de configuración y la base de datos

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

Uso avanzado

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

Ejemplo de configuración de proxy reverso de Nginx

server {
    listen          80;
    listen          [::]:80;

    server_name     <your_server_name>;
    rewrite ^(.*)$  https://$host$1 permanent;
}

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen  443       ssl;
    listen  [::]:443  ssl;
    http2   on;

    server_name         <your_server_name>;

    ssl_certificate     /path/to/ssl_cert;
    ssl_certificate_key /path/to/ssl_cert_key;

    location / {
        proxy_set_header    Host                $host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto   $scheme;
        proxy_http_version  1.1;
        proxy_set_header    Upgrade             $http_upgrade;
        proxy_set_header    Connection          $connection_upgrade;
        proxy_pass          http://127.0.0.1:9000/;
    }
}

Contribuir

Las contribuciones son lo que hace que la comunidad de código abierto sea un lugar increíble para aprender, inspirar y crear. Cualquier contribución que hagas es muy apreciada.

Si tiene una sugerencia que mejoraría este proyecto, bifurque el repositorio y cree un pull request. También puede simplemente abrir un issue con la etiqueta "enhancement". ¡No olvides darle una estrella al proyecto! ¡Gracias de nuevo!

  1. Bifurcar el proyecto
  2. Crea un branch de mejora (git checkout -b feature/AmazingFeature)
  3. Commit de tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push al branch (git push origin feature/AmazingFeature)
  5. Abrir un Pull Request

Licencia

Este proyecto se proporciona bajo una licencia GNU Affero General Public License v3.0 que se puede encontrar en el archivo LICENCIA. Al usar, distribuir o contribuir a este proyecto, acepta los términos y condiciones de esta licencia.