Skip to content

Commit ed34cf8

Browse files
committed
docs(dashboard): align v2.0.0 startup and release surfaces
1 parent 84730c1 commit ed34cf8

32 files changed

+348
-276
lines changed

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,24 @@ This changelog tracks published releases and the major implementation milestones
88

99
- No unreleased changes yet.
1010

11+
## [2.0.0] - 2026-04-11
12+
13+
### Installation, Startup, And First Run
14+
- added `viaduct start`, `viaduct stop`, and `viaduct doctor` so the default local experience is now one WebUI-first runtime instead of a manual multi-step API bootstrap
15+
- taught `viaduct start` to generate the default local lab config automatically when `~/.viaduct/config.yaml` is missing and to point it at the shipped KVM fixtures
16+
- added recorded local runtime status reporting through `viaduct status --runtime`, including the WebUI URL, API URL, PID, and runtime log location
17+
- updated the Unix and Windows install scripts to copy bundled docs, examples, and configs together and to generate a starter config for the installed lab path
18+
19+
### Dashboard, Site, And Product Surfaces
20+
- aligned the dashboard runtime auth flow with the built-in local single-user fallback so the default local lab path no longer requires pasted browser credentials
21+
- synchronized the dashboard, root docs, lab docs, troubleshooting guidance, deployment examples, public site, and release-facing screenshots around the new local startup model
22+
- refreshed the public website and social-card copy to emphasize installation, startup, workspace progression, and controlled operator workflows more clearly
23+
24+
### Verification, Packaging, And Release Readiness
25+
- extended automated CLI coverage with tests around local runtime paths and starter-config generation
26+
- kept `make release-gate`, `make certification-test`, `make plugin-check`, `make contract-check`, and `make package-release-matrix` aligned with the same packaged product surface
27+
- added `v2.0.0` release notes and synchronized visible version markers, screenshot labels, and package metadata around the new release
28+
1129
## [1.9.0] - 2026-04-11
1230

1331
### Install, Packaging, And Startup Flow

INSTALL.md

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Installation
22

3-
This is the top-level installation entrypoint for Viaduct. Use it together with [QUICKSTART.md](QUICKSTART.md) if you want the fastest evaluation path, or see [docs/getting-started/installation.md](docs/getting-started/installation.md) for the deeper walkthrough.
3+
This is the top-level installation entrypoint for Viaduct. Use it with [QUICKSTART.md](QUICKSTART.md) for the fastest browser-first path, or see [docs/getting-started/installation.md](docs/getting-started/installation.md) for the deeper walkthrough.
44

55
## Requirements
66

