vst (Virtual Site Tool) is a Rust CLI to manage static/Nuxt deployments on VPS servers (Ubuntu + Nginx) with an atomic release workflow.
It is built as:
- a practical tool for day-to-day solo usage
- an open-source project with professional engineering signals
- a portfolio project that demonstrates reliable CLI architecture in Rust
- Atomic deployments:
current -> releases/<timestamp> - Fast rollback workflow
- SSH-first remote orchestration
- Structured diagnostics (
doctor) and machine-readable JSON output - Strict quality gates in CI (
fmt,clippy -D warnings,test)
cargo build --release./target/release/vst init./target/release/vst setup-server --profile default./target/release/vst deploy --domain example.com ./dist./target/release/vst releases --domain example.com --json
./target/release/vst rollback --domain example.com --to 1715850000cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo testsrc/main.rs: CLI parsing + dispatch + global runtime flagssrc/commands/: command implementationssrc/server/ssh.rs: SSH transport and retry behaviorsrc/validation.rs: input and preflight validation
- Better observability around deployment timings
- Optional hooks after deployment
- Multi-profile improvements for staging/production parity
MIT. See LICENSE.