requestAnimationFrame/document are browser-only; Three.js trophies,
particles, cursor, and loading screen now no-op during SSR. Add a
Node rAF shim as a safety net.
After pushing the image, SSH-deploy pulls and restarts the
homelab tracker compose service behind Traefik.
Co-authored-by: Cursor <cursoragent@cursor.com>
.dockerignore excluded dist, so plugins/docker never saw the SSR
output from the build step (COPY dist failed).
Co-authored-by: Cursor <cursoragent@cursor.com>
Target the Windows Docker Desktop runner; raise Node heap now that
builds no longer share the Pi with the rest of the homelab.
Co-authored-by: Cursor <cursoragent@cursor.com>
Route *.zea.lt via LAN Traefik, reuse bun cache under /drone-cache,
and skip redundant image pulls on the Pi runner.
Co-authored-by: Cursor <cursoragent@cursor.com>
Serialize esbuild/Angular workers and cap the Node heap under the
2GiB Drone step limit so SSR builds trade time for surviving OOM.
Co-authored-by: Cursor <cursoragent@cursor.com>