2025-08-24 11:28:01 +02:00
2025-08-24 11:27:25 +02:00
2025-08-24 11:28:01 +02:00

eWOL - enhanced Wake-on-LAN UI for OpenWRT / GL.iNet devices

Inspired by this OpenWrt forum post and refined into a single-shot installer script.

eWOL is a clean, practical, and user-friendly web UI for waking up and checking the status of devices on your LAN, through your OpenWrt router and a bit of Lua magic. This project is designed for anyone who wants a hassle-free Wake-On-LAN tool with zero dependencies beyond standard OpenWrt packages.

No containers, no binaries, just simple HTML + JS + Lua + etherwake


Features

  • One-step install: Just run the shell script on your router.
  • Nice, responsive UI: Dark/light theme, font size zoom buttons.
  • Device status: Wake devices, check if they're online, see clear status icons.
  • Modern UX: Remembers your theme and font zoom preferences, no page reloads.
  • Secure by default: Only accessible from LAN unless you intentionally enable WAN access.
  • Self-contained: All files in /www/ewol, with a single CGI endpoint /cgi-bin/ewol-ctl.

Quick Start

  1. SSH login as root on your OpenWRT router, then grab the install script:

    wget -O ./ewol-install.sh https://raw.githubusercontent.com/domomg/eWOL/refs/heads/main/ewol-install.sh
    sh ./ewol-install.sh
    
  2. Edit /www/pwol/devices.json to add your devices:

{
  "PC1": {
    "mac": "11:11:11:11:11:11",
    "ip": "192.168.1.101"
  },
  "PC2": {
    "mac": "22:22:22:22:22:22",
    "ip": "192.168.1.102"
  },
  "PC3": {
    "mac": "33:33:33:33:33:33",
    "ip": "192.168.1.103"
  }
}
  1. Install etherwake if missing:

    opkg update && opkg install etherwake
    
  2. Browse to http://YOUR_ROUTER_IP/ewol/index.html


What files are created after the installation:

  • Frontend:

    • /www/ewol/index.html — The UI (uses /ewol/style.css and /ewol/script.js)
    • /www/ewol/style.css — All styles (dark/light themes, font zoom, icons)
    • /www/ewol/script.js — All logic (table, buttons, live status, settings)
  • Backend:

    • /www/ewol/api.lua — Fast Lua CGI for Wake-on-LAN and ping (uses LuCI libraries)
    • /www/ewol/devices.json — List of your devices (hostname, MAC, IP)
    • /cgi-bin/ewol-ctl — Symlink to the Lua API
  • Icons:

    • Uses OpenWrt's standard LuCI status icons (e.g. /luci-static/resources/icons/port_up.png for "Online")

How to remove it:

rm -rf /www/ewol/
rm /www/cgi-bin/ewol-ctl

Settings and Customization

  • Theme:
    • Click the “Dark mode” toggle — your choice is remembered locally.
  • Font size:
    • Use A+ / A- buttons to zoom text — preference is remembered.
  • Device list:
    • Edit /www/ewol/devices.json in-place. Format is simple JSON.
  • LAN only by default:
    • To allow public/WAN access, set ALLOW_PUBLIC=1 in /www/ewol/api.lua.

FAQ

  • Q: Why does Wake just show a green check, not a status?
    A: Wake-on-LAN is "fire and forget". The UI shows "Sent!" (✔) to confirm the packet was sent, but only "Check" button actually pings the device.

  • Q: Can I use this outside my LAN?
    A: By default, WAN is blocked. If you know what you're doing, set ALLOW_PUBLIC=1 (see above), but be careful, there's no auth implemented.

  • Q: Does this work on any OpenWrt device?
    A: Yes! As long as you have LuCI (for Lua and icons), etherwake, and standard ping.


Credits


License

MIT — free as in freedom.

Description
enhanced WOL (Wake on LAN) UI for OpenWRT / GL.iNet devices
Readme MIT 94 KiB
Languages
Shell 100%