Hugo source for kms.viktorbarzin.me
Scripts now detect the running edition and fetch the matching GVLK from a published key list instead of requiring the user to copy one from the table. - data/products.yaml: add editionid to every Windows/Server entry, plus build numbers where an EditionID spans releases (LTSC, Server). Azure Edition left unmapped on purpose (collides with Datacenter; KMS may fail there anyway). - /keys.json: Hugo KEYS output format renders products.yaml as JSON (single source of truth). layouts/index.keys.json. - setup-kms.ps1: when no VL key is installed, read registry EditionID (+build/ProductType for server) -> fetch /keys.json -> slmgr /ipk the match -> activate. Only acts when not already licensed (never clobbers retail). - kms-bootstrap.ps1: same for Windows; for Office/Project/Visio, read Click-to-Run ProductReleaseIds -> ospp /inpkey the matching GVLK -> /act. - $env:KMS_KEYS_URL overrides the key-list URL. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| content | ||
| data | ||
| layouts | ||
| static | ||
| .dockerignore | ||
| .gitignore | ||
| .woodpecker.yml | ||
| Dockerfile | ||
| hugo.toml | ||
| nginx.conf | ||
| README.md | ||
kms-website
Source for kms.viktorbarzin.me — a single-page reference for activating
Microsoft Volume License products against the home-lab KMS host (kms.viktorbarzin.lan / kms.viktorbarzin.me).
Stack
- Hugo static site (one custom layout, single
_index) - YAML data file at
data/products.yamlis the source of truth for all GVLK tables - nginx:alpine Docker image (multi-stage build via Hugo)
- Woodpecker CI builds + pushes to
forgejo.viktorbarzin.me/viktor/kms-websiteand rolls thekms-web-pageDeployment in thekmsnamespace - Terraform in
infra/stacks/kmsconsumes the image (var.image_tag)
Local dev
hugo server -D
# → http://localhost:1313
Update GVLKs
Edit data/products.yaml. Push. CI rebuilds and rolls.
Sources of truth for keys: