kms-website/Dockerfile
Viktor Barzin 7cfcd73d83 kms-website: anonymous client diagnostics (Send-Diag -> /diag) + FAQ disclosure
Fire-and-forget telemetry so script failures are captured server-side (Loki via
the kms-diag collector). kms-bootstrap.ps1 + setup-kms.ps1 POST a small anonymous
JSON event at each outcome (action, ok/fail, error text + exit codes, EditionID/
build/locale, detected Office products; no hostname/user/keys). 3s timeout,
errors swallowed -- never affects activation. $env:KMS_NO_TELEMETRY=1 opts out;
$env:KMS_DIAG_URL overrides. Version baked at build via Dockerfile sed
(__KMS_VERSION__ -> SCRIPT_VERSION build-arg). FAQ updated to disclose it.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 19:46:49 +00:00

22 lines
840 B
Docker

# syntax=docker/dockerfile:1.6
ARG HUGO_VERSION=0.139.0
ARG NGINX_VERSION=1.27-alpine
FROM hugomods/hugo:${HUGO_VERSION} AS build
ARG SCRIPT_VERSION=dev
WORKDIR /src
COPY . .
RUN hugo --minify --gc --destination /out && \
sed -i "s/__KMS_VERSION__/${SCRIPT_VERSION}/g" /out/scripts/*.ps1
FROM nginx:${NGINX_VERSION}
LABEL org.opencontainers.image.source="https://forgejo.viktorbarzin.me/viktor/kms-website" \
org.opencontainers.image.description="kms.viktorbarzin.me — KMS activation reference"
# Strip default config so the bundled simple one stays
RUN rm -f /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /out /usr/share/nginx/html
EXPOSE 80
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget -qO- http://127.0.0.1/ >/dev/null 2>&1 || exit 1