A web-based application for managing Wake-on-LAN (WoL) devices
- TypeScript 85%
- Nix 15%
| app | ||
| nix | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
Simple WoL Manager
A web-based application for managing Wake-on-LAN (WoL) devices. Provides a clean UI to manage networked devices, wake them up remotely via WoL packets, and check their online status.
Warning
Do Not Expose to the Internet - This application has no authentication or security hardening. It is intended for use on trusted local networks only.
Features
- Device Management - Create, edit, and delete devices with name, MAC address, IP address, and broadcast address
- Wake-on-LAN - Send WoL magic packets to wake devices remotely
- Status Monitoring - Check device online status via ICMP ping with latency display
- Dark/Light Theme - Toggle between themes for comfortable viewing
- NixOS Support - First-class Nix packaging and NixOS module for declarative deployments
Tech Stack
- Frontend: React 19, Mantine 8, React Router 7
- Backend: Node.js with React Router SSR
- Build: Vite, TypeScript
- Testing: Vitest
Installation
Using Nix
This project is hosted at https://git.natsukium.com/natsukium/simple-wol-manager
Quick Run
nix run git+https://git.natsukium.com/natsukium/simple-wol-manager
NixOS Module
{
inputs.simple-wol-manager.url = "git+https://git.natsukium.com/natsukium/simple-wol-manager";
outputs = { self, nixpkgs, simple-wol-manager, ... }: {
nixosConfigurations.your-host = nixpkgs.lib.nixosSystem {
modules = [
simple-wol-manager.nixosModules.default
{
services.simple-wol-manager = {
enable = true;
port = 3939; # default
host = "127.0.0.1"; # default, use "0.0.0.0" for all interfaces
openFirewall = false; # set to true to open firewall
};
}
];
};
};
}
Environment Variables
| Variable | Description | Default |
|---|---|---|
DATA_DIR |
Directory for storing device data | XDG data directory |
PORT |
Server port | 3939 |
HOST |
Server host | 0.0.0.0 |
Development
npm install
npm run dev
Build and Run
npm run build
npm run start
Testing
npm run test # Run tests once
npm run test:watch # Run tests in watch mode
npm run check # Run all checks (test, typecheck, lint, format)