You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Panel de administración web self-hosted para gestionar servidores Nginx, Docker, System Info desde el navegador. Construido con Nuxt 3, Express, Bun, elimina la necesidad de acceder al servidor por SSH para tareas rutinarias de configuración.
✨ Características
Sitios Nginx — Listar, crear, editar, activar y desactivar sitios
Subdominios — Gestión completa con vista previa del dominio completo
SSL automático — Emisión y renovación de certificados con Let's Encrypt (Certbot)
Docker — Gestión de proyectos, contenedores, imágenes y estadísticas en tiempo real
Logs en tiempo real — WebSockets para seguir Nginx, Docker, SSL y sistema en vivo
Monitor del sistema — CPU, RAM, disco y red actualizados en tiempo real
Instalación de paquetes — Nginx, Docker, Docker-Compose, Certbot.
Autenticación — Login seguro con JWT y bcrypt
Configuracion Path de archivos — Actualizar rutas de proyectos, certificados y configuraciones desde el panel.
Servidor: Ubuntu / Debian con Nginx instalado, o instalación automática mediante el panel (soporta instalación de Nginx, Docker y Certbot) nota: crear un usuario con permisos limitados para ejecutar el panel (ej: nginxadmin) y otorgarle permisos sudo solo para nginx y certbot.
Nginx:/etc/nginx/sites-available y /etc/nginx/sites-enabled
Certbot: Para emisión automática de SSL
Docker: Para gestión de contenedores
Bun 1.x: Para el backend
Node 20+: Para el frontend
🚀 Instalación
1. Clonar el repositorio
git clone https://github.com/crunux/nginx-docker-admin.git
cd nginx-docker-admin
2. Configurar el entorno
cp .env.example .env
Editar .env:
# Auth
ADMIN_USER=admin
ADMIN_PASSWORD="cambiaresto"# ver paso 3
JWT_SECRET= # ver paso 3# Rutas
PROJECTS_DIR=/var/www
# URLs
FRONTEND_URL=http://localhost:3000
NUXT_PUBLIC_API_URL=http://localhost:4000
NUXT_PUBLIC_WS_URL=ws://localhost:4001
⚠️network_mode: host es necesario en Linux para que el backend pueda ejecutar nginx -s reload y certbot directamente sobre el sistema host.
🔌 API Endpoints
Auth
Método
Ruta
Descripción
POST
/api/auth/login
Obtener token JWT
Sitios
Método
Ruta
Descripción
GET
/api/sites
Listar sitios
POST
/api/sites
Crear sitio
PUT
/api/sites/:name
Actualizar configuración
DELETE
/api/sites/:name
Eliminar sitio
POST
/api/sites/:name/enable
Activar sitio
POST
/api/sites/:name/disable
Desactivar sitio
Subdominios
Método
Ruta
Descripción
GET
/api/subdomains
Listar subdominios
POST
/api/subdomains
Crear subdominio
PUT
/api/subdomains/:name
Actualizar puerto
DELETE
/api/subdomains/:name
Eliminar subdominio
POST
/api/subdomains/:name/enable
Activar
POST
/api/subdomains/:name/disable
Desactivar
POST
/api/subdomains/:name/ssl
Emitir certificado SSL
SSL
Método
Ruta
Descripción
GET
/api/ssl
Listar certificados
POST
/api/ssl/issue
Emitir certificado
POST
/api/ssl/renew
Renovar todos
DELETE
/api/ssl/:domain
Revocar certificado
Docker
Método
Ruta
Descripción
GET
/api/docker/containers
Listar contenedores
GET
/api/docker/projects
Listar proyectos
GET
/api/docker/stats
Estadísticas en tiempo real
GET
/api/docker/images
Listar imágenes
POST
/api/docker/projects
Desplegar proyecto
POST
/api/docker/projects/:name/start
Iniciar proyecto
POST
/api/docker/projects/:name/stop
Detener proyecto
POST
/api/docker/containers/:id/restart
Reiniciar contenedor
Sistema
Método
Ruta
Descripción
GET
/api/system
Info completa del sistema
GET
/api/system/cpu
Uso de CPU
GET
/api/system/ram
Uso de RAM
GET
/api/system/disk
Uso de disco
GET
/api/system/network
Estadísticas de red
Configuración
Método
Ruta
Descripción
GET
/api/config/
Obtener configuración actual
PUT
/api/config/
Actualizar configuración (paths, etc)
POST
/api/config/reset
Resetear configuración a valores por defecto
GET
/api/config/dependencies
Obtener dependencias instaladas
POST
/api/config/install/:tool
instalar dependencia (nginx, docker, etc)
Instalación de dependencias
Método
Ruta
Descripción
POST
/api/install/:tool
Instalar herramienta (nginx, docker, certbot)
GET
/api/install/check
Verificar si una herramientas están instaladas
🔁 WebSocket
Conexión: ws://localhost:4001?token=<JWT>
Topics disponibles
// Logs de Nginx{action: 'subscribe',topic: 'nginx'}// Logs de un proyecto Docker{action: 'subscribe',topic: 'docker:nombre-proyecto'}// Logs de Certbot{action: 'subscribe',topic: 'certbot'}// Logs del sistema (journalctl){action: 'subscribe',topic: 'system'}// Estadísticas del sistema en tiempo real{action: 'subscribe',topic: 'system:stats',interval: 2000}// Desuscribirse{action: 'unsubscribe'}
Herramienta self-hosted construida con Nuxt 3 with nuxt/ui y Bun(express) que permite administrar sitios, subdominios, certificados SSL y contenedores Docker desde una interfaz web, eliminando la necesidad de acceder al servidor por SSH para tareas rutinarias de configuración.