Hugo source for kms.viktorbarzin.me
Find a file
Viktor Barzin efa1353e6b kms-website: activate against vlmcs.viktorbarzin.me, drop ODT-install + deep-legacy GVLKs
The page advertised kms.viktorbarzin.me:1688 as the KMS host, but that name
is the website (Traefik) — internally it resolves to 10.0.20.203 which has no
:1688 listener, so LAN clients failed with "KMS server cannot be reached".
Split the concern: siteHost (kms.viktorbarzin.me) serves the page + /scripts
downloads; kmsHost is now the dedicated A-only vlmcs.viktorbarzin.me endpoint
that resolves to the vlmcsd MetalLB IP (10.0.20.202) on the LAN (Technitium)
and to the public IP over the internet (Cloudflare -> pfSense WAN NAT :1688).

Moderate cleanup:
- remove the Office-install-via-ODT path from kms-bootstrap.ps1 (activation
  only now; manual ODT install docs stay on the page)
- collapse Windows 8.1/8/7/Vista + Server 2012/2008 GVLK tables into a legacy
  note (those keys still activate; just no longer tabled)
- drop the unused kmsHostLan param

Pairs with the infra /scripts Anubis carve-out that makes `iwr | iex` work.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 08:05:31 +00:00
content Initial commit — Hugo source, Dockerfile, Woodpecker pipeline 2026-05-07 23:13:25 +00:00
data kms-website: activate against vlmcs.viktorbarzin.me, drop ODT-install + deep-legacy GVLKs 2026-06-01 08:05:31 +00:00
layouts kms-website: activate against vlmcs.viktorbarzin.me, drop ODT-install + deep-legacy GVLKs 2026-06-01 08:05:31 +00:00
static kms-website: activate against vlmcs.viktorbarzin.me, drop ODT-install + deep-legacy GVLKs 2026-06-01 08:05:31 +00:00
.dockerignore Initial commit — Hugo source, Dockerfile, Woodpecker pipeline 2026-05-07 23:13:25 +00:00
.gitignore Initial commit — Hugo source, Dockerfile, Woodpecker pipeline 2026-05-07 23:13:25 +00:00
.woodpecker.yml Initial commit — Hugo source, Dockerfile, Woodpecker pipeline 2026-05-07 23:13:25 +00:00
Dockerfile fix: use hugomods/hugo image (klakegg/hugo no longer published) 2026-05-07 23:16:17 +00:00
hugo.toml kms-website: activate against vlmcs.viktorbarzin.me, drop ODT-install + deep-legacy GVLKs 2026-06-01 08:05:31 +00:00
nginx.conf Initial commit — Hugo source, Dockerfile, Woodpecker pipeline 2026-05-07 23:13:25 +00:00
README.md Initial commit — Hugo source, Dockerfile, Woodpecker pipeline 2026-05-07 23:13:25 +00:00

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.yaml is 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-website and rolls the kms-web-page Deployment in the kms namespace
  • Terraform in infra/stacks/kms consumes 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: