5 Commits
Author SHA1 Message Date
casjay 67db5abd86 🗃️ Fixed the actions and the docker daemon.json 🗃️
gitea / release-gitea (push) Successful in 8m10s
AI.md
.gitea/workflows/docker.yaml
README.md
rootfs/tmp/etc/docker/daemon.json
rootfs/tmp/etc/forgejo/app.ini
2026-09-21 15:53:55 -04:00
casjay 7e137b3d08 🩹 Fix healthcheck to verify real HTTP response, not just process/port 🩹
gitea / release-gitea (push) Successful in 8m1s
Adds a hand-crafted env fragment so the Docker HEALTHCHECK actually
confirms Forgejo is serving HTTP, not just that its process exists and
its port shows up in netstat. Found via a beta-test pass: a container
could report "healthy" for a brief window right after `docker restart`
while external requests still got connection resets.

- rootfs/usr/local/etc/docker/env/10-healthcheck.sh: new hand-crafted
  env fragment (sourced by entrypoint.sh on every invocation, including
  the HEALTHCHECK probe) that sets HEALTH_ENDPOINTS to Forgejo's own
  /api/healthz endpoint, so entrypoint.sh's healthcheck case performs a
  real curl -f check via __curl in addition to its existing process and
  port checks. No [generated] file touched.
- TODO.AI.md: updated the healthcheck TODO entry to record this fix and
  what it verified, and to note a residual, out-of-scope-here gap — the
  Dockerfile's HEALTHCHECK --interval=5m means Docker can still show a
  stale "healthy" status for up to 5 minutes after a restart even with
  a correct check; closing that needs a shorter --start-interval on the
  generated HEALTHCHECK line, which must be changed upstream in the
  gen-dockerfile template repo, not here.
2026-09-09 00:42:12 -04:00
casjay 7e62f7683b 📝 Log beta-test findings from prod-readiness verification 📝
Built the image locally, ran it with the README's documented flags, and
had the beta-tester agent run a structured test pass against it to
verify today's Dockerfile OCI-label/HOSTNAME fixes and the pre-existing
act_runner cache-secret/token-regex fixes actually work at runtime.
Core paths (HTTP, SSH, act_runner registration, admin user/repo/token
creation, git clone over HTTP+SSH, restart recovery) all passed; three
issues found are logged here rather than left only in conversation.

- TODO.AI.md: log a Medium-severity healthcheck race (container
  reports healthy before the published HTTP port reliably accepts
  connections right after `docker restart`), a Low-severity test-scope
  gap (git push not exercised, only clone), and a Low-severity
  informational note (`/api/v1/admin/runners` returns 404, likely just
  an unsupported route in Forgejo 16.0.3, not confirmed as a bug)
2026-09-09 00:01:24 -04:00
casjay 5b192d9c4d 🐛 Fix act_runner cache/token config and Dockerfile OCI labels 🐛
gitea / release-gitea (push) Waiting to run
Verified via AI.md PART 8 syntax gate (bash -n across all rootfs scripts),
hadolint on Dockerfile, script-lint agent on the two shell scripts, and
YAML validation on both config files — all pass.

- Dockerfile: org.opencontainers.image.url corrected from the stale
  https://docker.io/casjaysdevdocker/forgejo registry-pull form to the
  browsable https://hub.docker.com/r/casjaysdevdocker/forgejo page, per
  AI.md PART 0 rule 5.
- Dockerfile: final-stage ENV HOSTNAME prefix corrected from
  casjaysdev-${IMAGE_NAME} to casjaysdevdocker-${IMAGE_NAME}, matching
  the build stage and AI.md PART 2's HOSTNAME convention.
- rootfs/tmp/etc/act_runner/cache_server.yaml: cache.external_secret
  renamed to cache.secret — act_runner cache-server's config loader only
  recognizes secret, not external_secret.
- rootfs/tmp/etc/act_runner/default_config.yaml: same external_secret ->
  secret rename in the cache: block (runner-side config).
- rootfs/usr/local/bin/start-runners: same external_secret -> secret
  rename in the generated runners-cache.yaml heredoc.
- rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh: runner
  registration token extraction regex widened from [A-Za-z0-9]{20,} to
  [A-Za-z0-9_-]{20,} so tokens containing hyphens/underscores are no
  longer truncated.
- TODO.AI.md: logged the two Dockerfile compliance fixes above, and
  logged (not fixed — out of scope, template-owned file) a stale
  __copy_templates/DEFAULT_TEMPLATE_DIR reference found in
  functions/entrypoint.sh while running the dead-reference gate.
- .claude/scheduled_tasks.lock: session lock rotation (automatic, not a
  deliberate change).
2026-09-08 22:37:44 -04:00
casjay c8f7ff8d22 🦈🏠🐜❗ Initial Commit ❗🐜🦈🏠 2026-09-03 21:08:19 -04:00