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
- Rust 100%
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| LICENSE | ||
| README.md | ||
🌐 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
IisBackendtrait, two impls:MockBackend(any OS, in-memory fake data) andAppcmdBackend(Windows only, shells out toappcmd.exe, parses/xmloutput).- Async via tokio: commands run in spawned tasks, results flow back to UI through an
Actionmpsc channel — UI thread never blocks. appcmd.exeXML attribute names insrc/backend/appcmd.rsunverified against real IIS install — flag issues if output parsing breaks.