V1.0 · NOW IN PUBLIC BETA

Boot your fleet from anywhere on earth.

Wake on WAN lets you power on any machine — desktop, homelab rack, office workstation — from your phone, a shell, or a cron job. Sub-second wakes, live fleet state, zero router surgery.

No port forwarding
Works on any LAN
macOS · Linux · Windows
642ms
Median wake · p50
0×
Router changes needed
99.98%
Control-plane uptime
12k+
Machines waking monthly
§ 01 · How it works

Three parts. One packet.

A tiny agent on your LAN. A control plane you talk to from anywhere. A magic packet that lands on your sleeping machine in under a second.

STEP 01

Drop the agent on your LAN

One binary, any always-on device. Raspberry Pi, NAS, router — it sips <6 MB RAM and opens a single outbound connection to the control plane.

agent · outbound-only · mTLS
STEP 02
RPC

Connect from anywhere

Phone, laptop, CI runner, shell script. Each client opens a persistent RPC channel to the control plane and subscribes to the hosts it cares about.

client ↔ control plane · bidir RPC · livequeries
STEP 03

Wake in milliseconds

Send a wake RPC. The agent on the target LAN broadcasts the magic packet. Live-state updates stream back so you see the host come up in real time.

rpc.wake() → magic packet · livequery updates
§ 02 · Features

Everything the homelab deserved.

Built by people who got tired of yak-shaving router configs every time they wanted to wake a machine.

No port forwarding

The agent makes an outbound mTLS connection. Your router stays untouched. ISPs with CGNAT? Works the same.

Live fleet state

Livequeries push every host transition — asleep, waking, online, dropped — to your dashboard as it happens. No polling.

Full-featured CLI

Script it. Cron it. Pipe it. wowan wake, wowan watch, wowan sleep. JSON output everywhere.

iOS + Android apps

Tap to wake. Widget on your home screen. Fingerprint-gated. One swipe from lock screen to a booted workstation 400 miles away.

Scheduled wakes

"Boot the build server at 07:00 weekdays." Cron syntax, timezone-aware, retries on failure, never misses a wake.

Teams & roles

Share a fleet with colleagues. RBAC per host, audit log per wake, SSO when you grow up.

Webhooks & API

React to state changes. Trigger a CI job when the build box comes online. Zapier, n8n, whatever — we publish events.

Works with ancient hardware

