Scripts2026年5月6日·1 分钟阅读

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.

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

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产