@@ -20,14 +20,15 @@ make web-build
2020
./bin/viaduct version
2121
```
2222

23-
Start the packaged local operator surface:
23+
Start the local operator runtime:
2424

2525
```bash
26-
export VIADUCT_ADMIN_KEY=change-me
27-
./bin/viaduct serve-api --port 8080
26+
./bin/viaduct start
2827
```
2928

30-
Then open [http://localhost:8080](http://localhost:8080).
29+
On a fresh source checkout, `viaduct start` generates the default local lab config when `~/.viaduct/config.yaml` is missing, serves the built dashboard and API together, and prints the WebUI URL.
30+
31+
The default local URL is [http://127.0.0.1:8080](http://127.0.0.1:8080).
3132

3233
## Install From A Release Bundle
3334

@@ -44,31 +45,40 @@ Release bundles produced by `make package-release-matrix` include:
4445
On POSIX systems:
4546

4647
```bash
47-
PREFIX=/usr/local ./install.sh ./bin/viaduct ./web
48+
PREFIX=/usr/local ./install.sh ./bin/viaduct ./web ./configs ./examples ./docs
4849
```
4950

5051
On Windows PowerShell:
5152

5253
```powershell
53-
.\install.ps1 -SourceBin .\bin\viaduct.exe -SourceWeb .\web -Prefix "$env:LOCALAPPDATA\\Viaduct"
54+
.\install.ps1 -SourceBin .\bin\viaduct.exe -SourceWeb .\web -SourceConfigs .\configs -SourceExamples .\examples -SourceDocs .\docs -Prefix "$env:LOCALAPPDATA\\Viaduct"
5455
```
5556

56-
After install:
57+
Both install scripts copy the CLI, built dashboard assets, docs, configs, and examples into one predictable layout. They also create a starter config that points at the installed lab fixtures when no config already exists at the install location.
58+
59+
After install, start Viaduct with the config path printed by the installer. For example:
5760

5861
```bash
59-
viaduct serve-api --port 8080
62+
viaduct start --config /usr/local/etc/viaduct/config.yaml
63+
```
64+
65+
On Windows, the equivalent installed command is typically:
66+
67+
```powershell
68+
viaduct.exe start --config "$env:LOCALAPPDATA\Viaduct\etc\viaduct\config.yaml"
6069
```
6170

62-
Then open [http://localhost:8080](http://localhost:8080).
71+
The default local URL remains [http://127.0.0.1:8080](http://127.0.0.1:8080).
6372

6473
## Verify The Install
6574

6675
```bash
6776
viaduct version
6877
viaduct --help
78+
viaduct doctor
6979
```
7080

71-
When built dashboard assets are present, the same `viaduct serve-api` process serves the dashboard shell at `/` and the API under `/api/v1/`.
81+
When built dashboard assets are present, Viaduct serves the dashboard shell at `/` and the API under `/api/v1/`.
7282

7383
## Recommended Next Step
7484

@@ -81,3 +91,4 @@ For packaged or persistent evaluation environments:
8191
- set `VIADUCT_WEB_DIR` only when you keep built dashboard assets in a non-standard location
8292
- tune `VIADUCT_WORKSPACE_JOB_TIMEOUT` if discovery or planning jobs need a different server-side timeout budget
8393
- keep the Vite dev server out of any shared or internet-facing environment
94+
- use `viaduct serve-api` directly for service, container, or intentionally headless deployments

QUICKSTART.md

Lines changed: 25 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
This is the fastest source-based evaluation path for Viaduct. It uses the local lab so you can reach the workspace-to-report flow without a live hypervisor estate.
44

5-
## Maturity Note
6-
7-
Viaduct is in active development. Start in the lab or a supervised pilot first.
5+
The default operator path is now browser-first: start the local runtime, open the WebUI, create a workspace, discover, inspect, simulate, save a plan, and export a report.
86

97
## 1. Build Viaduct
108

@@ -13,6 +11,7 @@ go mod tidy
1311
make build
1412
make web-build
1513
./bin/viaduct version
14+
./bin/viaduct start
1615
```
1716

1817
On Windows PowerShell:
@@ -22,64 +21,20 @@ go mod tidy
2221
make build
2322
make web-build
2423
.\bin\viaduct.exe version
24+
.\bin\viaduct.exe start
2525
```
2626

27-
## 2. Seed The Local Config
28-
29-
```bash
30-
mkdir -p ~/.viaduct
31-
cp examples/lab/config.yaml ~/.viaduct/config.yaml
32-
```
33-
34-
The lab config uses the local KVM fixture set. For any persistent non-demo environment, configure `state_store_dsn` and use PostgreSQL.
35-
36-
## 3. Start The API
37-
38-
```bash
39-
export VIADUCT_ADMIN_KEY=lab-admin
40-
./bin/viaduct serve-api --port 8080
41-
```
42-
43-
On Windows PowerShell:
44-
45-
```powershell
46-
$env:VIADUCT_ADMIN_KEY = "lab-admin"
47-
.\bin\viaduct.exe serve-api --port 8080
48-
```
49-
50-
When built dashboard assets are present, the same process serves the WebUI at [http://localhost:8080](http://localhost:8080). If you serve the dashboard from a different origin, set `VIADUCT_ALLOWED_ORIGINS` before starting the API.
51-
52-
## 4. Seed The Lab Tenant And Service Account
27+
On a fresh source checkout, `viaduct start` writes `~/.viaduct/config.yaml` automatically if it does not exist and points it at the shipped `examples/lab/kvm` fixtures.
5328

54-
```bash
55-
curl -X POST \
56-
-H "X-Admin-Key: lab-admin" \
57-
-H "Content-Type: application/json" \
58-
--data @examples/lab/tenant-create.json \
59-
http://localhost:8080/api/v1/admin/tenants
60-
61-
curl -X POST \
62-
-H "X-API-Key: lab-tenant-key" \
63-
-H "Content-Type: application/json" \
64-
--data @examples/lab/service-account-create.json \
65-
http://localhost:8080/api/v1/service-accounts
66-
```
29+
For any persistent non-demo environment, configure `state_store_dsn` and use PostgreSQL instead of the in-memory store.
6730

68-
This creates:
69-
- tenant key: `lab-tenant-key`
70-
- service-account key: `lab-operator-key`
31+
## 2. Open The WebUI
7132

72-
Use the service-account key for the normal operator flow. Keep the tenant key for bootstrap or break-glass admin work.
33+
Open [http://127.0.0.1:8080](http://127.0.0.1:8080). The same local runtime serves the WebUI at `/` and the API at `/api/v1/`.
7334

74-
## 5. Open The Dashboard
35+
For the default local lab path, the dashboard can use the built-in single-user fallback and does not require a pasted browser key.
7536

76-
Open [http://localhost:8080](http://localhost:8080). The dashboard starts on the pilot workspace route and asks for a runtime key.
77-
78-
Authenticate with:
79-
- preferred: `lab-operator-key`
80-
- bootstrap only: `lab-tenant-key`
81-
82-
The dashboard stores the runtime key in session storage by default. Use the "Remember this browser" option only when you intentionally want the browser to keep a local copy across restarts on a trusted workstation.
37+
If you intentionally configure tenant keys or service-account keys, the runtime bootstrap screen remains available. The browser stores runtime credentials in session storage by default and offers an explicit remember option for trusted workstations.
8338

8439
If you want the Vite development server instead of the packaged local shell:
8540

@@ -89,9 +44,9 @@ npm ci
8944
npm run dev
9045
```
9146

92-
Use that only for frontend development. The default operator path is the same-origin dashboard served by `viaduct serve-api`.
47+
Use that only for frontend development. The default operator path is the same-origin dashboard served by `viaduct start`.
9348

94-
## 6. Run The Workspace-First Flow
49+
## 3. Run The Workspace-First Flow
9550

9651
In the dashboard:
9752

@@ -104,7 +59,20 @@ In the dashboard:
10459

10560
The matching seeded request body for API-driven creation is in [examples/lab/pilot-workspace-create.json](examples/lab/pilot-workspace-create.json).
10661

107-
## 7. Optional CLI Corroboration
62+
## 4. Check The Local Runtime
63+
64+
```bash
65+
./bin/viaduct status --runtime
66+
./bin/viaduct doctor
67+
```
68+
69+
Stop the local runtime when you are finished:
70+
71+
```bash
72+
./bin/viaduct stop
73+
```
74+
75+
## 5. Optional CLI Corroboration
10876

10977
```bash
11078
./bin/viaduct discover --type kvm --source examples/lab/kvm --save

README.md

Lines changed: 25 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,28 @@
11
# Viaduct
2-
> Open-source control plane for mixed virtualization discovery, planning, and supervised migration operations.
2+
> Open-source control plane for virtualization migration assessment, planning, and controlled operator execution.
33
44
[![CI](https://github.com/eblackrps/Viaduct/actions/workflows/ci.yml/badge.svg)](https://github.com/eblackrps/Viaduct/actions/workflows/ci.yml)
55
[![License](https://img.shields.io/github/license/eblackrps/Viaduct)](https://github.com/eblackrps/Viaduct/blob/main/LICENSE)
66

7-
Viaduct helps operators understand mixed virtualization estates before they commit to a migration path. The repository combines a Go backend, REST API, CLI, React dashboard, and a standalone public site around one shared model for discovery, dependency-aware planning, migration readiness, saved pilot workspaces, and exported operator evidence.
7+
Viaduct helps operators discover mixed virtualization estates, map dependencies, build migration plans, and manage controlled migration work from one shared backend model. The repository combines a Go backend, REST API, CLI, React dashboard, and standalone public site around the same persisted inventory, workspace, planning, and reporting surfaces.
88

9-
## Current Status
9+
## Current Focus
1010

11-
Viaduct is in active development. The strongest current story is:
12-
- mixed-estate discovery
13-
- dependency-aware assessment
14-
- readiness and simulation
15-
- supervised pilot planning
16-
- operator-visible reporting and export
11+
Viaduct is built for operators who need:
12+
- mixed-estate discovery and inventory normalization
13+
- dependency-aware migration assessment
14+
- readiness and planning discipline before cutover work starts
15+
- controlled, reviewable operator workflows with exported evidence
1716

18-
The default first-run experience is the pilot workspace flow: create workspace, discover, inspect, simulate, save plan, and export report. Start in the local lab or a supervised pilot environment first. Do not assume unattended migration breadth across every connector pair.
17+
The default first-run experience is the WebUI-first workspace flow: start Viaduct, create a workspace, discover, inspect, simulate, save a plan, and export a report. The local lab remains the fastest path from fresh clone to a working dashboard and API.
1918

2019
## Why Viaduct
2120

2221
Many teams do not need more abstract migration talk. They need to know what exists, what depends on what, what should move first, and what evidence is good enough to approve a pilot. Viaduct is aimed at that planning and handoff gap.
2322

2423
It is strongest when operators need:
2524
- one normalized inventory across mixed platforms
26-
- dependency context before planning a first wave
25+
- dependency context before sequencing migration work
2726
- a persisted assessment record instead of disconnected notes and screenshots
2827
- a CLI, API, and dashboard that reflect the same state
2928

@@ -53,39 +52,31 @@ It is strongest when operators need:
5352
The cleanest path is the local lab in [examples/lab](examples/lab).
5453

5554
```bash
56-
mkdir -p ~/.viaduct
57-
cp examples/lab/config.yaml ~/.viaduct/config.yaml
5855
make build
5956
make web-build
6057
./bin/viaduct version
61-
62-
export VIADUCT_ADMIN_KEY=lab-admin
63-
./bin/viaduct serve-api --port 8080
58+
./bin/viaduct start
6459
```
6560

66-
In another terminal:
61+
On a fresh source checkout, `viaduct start`:
62+
- creates `~/.viaduct/config.yaml` automatically when it is missing
63+
- points that config at the shipped `examples/lab/kvm` fixtures
64+
- serves the built dashboard and API together at [http://127.0.0.1:8080](http://127.0.0.1:8080)
65+
- opens the WebUI automatically on interactive local runs when practical
6766

68-
```bash
69-
curl -X POST \
70-
-H "X-Admin-Key: lab-admin" \
71-
-H "Content-Type: application/json" \
72-
--data @examples/lab/tenant-create.json \
73-
http://localhost:8080/api/v1/admin/tenants
74-
75-
curl -X POST \
76-
-H "X-API-Key: lab-tenant-key" \
77-
-H "Content-Type: application/json" \
78-
--data @examples/lab/service-account-create.json \
79-
http://localhost:8080/api/v1/service-accounts
80-
```
67+
For the default local lab path, the dashboard can use the built-in single-user fallback and does not require a pasted browser key. Tenant keys and service-account keys remain supported for multi-tenant, packaged, and pilot environments.
8168

82-
Then open [http://localhost:8080](http://localhost:8080), sign in with `lab-operator-key`, and run the workspace-first flow.
69+
Use these companion commands when you need them:
8370

84-
`viaduct serve-api` now serves the built dashboard automatically when assets are present in `web/dist`, a packaged `web/` directory, or an installed `share/viaduct/web` layout. If you prefer the Vite development server while changing frontend code, that flow still lives in [web/README.md](web/README.md).
71+
```bash
72+
./bin/viaduct status --runtime
73+
./bin/viaduct doctor
74+
./bin/viaduct stop
75+
```
8576

86-
The runtime bootstrap stores keys in the browser session by default. Use the optional remember toggle only on a trusted workstation.
77+
`viaduct serve-api` remains the lower-level API command for container, service, and intentionally headless deployments. It still serves the built dashboard automatically when assets are present in `web/dist`, a packaged `web/` directory, or an installed `share/viaduct/web` layout. If you prefer the Vite development server while changing frontend code, that flow still lives in [web/README.md](web/README.md).
8778

88-
If you serve the dashboard from a non-default origin, configure `VIADUCT_ALLOWED_ORIGINS` on the API so the browser can reach tenant-protected routes. The same-origin packaged and local built path on `http://localhost:8080` does not need that override.
79+
If you serve the dashboard from a different browser origin, configure `VIADUCT_ALLOWED_ORIGINS` on the API so tenant-protected routes can be reached safely. The default same-origin local path on `http://127.0.0.1:8080` does not need that override.
8980

