Skip to content

muchiny/wsl-dashboard

Repository files navigation

🚀 WSL Nexus

Your all-in-one desktop dashboard for WSL2 management

Tauri v2 React 19 Rust 1.93 TypeScript 5.9 License MIT


✨ Features

🖥️ Distributions — Start, stop, restart WSL distros at a glance 📸 Snapshots — Backup & restore (tar / vhdx) 📊 Monitoring — Live CPU, RAM, disk, network charts + processes + alerts 💻 Terminal — Interactive WSL shell via xterm 🔀 Port Forwarding — WSL → Windows port mapping ⚙️ Configuration.wslconfig editor + VHDX compaction 📋 Audit Log — Full action traceability 🐛 Debug Console — Real-time log viewer (Ctrl+Shift+D) 🌍 i18n — EN · ES · FR · ZH 🎨 Theming — Catppuccin Mocha 🌙 / Latte ☀️


🏗️ Architecture

graph TB
    subgraph FE["🖼️ Frontend — React 19 + TypeScript 5.9"]
        direction LR
        P["📄 Pages<br/><small>3 routes</small>"]
        F["🧩 Features<br/><small>8 slices</small>"]
        W["🔲 Widgets"]
        S["📦 Shared"]
        P --> F
        P --> W
        F --> S
        W --> S
    end

    subgraph BE["⚙️ Backend — Rust 1.93 + Tauri v2"]
        direction LR
        PR["🎯 Presentation<br/><small>29 commands</small>"]
        AP["📋 Application<br/><small>CQRS</small>"]
        DO["💎 Domain<br/><small>8 ports</small>"]
        IN["🔌 Infrastructure<br/><small>9 adapters</small>"]
        PR --> AP --> DO
        IN -.->|implements| DO
    end

    FE <-->|"⚡ Tauri IPC"| BE

    IN --> WSL["🪟 wsl.exe"]
    IN --> DB["🗄️ SQLite"]
    IN --> PROC["📊 /proc"]
    IN --> NET["🌐 netsh"]
Loading

🚦 Getting Started

flowchart LR
    A["🔧 <b>Prerequisites</b><br/>Windows 10/11 + WSL2<br/>Rust 1.93 · Node ≥ 18"]
    B["📥 <b>Clone & Install</b><br/>git clone + npm install"]
    C["🚀 <b>Dev Mode</b><br/>npm run tauri dev"]
    D["🧪 <b>Test</b><br/>npm test + cargo test"]
    E["📦 <b>Build</b><br/>npm run tauri build"]

    A --> B --> C --> D --> E

    style A fill:#313244,stroke:#89b4fa,color:#cdd6f4
    style B fill:#313244,stroke:#a6e3a1,color:#cdd6f4
    style C fill:#313244,stroke:#f9e2af,color:#cdd6f4
    style D fill:#313244,stroke:#cba6f7,color:#cdd6f4
    style E fill:#313244,stroke:#f38ba8,color:#cdd6f4
Loading
git clone https://github.com/muchini/wsl-nexus.git && cd wsl-nexus
npm install           # 📦 Frontend deps (Cargo handles Rust)
npm run tauri dev     # 🚀 Launch with hot-reload

🧪 Tests

Layer Command Count
🖼️ Frontend npm run test 383 (40 files)
🦀 Backend cd src-tauri && cargo test ~140

🔄 CI/CD — GitHub Actions runs lint + format + clippy + tests on every push. Tags v* build a Windows installer (.msi / .exe).


📂 Structure

wsl-nexus/
├── 🦀 src-tauri/               # Rust backend (Hexagonal + CQRS)
│   ├── 💎 domain/              # Entities, value objects, ports
│   ├── 📋 application/         # CQRS handlers, DTOs
│   ├── 🔌 infrastructure/      # WSL CLI, SQLite, ProcFS, PTY, netsh
│   └── 🎯 presentation/        # Tauri commands, AppState
│
└── 🖼️ src/                     # React frontend (Feature-Sliced Design)
    ├── 🧩 features/            # 8 feature slices + 1 hook
    ├── 📄 pages/               # Distributions · Monitoring · Settings
    ├── 🔲 widgets/             # Header + Debug Console
    └── 📦 shared/              # API, hooks, stores, UI

📚 Docs

Every directory has its own detailed README — dive in!

Layer Link
🦀 Backend overview src-tauri/
💎 Domain domain/
📋 Application application/
🔌 Infrastructure infrastructure/
🎯 Presentation presentation/
🖼️ Frontend overview src/
🧩 Features features/
📦 Shared shared/
📄 Pages pages/
🔲 Widgets widgets/

📜 License

MIT

About

Advanced WSL2 management dashboard - Tauri v2 + React + Hexagonal Architecture

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors