1
0
Fork 0
mirror of https://github.com/coko7/tuiss.git synced 2026-09-17 11:15:38 +00:00
🌐 TUI for managing IIS sites via appcmd, built in Rust with ratatui
Find a file
2026-08-04 17:54:26 +02:00
src build: initialize dependencies for tui application 2026-08-04 17:44:13 +02:00
.gitignore feat: init tuiss project 2026-08-04 17:44:13 +02:00
Cargo.lock build: initialize dependencies for tui application 2026-08-04 17:44:13 +02:00
Cargo.toml build: initialize dependencies for tui application 2026-08-04 17:44:13 +02:00
CLAUDE.md feat: init tuiss project 2026-08-04 17:44:13 +02:00
LICENSE Initial commit 2026-08-04 17:43:35 +02:00
README.md docs: update README 2026-08-04 17:54:26 +02:00

🌐 tuiss

TUI for managing Windows IIS via appcmd.exe, built in Rust with ratatui + tokio.

Wraps appcmd.exe so you get list/start/stop/recycle for Sites and Application Pools without memorizing appcmd flags.

Status

MVP. Sites + Application Pools only. Applications, virtual dirs, config editing not yet done.

Build & run

cargo build
cargo run                # real appcmd.exe backend, Windows only
cargo run -- --mock      # fake in-memory backend, any OS
cargo check
cargo test
cargo clippy
cargo fmt

--appcmd-path <path> overrides appcmd.exe location (default C:\Windows\System32\inetsrv\appcmd.exe).

On non-Windows, backend always falls back to mock regardless of flags (no appcmd.exe to shell out to).

Keybindings

Key Action
/k, /j move selection
Tab, 1/2 switch panel (Sites / App Pools)
s start selected
x stop selected
r recycle selected (App Pools only)
R, F5 refresh
q, Esc quit

Architecture

  • IisBackend trait, two impls: MockBackend (any OS, in-memory fake data) and AppcmdBackend (Windows only, shells out to appcmd.exe, parses /xml output).
  • Async via tokio: commands run in spawned tasks, results flow back to UI through an Action mpsc channel — UI thread never blocks.
  • appcmd.exe XML attribute names in src/backend/appcmd.rs unverified against real IIS install — flag issues if output parsing breaks.