feat(forgejo): upgrade to 16.0.2 and pin trusted proxies explicitly #790
No reviewers
Labels
No labels
burndown-2026-06
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure!790
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/forgejo-16"
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?
Refs #620, which already derived the decision boundary and the validation list. This does not re-derive them.
Change
Two lines in
deploy/forgejo.yml:15.0.2-rootless->16.0.2-rootless, not #620s16.0.1, since16.0.2` shipped 2026-07-30.FORGEJO__security__REVERSE_PROXY_TRUSTED_PROXIES: 10.42.0.0/16, new.Why the trusted-proxy line is here
Forgejo 16 removes the rootless image default
REVERSE_PROXY_TRUSTED_PROXIES = *(upstream PR 12782). This deployment sets nothing in the manifest, and the running podsapp.inihas no[security]reverse-proxy entry either, so it inherits that default today. After the upgrade it would silently fall back to loopback-only, Traefiks forwarded headers would stop being trusted, and every client IP in logs and IP-keyed behaviour would become the proxy`s address.Setting it explicitly is also correct on 15, where it narrows the inherited wildcard rather than changing behaviour. So it is safe whether or not the image line lands with it.
Breaking changes checked
s own pull mirrors. The GitHub mirror here is an external push driven byscripts/forgejo_github_mirror_sync.py`, so it is unaffected. Worth a confirming look at any repo with a Forgejo-side mirror configured.Backup state
restic-backup.timeris active and its last run succeeded 2026-08-11 04:46, snapshot0db62842, 94361 files and 95.848 GiB torest:http://ser8:8000/kai-server. The script doespg_dump -Fcof the Forgejo database and discovers PVCs from the live k3s inventory, refusing partial snapshots.#733`s remaining-work list is stale on steps 1 to 3: the apply, the first backup, and the timer are all done and green.
What is genuinely not done is #733 step 4, the restore drill (#599). Backups complete, but no restore has ever been proven. That is the real risk in this upgrade: 16 runs irreversible database migrations, so the rollback path is "restore the snapshot", and that path is untested.
Suggested sequence
restic-backuprun and confirm it reports ok, rather than relying on yesterday`s.aosguard ops forgejo action-run-job listandaction-job logs, which currently 404.Rollback
Restore
image: 15.0.2-rootlessand roll back the database from the pre-upgrade snapshot. The image alone is not sufficient once migrations have run. This is the untested path noted above.🤖 Generated with Claude Code