1
0
Fork
You've already forked jump_rs
0
Wake-on-LAN web application
  • TypeScript 53.6%
  • Rust 33.1%
  • CSS 12.2%
  • Dockerfile 0.5%
  • JavaScript 0.4%
  • Other 0.2%
2026年02月12日 16:31:19 +01:00
.cargo feat: add cargo command aliases for emitting and generating openapi specs 2026年01月29日 19:14:03 +01:00
.github/workflows fix: remove tag trigger from test workflow 2026年01月30日 16:06:51 +01:00
.zed refactor: improve code quality 2026年02月06日 03:38:32 +01:00
frontend feat: remove tanstack-query plugin 2026年02月05日 23:34:12 +01:00
src refactor: project structure 2026年02月12日 16:31:19 +01:00
.dockerignore feat: update .dockerignore 2026年01月29日 17:24:03 +01:00
.gitignore feat: add cargo command aliases for emitting and generating openapi specs 2026年01月29日 19:14:03 +01:00
Cargo.lock refactor: project structure 2026年02月12日 16:31:19 +01:00
Cargo.toml refactor: project structure 2026年02月12日 16:31:19 +01:00
config.toml.example opentelemetry 2026年01月25日 14:34:40 +01:00
docker-compose.local.yml update compose files 2026年01月26日 21:16:58 +01:00
docker-compose.yml update compose files 2026年01月26日 21:16:58 +01:00
Dockerfile fix: add to rust-builder for utoipa-swagger-ui 2026年01月29日 20:28:55 +01:00
LICENSE Add MIT License to the project 2026年01月26日 21:03:30 +01:00
README.md docs: expand readme with openapi spec generation 2026年01月29日 19:19:09 +01:00

Jumpers

A simple Wake-on-LAN (WoL) web server built with Rust and Axum.

Features

  • Wake devices on your network via HTTP API
  • Web-based frontend interface
  • JSON-based device storage
  • Configurable via file or environment variables
  • Optional OpenTelemetry tracing support
  • Docker support included

Quick Start

  1. Copy the example configuration:
cp config.toml.example config.toml
  1. Run the server:
cargo run
  1. Access the web interface at http://localhost:3000

Configuration

Configuration can be provided via config.toml or environment variables with the JUMPERS_ prefix.

Example environment variables:

JUMPERS_SERVER_PORT=8080
JUMPERS_SERVER_LOG_LEVEL=debug
JUMPERS_STORAGE_FILE_PATH=/data/devices.json

See config.toml.example for all available options.

Docker

Run with Docker Compose:

docker compose up

Networking Requirements

The Docker setup requires special networking configuration for Wake-on-LAN to function properly:

  • Host Network Mode: The container uses network_mode: host to access the local network directly. This is necessary because Wake-on-LAN magic packets must be sent to the broadcast address of your local network.

  • Network Capabilities: The container needs NET_RAW and NET_ADMIN capabilities to:

    • Send raw network packets (Wake-on-LAN magic packets)
    • Perform network operations like MAC address lookups

These settings are already configured in the provided docker-compose.yml file.

Development

Build the project:

cargo build

Run with OpenTelemetry tracing:

cargo run --features otlp

Generate OpenAPI specification:

cargo run -- --gen-openapi

or

cargo run gen-openapi

Generate client for frontend based on OpenAPI specification:

cd frontend && pnpm gen:openapi