9081
Use these entrypoints next:
9182
- Quickstart: [QUICKSTART.md](QUICKSTART.md)

RELEASE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ On Windows, `make release-gate` still builds `bin/viaduct.exe`, but it validates
1717
2. Run `make release-gate`.
1818
3. Inspect the generated bundles in `dist/`.
1919
4. Verify `release-manifest.json`, `dependency-manifest.json`, and `SHA256SUMS.txt`.
20-
5. Smoke-test the packaged binary with `viaduct version`, `viaduct --help`, and `viaduct serve-api --port 8080` against the bundled dashboard assets when they are present.
20+
5. Smoke-test the packaged binary with `viaduct version`, `viaduct --help`, `viaduct doctor`, and the canonical local start flow (`viaduct start --config <installed-config> --detach --open-browser=false`) against the bundled dashboard assets when they are present.
2121
6. Confirm install docs, upgrade docs, rollback docs, deployment examples, and the pilot workspace guide still match the artifact layout.
2222
7. Confirm the release notes entry, changelog entry, and screenshot assets are present and aligned with the shipped workflow.
2323
8. Verify the plugin manifest check and OpenAPI contract check remain green.
@@ -40,7 +40,7 @@ The standalone public site under [`site/`](site/README.md) is published through
4040
- summarize operator-visible changes
4141
- document compatibility, migration, or upgrade concerns
4242
- call out any connector-specific caveats
43-
- include the workspace-first operator flow and runtime-auth bootstrap changes when they are part of the release
43+
- include the workspace-first operator flow, runtime-auth behavior, and local startup changes when they are part of the release
4444
- include current screenshot assets when the dashboard experience changed materially
4545
- use absolute GitHub URLs in the published GitHub release body when relative asset links would be ambiguous
4646
- update [CHANGELOG.md](CHANGELOG.md) with notable release information

SUPPORT.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Viaduct is maintained as an open-source project with best-effort community suppo
77
- Project overview and status: [README.md](README.md)
88
- Install and first run: [INSTALL.md](INSTALL.md), [QUICKSTART.md](QUICKSTART.md)
99
- Full docs map: [docs/README.md](docs/README.md)
10+
- Local runtime health: `viaduct status --runtime`, `viaduct doctor`
1011
- Troubleshooting: [docs/reference/troubleshooting.md](docs/reference/troubleshooting.md)
1112
- Support matrix: [docs/reference/support-matrix.md](docs/reference/support-matrix.md)
1213

UPGRADE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ This is the top-level upgrade entrypoint. Use it with [docs/operations/upgrade.m
1818
- Validate `/api/v1/about` after startup so the reported store backend and schema version match the expected deployment state.
1919
- If active migrations exist, finish or intentionally pause them before upgrading.
2020
- If you rely on packaged web assets, redeploy the matching dashboard bundle together with the binary.
21+
- If you use the standard local operator path, prefer `viaduct start` after upgrade. Keep `viaduct serve-api` for service, container, or intentionally headless deployments.
2122

2223
## Rollback
2324

docs/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ This directory holds the deeper Viaduct documentation set. The repo-root docs ar
77
- [Installation](getting-started/installation.md)
88
- [Quickstart](getting-started/quickstart.md)
99

10+
The default local path now starts with `viaduct start`, opens the WebUI at `http://127.0.0.1:8080`, and uses the shipped lab fixtures when no local config exists yet.
11+
1012
## Operator Workflows
1113

1214
- [Pilot Workspace Flow](operations/pilot-workspace-flow.md)

0 commit comments

Comments
 (0)