Kubernetes template for coder.nic-oconnor.com: an XFCE desktop served by the KasmVNC module, with this repo applied by the dotfiles module. Home is a truenas-iscsi PVC so $HOME tools and op.env survive stops. Pinned to enterprise-desktop:ubuntu-noble + KasmVNC 1.5.0 because the plain `ubuntu` tag is now resolute, which KasmVNC has no package for. Path-based app (no wildcard access URL). An ephemeral 1Password token parameter lets bootstrap's secrets module run unattended on first start. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
coder/desktop — Coder desktop template
A Coder template for https://coder.nic-oconnor.com: an XFCE desktop in the browser (the KasmVNC module) running as a pod on the homelab Kubernetes cluster, set up from this repo by the dotfiles module.
Push / update
coder login https://coder.nic-oconnor.com
coder templates push desktop -d coder/desktop -y
The in-cluster provisioner uses the coder service account, whose workspace
Role is bound in the coder namespace — which is where workspaces go.
What a workspace gets
codercom/enterprise-desktop:ubuntu-noble: XFCE, git, python3, and thecoderuser (uid 1000) with passwordless sudo.- A PVC (
truenas-iscsi, default 30 GiB) at/home/coder. Everything the dotfiles install into$HOMEsurvives stops; system packages (zsh, docker CLI, KasmVNC) are reinstalled on each start because the root filesystem is not persisted. - The KasmVNC app, path-based (
subdomain = false) because the deployment has no wildcard access URL. - A "Dotfiles" startup script: clones this repo into
~/.config/coderv2/dotfilesand runsbootstrap.sh(log:~/.dotfiles.log), plus a "Refresh Dotfiles" button. The first run takes about 5 minutes. - Pod requests 0.5 CPU / 1 GiB; the CPU and memory parameters set limits (the nodes are ~4 CPU / ~5 GiB and mostly requested already).
1Password secrets
bootstrap's secrets/ module needs OP_SERVICE_ACCOUNT_TOKEN when there is
no TTY. Paste it into the 1Password service-account token parameter when
you create the workspace. It is ephemeral: used for that build only, then
~/.config/dotfiles/op.env on the home volume carries it. Leave it empty and
bootstrap still applies everything else; secrets, mcp-config and hermes
are reported as not completed. Fix that later from a workspace terminal with
~/.config/coderv2/dotfiles/secrets/install.sh, then refresh the dotfiles.
Why these pins
ubuntu-noble, notubuntu: theubuntutag is now 26.04 (resolute), and KasmVNC publishes no resolute package, so the module's install 404s.kasm_version = "1.5.0": the newest KasmVNC release, which has a noble build. Revisit both once KasmVNC ships a resolute.deb.