Updates & upgrades
Keep the VAC control plane current — and understand what's preserved when you do.
Upgrading VAC means pulling newer images and recreating the three control-plane containers. Your data — and your running apps — come through untouched.
Upgrade with the CLI
The simplest path is the vac host CLI:
vac upgradeThis pulls the latest images and recreates the stack. To move to (or pin) a specific version:
vac upgrade v0.6.0That records the version in /opt/vac/.env (VAC_VERSION) so future vac up / vac upgrade
runs stay on it until you change it.
Or re-run the installer
Re-running the installer is equivalent and also idempotent:
curl -sSL get.vac.vojir.io | sudo shIt detects the existing install, preserves your .env (secrets and config), pulls images, and
recreates the containers.
What's preserved
Upgrades touch the control-plane containers, not your data or your apps.
VAC_MASTER_KEYandVAC_DB_PASSWORD— kept in.env, never regenerated.- All named volumes — the database, cloned repos and build artifacts, and Caddy's certificate store all persist.
- Your apps — user app containers keep running across a control-plane upgrade; recreating
vac-api/vac-proxydoesn't redeploy them.
Version visibility
Check what's pinned versus what's actually running:
vac versionRolling back a version
VAC's app-level rollback is for your
apps. To roll the control plane back, run vac upgrade <older-version> — images are tagged, so
you can pin a previous release. Database migrations run forward on start, so test upgrades on a
throwaway box if you maintain strict change control.