A web-based application for managing Wake-on-LAN (WoL) devices
  • TypeScript 85%
  • Nix 15%
Find a file
2026-01-01 11:49:44 +09:00
app Initial commit 2026-01-01 11:49:44 +09:00
nix Initial commit 2026-01-01 11:49:44 +09:00
.gitignore Initial commit 2026-01-01 11:49:44 +09:00
flake.lock Initial commit 2026-01-01 11:49:44 +09:00
flake.nix Initial commit 2026-01-01 11:49:44 +09:00
LICENSE Initial commit 2026-01-01 11:49:44 +09:00
package-lock.json Initial commit 2026-01-01 11:49:44 +09:00
package.json Initial commit 2026-01-01 11:49:44 +09:00
README.md Initial commit 2026-01-01 11:49:44 +09:00
tsconfig.json Initial commit 2026-01-01 11:49:44 +09:00
vite.config.ts Initial commit 2026-01-01 11:49:44 +09:00
vitest.config.ts Initial commit 2026-01-01 11:49:44 +09:00

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)

License

Apache License 2.0