⚙️ RUST CLI SYSTEM

Atomic deployments shouldn't cost a SaaS subscription.

VST manages your releases with symlinks, not magic. Because a VPS is better than "Free" (until they change the TOS).

// A Rust CLI for deploying static/Nuxt sites on private servers (Ubuntu + Nginx). No remote agents, no proprietary lock-in. Just SSH, immutable release directories, and instant rollbacks.
> VIEW_DOCUMENTATION > VIEW_GITHUB_REPO

> CORE_FEATURES

01. Atomic Releases

RELEASES/ 1715849000 1715850000 1715852000 ← NEW OLD_LINK SWAP_POINTER CURRENT (Symlink) NGINX

[01] ARCHITECTURE

VST utilizes an immutable release pattern. Each deployment is packaged locally and pushed to a timestamped folder on your VPS. The active `current` symlink is instantly repointed only after successful file transfer.

[02] ZERO DOWNTIME

Nginx serves reads out of the symlink. Changing the symlink is an atomic filesystem operation. The result? Your users experience absolutely zero downtime during mid-deployment without any complex container orchestration.

[03] INSTANT ROLLBACK

Bad release? Fix it in less than a second. Since the old directories are kept around (based on your `--keep` flag), rolling back is just moving a symlink back to a previous timestamp.

COMMAND : vst rollback --domain example.com
SPEED : Choose a release, type enter

02. SSH-First Orchestration

LOCAL_MACHINE > VST_BINARY (Rust) Validates config locally SSH TUNNEL EXIT_CODES REMOTE_VPS (Ubuntu) sudo mkdir -p /var/www tar -xzf release.tar.gz nginx -t && reload

[01] AGENTLESS DESIGN

Why install heavy memory-hogging agents on a 1GB RAM VPS? VST operates entirely client-side, executing standard, predictable shell instructions over SSH. Your server runs exactly what is required to serve the web, and nothing more.

[02] IDEMPOTENT EXECUTION

The tool abstracts repetitive linux administration logic. Nginx configuration blocks, SSL renewals mapping, permissions, and directory trees are managed consistently and idempotently through the CLI.

[03] CI/CD COMPATIBLE

Since VST handles connection retries and produces clean, machine-readable JSON flags, integrating deployments into GitHub Actions or GitLab CI is trivial.

PIPELINE: Build Locally -> Execute `vst deploy` over SSH

03. System Diagnostics

$ vst doctor --json { "schema_version": "1.0", "status": "success", "profile": "default", "checks": { "ssh_connection": "OK", "sudo_access": "OK", "nginx_syntax": "OK", "disk_space": "42% FREE" } }

[01] DIAGNOSTIC COMMAND

Don't wait for a deployment to fail to realize the disk is full or someone edited the nginx config with a syntax error. The `doctor` command runs a suite of remote diagnostic preflights to ensure the target is healthy.

[02] JSON EXPORTS

Practically every command supports a `--json` output flag. You can write your own bash scripts or CI rules directly against VST's output, giving you professional observability primitives on a budget.

> QUICKSTART

bash - new-project
# Download and run binary (assumes Cargo)
$ cargo build --release
# Initializes config interactively
$ vst init
# Prepare sudoers + ACL on remote VPS
$ vst setup-server
# Create Nginx Config and Certbot SSL certificates
$ vst add my-domain.com --site-type plain
# Zip folder, send over SSH, set symlink, reload Nginx
$ vst deploy --domain my-domain.com ./dist
$ _