GitHub Repository | Report an Issue | Documentation
A Centralized Wake-on-LAN (WoL) Orchestration Platform
PowerBeacon is a self-hosted Wake-on-LAN orchestration platform built around three layers: a FastAPI backend, a React frontend, and one or more Go agents that run close to the target LAN.
- Clusters group related devices and agents.
- Devices belong to zero or one cluster.
- Devices can be associated with multiple agents.
- A wake request fans out through every associated online agent for the target device.
- Cluster detail pages allow waking one device or the whole cluster.
- Cluster management for organizing devices and agents
- Multi-agent Wake-on-LAN delivery for individual devices
- Cluster-level wake orchestration
- Agent registration, heartbeat tracking, and cluster visibility
- Local auth and OIDC authentication
- Responsive UI for devices, clusters, agents, users, and settings
Frontend -> Backend API -> PowerBeacon Agent -> LAN broadcast -> Target device
The backend stays the control plane. It never sends magic packets directly; all WOL traffic is dispatched through registered agents.
docker compose up -ddocker compose -f docker-compose.dev.yml up -dBackend:
cd backend
uv run fastapi run dev main.pyFrontend:
cd frontend
npm install
npm run devAgent:
cd agent
make deps
make runThe schema has been refactored directly for the current development phase. If you still have a database from the older single-agent device model, reset it before starting this version of the app.
- Dedicated image:
kotsiossp97/powerbeacon-agent - Multi-architecture support:
linux/amd64andlinux/arm64 - Built and published by the dedicated GitHub Actions workflow in
.github/workflows/agent-image.yml - On tag pushes, the workflow builds the agent image only when there are changes under
agent/
POST /api/auth/loginGET /api/devicesandPOST /api/devices/{id}/wakeGET /api/clusters,GET /api/clusters/{id}, andPOST /api/clusters/{id}/wakeGET /api/agents,POST /api/agents/register, andPOST /api/agents/heartbeat
When a device is woken, PowerBeacon resolves every agent associated with that device and attempts dispatch through all online agents. This improves reliability when the same machine can be reached from multiple relay hosts or overlapping network segments.
- Interactive API docs:
http://localhost:8000/api/docs - Project docs: PowerBeacon Documentation
MIT