Wake Your Machines From Anywhere, Without the Cloud
Wake-on-LAN is a networking standard that lets you power on a computer remotely by sending a “magic packet” to its network interface. The concept has existed for decades, but most implementations still rely on clunky command-line tools, third-party apps with questionable data practices, or consumer routers with buried menu options. Upsnap changes that equation by wrapping Wake-on-LAN functionality into a clean, self-hosted web interface you can run on any machine that supports Docker.
If you manage a home lab, a small office, or even a handful of personal machines you’d rather not leave running 24/7, Upsnap gives you a dashboard where every device is a button click away from powering on. You can organize devices, assign them friendly names, add individual services to monitor per device, and schedule automatic wake events on a cron-like timer. All of it stays on your network, under your control.
No account required. No cloud relay. No subscription.

What You Need Before You Start
Before deploying Upsnap, your target machines need Wake-on-LAN enabled at the BIOS or UEFI level. This setting is usually labeled “Wake on LAN,” “Power On by PCI-E,” or something similar depending on your motherboard manufacturer. Once enabled in firmware, the operating system also needs to allow it – on Linux, ethtool handles this, and on Windows, the network adapter’s power management settings must permit the device to wake the computer. If you skip either step, the magic packet will arrive and nothing will happen.
Your network setup matters too. Wake-on-LAN traditionally works within the same broadcast domain, meaning the machine sending the packet and the machine receiving it must be on the same subnet. If Upsnap runs on a different VLAN or subnet than your target machines, you’ll need a router or switch capable of forwarding directed broadcasts, or you can configure Upsnap to send packets through a specific interface or broadcast address. Most home lab setups on a flat network won’t encounter this issue, but it’s worth verifying before assuming the tool is broken.
For the host running Upsnap, you need Docker and Docker Compose installed. The container is lightweight – it runs PocketBase as its backend database, so there’s no external database to configure or maintain. A Raspberry Pi, an old NUC, or any always-on Linux server will work. The machine running Upsnap must stay powered on, since you need it available to send the wake packets to your other devices.

Deploying Upsnap With Docker Compose
Create a directory for the project and add a docker-compose.yml file. The configuration is minimal. You define the image, map port 8090 to expose the web interface, and mount a volume so PocketBase persists its data between container restarts. The key environment variable is UPSNAP_SCAN_RANGE, which tells Upsnap which IP range to scan when you want it to auto-discover devices on your network. Set this to your local subnet in CIDR notation, such as 192.168.1.0/24.
The full compose block looks like this:
- image: ghcr.io/seriousm4x/upsnap:4
- network_mode: host (required for sending broadcast packets)
- volumes: ./data:/app/pb_data
- environment: UPSNAP_SCAN_RANGE=192.168.1.0/24
- restart: unless-stopped
Using network_mode: host is not negotiable here. Without it, the container’s network stack is isolated, and broadcast packets cannot reach other devices on your LAN. Once the file is saved, run docker compose up -d and give it a few seconds to initialize. Navigate to http://your-server-ip:8090 and you’ll be prompted to create an admin account for the PocketBase backend. After that, the Upsnap dashboard loads and you’re ready to add devices.
Adding Devices and Setting Up Wake Schedules
Adding a device manually takes about thirty seconds. Click the plus button, enter a name, the device’s IP address, its MAC address, and optionally select its network interface if your host has multiple. Upsnap stores all of this in PocketBase and displays each device as a card on the main dashboard. From there, a single click sends the magic packet. If your network and BIOS settings are correct, the machine will begin booting within a few seconds.
The network scan feature – driven by that UPSNAP_SCAN_RANGE variable you set earlier – can populate devices automatically. Upsnap pings the range, resolves hostnames where possible, and presents a list of discovered hosts you can import. It won’t always capture MAC addresses for every device from a remote scan due to ARP table limitations, so you may still need to enter those manually. Check your router’s ARP table or run arp -a on a machine that has recently communicated with the target device to find the right MAC address.
Wake schedules are handled through a cron-style interface built into the dashboard. You can set a device to wake at 8:00 AM on weekdays, for example, so a workstation or NAS is already booted by the time you sit down. Each device also supports adding monitored services – these are just port checks (HTTP, SSH, or any TCP port you define) that display as status indicators on the dashboard card. This means Upsnap doubles as a lightweight availability monitor, showing you at a glance whether a device is not just powered on but actually responding on the ports that matter to you.

Locking It Down and Accessing It Remotely
Out of the box, Upsnap has no authentication on the main dashboard – only the PocketBase admin panel at /\_ requires a login. If this instance is only accessible on your local network, that might be acceptable. If you plan to expose it externally through a reverse proxy like Nginx Proxy Manager or Caddy, add HTTP basic authentication at the proxy layer or restrict access by IP. Leaving an unauthenticated wake-on-LAN interface open to the public internet is an obvious problem – anyone who finds it can start powering on your machines at will. Upsnap’s GitHub repository notes that built-in user authentication is on the roadmap, but for current releases, the proxy approach is the practical answer. For anyone already running a self-hosted stack – the kind you’d manage alongside tools like a self-hosted feed reader or other local dashboards – dropping Upsnap behind an existing authenticated reverse proxy takes under five minutes and closes that exposure entirely.
Upsnap won’t magically solve subnet routing issues or fix a misconfigured BIOS, but for any flat home network or simple lab environment, it delivers exactly what it promises: a fast, browser-based way to wake machines without touching a terminal or trusting a third-party service with your network layout.





