# UpSnap — Self-Hosted Wake-on-LAN Web Dashboard > A simple, self-hosted Wake-on-LAN web application built with SvelteKit and Go that lets you power on, monitor, and manage networked devices from a clean dashboard. ## Install Save as a script file and run: # UpSnap — Self-Hosted Wake-on-LAN Web Dashboard ## Quick Use ```bash docker run -d --network host -v upsnap_data:/app/pb_data ghcr.io/seriousm4x/upsnap:latest # Open http://localhost:8090 ``` ## Introduction UpSnap is a lightweight web application for managing Wake-on-LAN devices on your network. It provides a clean dashboard to add devices, send magic packets to power them on, and monitor their online status in real time — replacing manual WoL scripts with a visual interface. ## What UpSnap Does - Sends Wake-on-LAN magic packets to power on devices from a web interface - Monitors device availability via ping with configurable intervals - Displays a dashboard with real-time online/offline status for all devices - Supports scheduled wake and shutdown commands via cron expressions - Provides user authentication and device grouping for multi-user environments ## Architecture Overview UpSnap is a single binary combining a Go backend built on PocketBase with a SvelteKit frontend. PocketBase handles data storage (SQLite), authentication, and the REST API. The backend sends WoL magic packets via raw UDP sockets and pings devices using ICMP. The frontend communicates via Server-Sent Events for real-time status updates. ## Self-Hosting & Configuration - Deploy with Docker using `--network host` for direct network access (required for WoL broadcast) - Alternatively, download the single binary from GitHub releases and run directly - Add devices via the web UI: specify MAC address, IP, netmask, and optional port - Configure ping intervals, wake schedules, and shutdown commands per device - Set up users and permissions through the PocketBase admin panel at `/admin` ## Key Features - Single-binary deployment with embedded SQLite — no external database needed - Real-time device status via Server-Sent Events without page refresh - Scheduled wake and shutdown with cron syntax for automated power management - Dark mode, device grouping, and custom port support - REST API for integration with Home Assistant or other automation tools ## Comparison with Similar Tools - **Uptime Kuma** — Focused on service uptime monitoring with alerts; does not send WoL packets - **Home Assistant** — Full home automation with WoL integration; much larger scope and complexity - **etherwake / wol CLI** — Command-line WoL tools; no dashboard or scheduling - **OpenWRT WoL** — Router-based WoL; limited to devices on the router's subnet - **WoL Web** — Minimal PHP-based WoL page; less polished, no real-time status ## FAQ **Q: Does UpSnap work across subnets?** A: WoL broadcasts are limited to the local subnet by default. For cross-subnet WoL, configure directed broadcasts on your router or use UpSnap on each subnet. **Q: Can I shut down devices remotely?** A: Yes. Configure a shutdown command per device (e.g., SSH command) that UpSnap executes when you click the power-off button. **Q: Does it support secure Wake-on-LAN (SecureON)?** A: Yes. You can specify a SecureON password per device for NICs that require it. **Q: What permissions does UpSnap need?** A: It needs raw socket access for ICMP ping and UDP broadcast. On Docker, use `--network host`. On bare metal, run as root or grant `CAP_NET_RAW`. ## Sources - https://github.com/seriousm4x/UpSnap --- Source: https://tokrepo.com/en/workflows/asset-12f28c8d Author: Script Depot