This quickstart uses the local KVM fixture lab so you can evaluate Viaduct end to end without a live hypervisor.
The default dashboard path is now WebUI-first and workspace-first: viaduct start, open the browser, create a workspace, discover, inspect, simulate, save a plan, and export a report.
- Go 1.24+
- Node.js 20.19+
makeif you want the convenience targets
make build
make web-build
./bin/viaduct version
./bin/viaduct startOn Windows without make:
go mod tidy
go build -o bin/viaduct.exe ./cmd/viaduct
npm --prefix web ci
npm --prefix web run build
.\bin\viaduct.exe version
.\bin\viaduct.exe startOn a fresh source checkout, viaduct start creates ~/.viaduct/config.yaml if it is missing and points it at examples/lab/kvm. For a persistent pilot environment, configure state_store_dsn and use PostgreSQL instead of the in-memory store.
Open http://127.0.0.1:8080. The local runtime serves the dashboard at / and the API under /api/v1/.
For the default local lab path, the dashboard can use the built-in single-user fallback and does not require a pasted browser key.
If you intentionally configure a tenant key or service-account key, the runtime bootstrap screen remains available:
- preferred service-account key:
lab-operator-key - bootstrap-only tenant key:
lab-tenant-key
The runtime key is kept in session storage by default. Use the remember option only when you intentionally want the browser to keep a local copy across restarts.
For packaged or persistent environments, prefer VITE_VIADUCT_SERVICE_ACCOUNT_KEY over VITE_VIADUCT_API_KEY only when you intentionally pre-seed a development build. The runtime bootstrap is the default operator path.
If you want the Vite development server while editing frontend code:
cd web
npm ci
npm run dev- Create the first pilot workspace from the prefilled lab defaults.
- Run discovery to save workspace snapshots.
- Inspect the workload table and dependency graph.
- Run readiness simulation.
- Save the migration plan.
- Export the pilot report.
The seeded API request body for the same intake is available in examples/lab/pilot-workspace-create.json.
./bin/viaduct status --runtime
./bin/viaduct doctorStop the local runtime when you are done:
./bin/viaduct stop./bin/viaduct discover --type kvm --source examples/lab/kvm --save
./bin/viaduct plan --spec examples/lab/migration-window.yamlThis validates the same local fixture set through the CLI.
- Installation details: installation.md
- Pilot workspace guide: ../operations/pilot-workspace-flow.md
- Configuration reference: ../reference/configuration.md
- Migration operations guide: ../operations/migration-operations.md
- Auth, role, and auditability model: ../operations/auth-role-audit-model.md
- Lab assets: ../../examples/lab/README.md