Skip to content

tanguy-pauwels/vst-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vst

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

Why vst

  • 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)

Quickstart

1. Build

cargo build --release

2. Initialize config

./target/release/vst init

3. Bootstrap server permissions

./target/release/vst setup-server --profile default

4. Deploy

./target/release/vst deploy --domain example.com ./dist

5. Inspect and rollback

./target/release/vst releases --domain example.com --json
./target/release/vst rollback --domain example.com --to 1715850000

Quality Gates

cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test

Architecture Snapshot

  • src/main.rs: CLI parsing + dispatch + global runtime flags
  • src/commands/: command implementations
  • src/server/ssh.rs: SSH transport and retry behavior
  • src/validation.rs: input and preflight validation

Roadmap (Short)

  • Better observability around deployment timings
  • Optional hooks after deployment
  • Multi-profile improvements for staging/production parity

License

MIT. See LICENSE.

About

Minimalist CLI for atomic, zero-downtime deployments on your own VPS. The anti-SaaS alternative to Vercel for privacy dictators.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages