Single Gitea Actions workflow triggered only by a push to main (no per-commit
or per-PR CI). It runs the Go test suite as a gate, then builds and pushes the
container image tagged latest and the unified HEAD-commit date (yyyy.MM.dd.HHmm),
and cuts a Gitea release with the linux/amd64 binary attached. Defaults to the
built-in Gitea registry; REGISTRY_* secrets override to an external one.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The previous Dockerfile used Go 1.22 (too old for the go 1.24 module) and
never built the frontend, so the image shipped only the placeholder UI.
Rework it into three stages: build the Next.js static export, stage it into
the //go:embed dist dir and compile the CGO binary, then ship a minimal
Alpine runtime. .npmrc is copied before npm ci so legacy-peer-deps applies.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cover the environment-driven config loader (defaults, overrides, secret
from file) and the unauthenticated /health and /api/v1/version handlers
the Docker HEALTHCHECK and bootstrap flow depend on.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Scratch/ tree holds local design templates and experiments (e.g. the
Mantis UI template zips) that must never be committed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>