The Gitea Actions workflow checks out a fresh copy of the repo via
actions/checkout, which never has frontend/.env.local (it's gitignored,
only exists in the manually-maintained /root/realtime-collab clone).
Without it, Vite silently fell back to the localhost dev defaults and
baked a broken API URL into the production bundle — every CI-triggered
build overwrote a working manual build with a broken one.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
docker build only populates the Docker daemon's store; k3s runs its
own embedded containerd and never sees it, so imagePullPolicy: Never
kept redeploying whatever was last imported instead of new builds.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Rebuilds and rolls out the backend, then builds and syncs the
frontend to nginx. Triggered manually via workflow_dispatch so pushes
don't auto-deploy to production.
Co-Authored-By: Claude Sonnet 5 <[email protected]>