If your NIC speaks WoL (and it does — it's been standard since 1998), Wake on WAN will boot it. No driver games.

Self-hostable agent

The agent is a single Go binary. Source-available. Audit it, pin it, run it in an air-gapped lab if you must.

§ 03 · Terminal-first

A CLI that doesn't get in your way.

Every workflow starts with a flag, ends with JSON. Designed to be piped, cronned, and scripted into oblivion.

▸ WAKE A SINGLE HOST
$ wowan wake lab-desktop
✓ magic packet sent 12ms
✓ host online 640ms
▸ WAKE A WHOLE TAG
$ wowan wake --tag=build --parallel
✓ ci-runner-01 588ms
✓ ci-runner-02 610ms
✓ ci-runner-03 702ms
▸ LIVE-STREAM FLEET STATE
$ wowan watch --tag=homelab
nas-01 online uptime 47d
media-pc asleep 22m ago
gpu-rig waking → online
▸ JSON FOR YOUR SCRIPTS
$ wowan list --json | jq .[].name
"lab-desktop"
"ci-runner-01"
"nas-01"
§ 04 · Who uses it

From one Pi in a closet to fleets of 200.

Built for the homelab, taken seriously by the office.

01 · HOMELAB

The 3am SSH

Your GPU rig lives under the stairs. You live abroad. It's asleep 23h a day. One tap on your phone and it's ready when you SSH in.

↳ 78% of our users
02 · REMOTE DEV

Workstation on demand

Your work desktop has the 128 GB RAM and the GPUs. You're on your MacBook at a café. Wake it, mosh in, close laptop when done.

↳ 60% cheaper than cloud GPU
03 · SMALL OFFICE

Green IT, actually

Fleet of 40 desks. Half in on any given day. Schedule wake-on-arrival, sleep-on-idle. Power bill drops, morning queues don't.

↳ avg 41% power saved
04 · CI / CD

Build farms on a budget

Self-hosted runners don't need to idle. Wake-on-webhook from your git provider, run the job, sleep. Scale to zero, literally.

↳ webhooks + runner hooks
§ 05 · Under the hood

Honest engineering. No magic.

We don't use WireGuard, overlay networks, or any of the usual suspects. A live database speaks RPC. Agents subscribe. It's simpler than you think.

01 · CLIENT

You

cli · app · web · webhook

02 · CONTROL PLANE

SurrealDB

livequeries + rpc
fleet state · auth · audit

03 · AGENT

Your LAN

outbound mTLS
subscribes to wake rpc

04 · TARGET

Your machine

WoL magic packet
broadcast · unicast · directed

Bidirectional RPC over a single persistent WebSocket
SurrealDB livequeries push state deltas as they happen
No inbound ports, no VPN, no NAT traversal tricks
Agent is a 6 MB Go binary, source-available
§ 06 · In the wild

Running in closets, racks, and server rooms.

I deleted four hundred lines of ansible that existed solely to configure Wake-on-LAN on our runner fleet. This replaced all of it with one binary.
MH
Marta H.
PLATFORM · SERIES-B SAAS
The livequery thing is underrated. I can see my NAS come up in real time from a train. It feels like magic but it's just a database doing its job.
DR
Denis R.
HOMELAB · r/selfhosted
We're a 30-person design studio. Before wowan, the first person in made coffee and then watched 40 desks boot in a queue. Now they're ready by 8:55. Small joy, huge.
KT
Kenji T.
IT · DESIGN STUDIO TOKYO
§ 07 · Pricing

Free for a single Pi. Fair for a fleet.

Pay for the work you're doing, not the seats you're not.

HOBBY
$0/ forever
For the Raspberry Pi under your desk. No card, no ads.
  • Up to 3 hosts
  • 1 agent
  • CLI + web + mobile apps
  • Community Discord
  • Webhooks
  • Team features
Start free
TEAM
$24/ user / mo
For small offices, studios, and engineering teams.
  • Unlimited hosts & agents
  • RBAC + SSO (SAML, Google)
  • 1-year audit log
  • SLA + priority support
  • Invoicing + SOC2 report
  • Everything in Pro
Talk to us
§ 08 · FAQ

Before you ask.

Do I need to forward any ports on my router?
No. The agent makes a single outbound mTLS connection to the control plane — the same kind of connection your browser makes when loading this page. Works behind CGNAT, double NAT, IPv6-only, and every other network weirdness we've tested.
How is this different from Tailscale or ZeroTier?
Those are general-purpose mesh VPNs — great products for a different problem. Wake on WAN is purpose-built for one job: getting a magic packet onto your LAN in milliseconds. No overlay network, no new IP range to manage. Just wowan wake.
What does the architecture actually look like?
A persistent RPC channel over WebSocket connects clients and agents to a SurrealDB control plane. Livequeries push state deltas (asleepwakingonline) to every subscribed client in real time. When you call rpc.wake(), the agent on the target LAN broadcasts the magic packet. It's a database doing its job.
Does it work with my crusty 2011 ThinkPad?
Almost certainly yes. Wake-on-LAN has been a standard NIC feature since 1998. You just need to enable it in BIOS/UEFI and the OS (ethtool -s eth0 wol g on Linux, checkbox in Device Manager on Windows). We document the setup for every common OS.
Is it open source?
The agent is source-available on GitHub — you can read it, audit it, build it yourself. The control plane is closed-source and hosted by us (that's the product). For teams that need to run everything on-prem, the Team tier ships a self-hosted control plane binary.
What happens if the control plane goes down?
Agents cache their host registry locally and retry. Active livequery subscriptions reconnect automatically when the plane comes back. We run multi-region with 99.98% uptime — but no status page is ever more honest than your agent's reconnect loop.
Can I trigger wakes from a script or CI job?
That's the point. wowan wake HOST, or hit POST /v1/hosts/HOST/wake. Personal API tokens for humans, service tokens for CI, webhook-triggered wakes for git providers. All documented, all rate-limited, all audited.

Your machines are asleep.
Let's fix that.

Free forever for your first three hosts. 14 days of Pro, no card.