Add migration plan for Forgejo brew-to-source transition #140

Merged
eblume merged 2 commits from doc/forgejo-brew-migration-plan into main 2026-02-10 10:18:54 -08:00
Owner

Summary

  • Add docs/how-to/plans/migrate-forgejo-from-brew.md — full Diataxis-style plan covering background, one-time migration steps, Ansible role changes (with exact code), verification checklist, and future considerations
  • Add docs/how-to/plans/plans.md — new plans subdirectory index for upcoming migration/transition plans
  • Update docs/how-to/how-to.md with a Plans section
  • Update docs/tutorials/exploring-the-docs.md to mention plans in the doc structure table and quick-path sections for Owner and AI audiences

Test plan

  • docs-check-links passes
  • docs-check-index passes
  • All pre-commit hooks pass
## Summary - Add `docs/how-to/plans/migrate-forgejo-from-brew.md` — full Diataxis-style plan covering background, one-time migration steps, Ansible role changes (with exact code), verification checklist, and future considerations - Add `docs/how-to/plans/plans.md` — new plans subdirectory index for upcoming migration/transition plans - Update `docs/how-to/how-to.md` with a Plans section - Update `docs/tutorials/exploring-the-docs.md` to mention plans in the doc structure table and quick-path sections for Owner and AI audiences ## Test plan - [x] `docs-check-links` passes - [x] `docs-check-index` passes - [x] All pre-commit hooks pass
Document the plan to transition Forgejo from Homebrew to a source-built
binary with LaunchAgent, following the established zot/caddy/alloy pattern.
Introduces a new "plans" how-to subdirectory for future migration plans.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ -0,0 +9,4 @@
# Plan: Migrate Forgejo from Brew to Source Build
> **Status:** Planned (not yet executed)
> **Audience:** AI agent, Owner
Author
Owner

we dont need audience labels on non-tutorials

we dont need audience labels on non-tutorials
eblume marked this conversation as resolved
@ -0,0 +18,4 @@
### Why Source Build?
- **Version pinning** — upgrade on our schedule by checking out specific tags
- **Consistency** — matches [[zot]], caddy, and alloy deployment patterns
Author
Owner

I think caddy and alloy have service reference cards to link to here as well. if not, just skip this comment

I think caddy and alloy have service reference cards to link to here as well. if not, just skip this comment
eblume marked this conversation as resolved
@ -0,0 +35,4 @@
http://localhost:3001/eblume/forgejo.git
```
> **Note:** Use `localhost:3001` because hairpinning through Caddy doesn't work from indri itself.
Author
Owner

is that true? i thought caddy fixed that actually, can we test this?

is that true? i thought caddy fixed that actually, can we test this?
eblume marked this conversation as resolved
@ -0,0 +50,4 @@
### 2. Add Forge Mirror as Secondary Remote
```fish
ssh indri 'cd ~/code/3rd/forgejo && git remote add forge http://localhost:3001/eblume/forgejo.git'
Author
Owner

see above question on whether hairpinning is a valid concern

see above question on whether hairpinning is a valid concern
eblume marked this conversation as resolved
@ -0,0 +64,4 @@
Forgejo requires Go 1.24+ and Node 20+:
```fish
ssh indri 'cd ~/code/3rd/forgejo && mise use go@1.24 node@20'
Author
Owner

maybe make a note here to start a local-only branch indri-deployment which we'll rebase during upgrades

maybe make a note here to start a local-only branch `indri-deployment` which we'll rebase during upgrades
eblume marked this conversation as resolved
@ -0,0 +149,4 @@
# ssh indri 'git clone https://codeberg.org/forgejo/forgejo.git ~/code/3rd/forgejo'
#
# 2. Add forge mirror as secondary remote:
# ssh indri 'cd ~/code/3rd/forgejo && git remote add forge http://localhost:3001/eblume/forgejo.git'
Author
Owner

see above notes about hairpinning

see above notes about hairpinning
eblume marked this conversation as resolved
@ -0,0 +280,4 @@
- **CI-built binaries** — build on gilbert or in Forgejo Actions, deploy as artifact
- **Artifact release system** — tag-triggered binary builds, similar to container releases (`mise run container-release`)
- **Automated upgrades** — Renovate or similar watching Codeberg tags, opening PRs with version bumps
Author
Owner

Also add indri user management to this list. We really aught to run all of these services as their own users. I tried doing that once and I think a forgejo user still exists but it went really wonky. macos user session management is hard with launch agents, even when using the root launch agent thing.

Also add indri user management to this list. We really aught to run all of these services as their own users. I tried doing that once and I think a forgejo user still exists but it went really wonky. macos user session management is hard with launch agents, even when using the root launch agent thing.
eblume marked this conversation as resolved
- Remove audience label from non-tutorial doc
- Link caddy and alloy reference cards alongside zot
- Use forge.ops.eblu.me URLs (hairpinning works via Caddy)
- Add indri-deployment local branch step for version tracking
- Add indri user management to future considerations

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
eblume merged commit b5746e62c2 into main 2026-02-10 10:18:54 -08:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
eblume/blumeops!140
No description provided.