Quick start
Get VAC running on a fresh VPS and ship your first app in about fifteen minutes.
You'll need a small Linux box, a domain pointed at it, and a Git repository to deploy.
Before you begin
Make sure you have:
- A Linux VPS with at least 2 vCPU and 4 GB RAM (Debian 12 / Ubuntu 22.04+ recommended)
- Root or sudo access
- A domain or subdomain with an A record pointing at the box
- Docker Engine 24+ already installed (VAC will check)
VAC is designed for a single machine. Multi-node support is on the V4 roadmap — for now, the control plane and your apps live on the same host.
Install the VAC control plane
SSH into your VPS and run the installer. It pulls the latest vac-stack compose file, generates a config, and brings the four containers up.
curl -sSL get.vac.sh | shIf you'd rather pin a version or audit the script first, see Installation → Manual install.
Point a domain at the dashboard
VAC ships with a built-in reverse proxy (Caddy) that handles HTTPS. Pick a subdomain for the dashboard and add an A record:
vac IN A 203.0.113.42
*.svc IN A 203.0.113.42 # wildcard for your appsWithin a minute or two Caddy will request a certificate from Let's Encrypt. The first dashboard load may take a few seconds while the cert is issued.
Connect your first repository
Open the dashboard, click New app, and paste a Git URL. VAC supports plain HTTPS, SSH (with a deploy key), and GitHub/GitLab tokens.
Or, do it from the CLI:
vac login vac apps create checkout-api --repo :you/checkout-api.git --branch main --domain api.svc.ioAdd the webhook URL to your repo's Webhooks settings — every push to main will trigger a deploy.
Push to deploy
That's it. From your project directory:
git push origin mainYour app is reachable, terminated with a valid HTTPS cert, and restarting itself on crash. Logs are streaming into the dashboard at /apps/checkout-api/logs.
What's next
Environment variables & secrets
Inject runtime config without rebuilding the image.
Custom domains
Point a bare domain at your app and let Caddy do the rest.
Backups
Automate daily snapshots of the VAC state and shared Postgres.
CLI commands
The full vac command surface — apps, env, logs, exec.