Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wake on LAN

Aplicación web para gestionar dispositivos y enviar señales Wake on LAN (WOL) desde una interfaz sencilla.

Características

  • Alta, edición y eliminación de dispositivos.
  • Consulta del estado del equipo por puerto de estado.
  • Envío de señal Wake on LAN desde el navegador.
  • Persistencia local de dispositivos en localStorage.
  • Servicio abierto: no requiere registro ni inicio de sesión.

Requisitos

Instalación

npm install

Configuración

  1. Copia el archivo de ejemplo:
cp .env-example .env
  1. Ajusta las variables de entorno según tu entorno local.

Variables de entorno

  • PORT: puerto donde se ejecuta el servidor. Por defecto: 3000.
  • TRUST_PROXY: usar IP real detrás de proxy inverso. Por defecto: true.
  • RATE_LIMIT_WINDOW_MS: ventana de rate limit para /wol en ms. Por defecto: 60000.
  • RATE_LIMIT_MAX_REQUESTS: máximo de solicitudes por IP en esa ventana. Por defecto: 60.
  • REQUEST_TIMEOUT_MS: timeout de cada solicitud HTTP en ms. Por defecto: 12000.
  • STATUS_SOCKET_TIMEOUT_MS: timeout del chequeo TCP de estado en ms. Por defecto: 5000.
  • HOST_ALLOWLIST (opcional): hosts/IP permitidos, separados por coma.

Perfiles recomendados (.env)

Servicio publico sin registro, con mitigaciones anti abuso.

Público (más estricto)

PORT=3000
TRUST_PROXY=true
RATE_LIMIT_WINDOW_MS=60000
RATE_LIMIT_MAX_REQUESTS=30
REQUEST_TIMEOUT_MS=10000
STATUS_SOCKET_TIMEOUT_MS=4000
# HOST_ALLOWLIST=pc-casa.ejemplo.com,203.0.113.10

Self-hosting (permisivo)

PORT=3000
TRUST_PROXY=false
RATE_LIMIT_WINDOW_MS=60000
RATE_LIMIT_MAX_REQUESTS=180
REQUEST_TIMEOUT_MS=15000
STATUS_SOCKET_TIMEOUT_MS=7000
# HOST_ALLOWLIST=

Ejecución

node main.js

Después abre la aplicación en el navegador usando la URL que aparezca en la consola.

Capturas de pantalla

Vista principal

Vista PC Vista móvil
Vista principal en PC Vista principal en móvil

Dispositivo

Vista PC Vista móvil
Pantalla de dispositivo en PC Pantalla de dispositivo en móvil

Opciones

Vista PC Vista móvil
Pantalla de opciones en PC Pantalla de opciones en móvil

Estructura general

  • main.js: servidor principal.
  • src/: lógica del backend.
  • public/: frontend estático.
  • .env-example: ejemplo de variables de entorno.

Notas

  • Los dispositivos se guardan en el navegador usando localStorage.
  • Si agregas más variables de entorno, actualiza también .env-example y esta documentación.

About

A simple Wake on LAN server

Resources

Stars

0 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages