Deploy — static site on the kotkan k8s cluster
Same convention as retif/kotkanagrilli.fi: Containerfile + Helm chart +
Woodpecker; Flux rolls it out; the subdomain comes from the Ingress host.
What's here
Containerfile—nginxinc/nginx-unprivilegedserving the static site on:8080(non-root, k8s-friendly). Verified locally: builds and serves the site with HTTP 200.chart/— Deployment + Service + Ingress (host: studio.kotkanagrilli.fi,kube-system-traefik).helm templaterenders clean..woodpecker.yaml— CI: build--platform linux/arm64→ push image, package- push chart to the Gitea OCI registry.
What the operator (Сашко) provisions once
- Mirror to Gitea + Woodpecker with
gitea_clone_token/gitea_packages_token(as the kotkanagrilli pipeline). gitea-registry-credspull secret in the namespace.- DNS for the chosen subdomain (
studio.kotkanagrilli.fior another) → Cloudflare → cluster, plus a TLS cert if Traefik doesn't issue it automatically. - Flux HelmRelease →
oci://git.oleks.space/oleks/charts/ai-studio-site.
Change the subdomain in chart/values.yaml (ingress.host).
Build/run locally
docker build -f deploy/Containerfile -t ai-studio-site .
docker run --rm -p 8080:8080 ai-studio-site # http://localhost:8080