Add Forgejo forge to phd-tower #43
Loading…
Reference in a new issue
No description provided.
Delete branch "forgejo-phd-tower"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Adds a self-hosted Forgejo forge (plus its Postgres container) to
docker-compose.phd-tower.yml, filling the VCS-hosting hole the Perforce Helix Core removal (#35) left in the stack. The design was worked out in the Forgejo Forge Plan in the Software-Wiki (50 Cumulus, 90-99 Agents/Transient), with decisions taken there on 2026-10-12: Postgres, HTTPS + SSH exposure via Pangolin, Git LFS enabled for game projects' binary assets.What's in it
codeberg.org/forgejo/forgejo:16(major-pinned; patch releases ridemake pull, major bumps are manual per Forgejo's upgrade docs) on a private compose network withforgejo-db(Postgres 16-alpine, healthchecked).FORGEJO__*environment variables fed from.env;INSTALL_LOCK=truemakes first boot run migrations directly, andDISABLE_REGISTRATION=truecloses public sign-up before the forge ever serves a request. The admin account is created once through the container CLI. Noapp.initemplate to render — a fresh deploy reproduces from this repo plus.env.LFS_START_SERVER=truewith the LFS JWT secret from.env; LFS rides the same HTTPS endpoint as the UI. This is the feature game projects need that the rest of the stack has no story for yet.127.0.0.1:3000for a Pangolin HTTP resource atforge.${BASE_DOMAIN}; the built-in SSH server published on127.0.0.1:2222for a Pangolin raw TCP resource, the same pattern the old p4 passthrough used (Security Review finding #11). Ports stay loopback-bound, and Forgejo's trusted-proxy defaults are correct as-is because the tunnel arrives on loopback.make setup phd-towergains its branch — it currently falls through silently. New branch createsFORGEJO_DATA_PATHand refuses to proceed if any of the four Forgejo secrets is unset, empty, or left atchangeme..env.example— the six Forgejo variables with generation one-liners and the uid/gid 1000 ownership caution; README — Forgejo row in the tower services table.Verification
docker compose -f docker-compose.phd-tower.yml config -qpasses.make setup phd-towerbranch was exercised in a sandbox copy for all five failure shapes (all set,changemevalue, empty value, unset variable, missingFORGEJO_DATA_PATH) — every failure exits with a named error, and the good case creates the directory and proceeds.