From 4489fe4492900803a94558a913f492acb1d5bd94 Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Sat, 28 Mar 2026 07:52:17 -0700 Subject: [PATCH] Update docs for Forgejo source build migration Update Forgejo reference card with source-build details (binary path, data location, LaunchAgent, build instructions). Update restart-indri to replace brew services commands with launchctl for Forgejo. Co-Authored-By: Claude Opus 4.6 (1M context) --- docs/how-to/operations/restart-indri.md | 6 ++--- docs/reference/services/forgejo.md | 34 ++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/docs/how-to/operations/restart-indri.md b/docs/how-to/operations/restart-indri.md index 768ec9a..a3f29a0 100644 --- a/docs/how-to/operations/restart-indri.md +++ b/docs/how-to/operations/restart-indri.md @@ -37,10 +37,8 @@ ssh indri 'minikube status' Native services managed by launchd will stop automatically during macOS shutdown. However, if you want to stop them explicitly first: ```bash -# Forgejo (managed by brew services) -ssh indri 'brew services stop forgejo' - # LaunchAgent services +ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.forgejo.plist' ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.caddy.plist' ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.zot.plist' ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.jellyfin.plist' @@ -68,7 +66,7 @@ Or if you're at the console, use the Apple menu. After indri boots, most services recover automatically. Only a few things need manual attention. -**What autostarts:** Docker Desktop, brew services (Forgejo), and all mcquack LaunchAgent services (Caddy, Zot, Jellyfin, Alloy, Borgmatic, metrics collectors). +**What autostarts:** Docker Desktop and all mcquack LaunchAgent services (Forgejo, Caddy, Zot, Jellyfin, Alloy, Borgmatic, metrics collectors). **What needs manual action:** Amphetamine, AutoMounter, and minikube (including its Tailscale serve port). diff --git a/docs/reference/services/forgejo.md b/docs/reference/services/forgejo.md index e96c247..dcd0878 100644 --- a/docs/reference/services/forgejo.md +++ b/docs/reference/services/forgejo.md @@ -1,6 +1,6 @@ --- title: Forgejo -modified: 2026-03-03 +modified: 2026-03-28 tags: - service - git @@ -11,6 +11,8 @@ tags: Git forge and CI/CD platform. **Primary source of truth for blumeops** (mirrored to GitHub). +Built from source on indri, managed via Ansible + mcquack LaunchAgent. Source cloned from Codeberg with a forge mirror as secondary remote. + ## Quick Reference | Property | Value | @@ -20,6 +22,36 @@ Git forge and CI/CD platform. **Primary source of truth for blumeops** (mirrored | **SSH** | `ssh://forgejo@forge.ops.eblu.me:2222` | | **Local Ports** | 3001 (HTTP), 2200 (SSH) | | **Config** | `ansible/roles/forgejo/templates/app.ini.j2` | +| **Binary** | `~/code/3rd/forgejo/forgejo` (source-built) | +| **Data** | `~/forgejo` | +| **LaunchAgent** | `mcquack.eblume.forgejo` | +| **Source** | `~/code/3rd/forgejo` (cloned from Codeberg) | + +## Building from Source + +Forgejo is built from source on indri, matching the pattern used by [[zot]], [[caddy]], and [[alloy]]. + +**One-time setup:** + +```fish +# Clone from Codeberg (avoids circular dependency with forge) +ssh indri 'git clone https://codeberg.org/forgejo/forgejo.git ~/code/3rd/forgejo' + +# Add forge mirror as secondary remote +ssh indri 'cd ~/code/3rd/forgejo && git remote add forge https://forge.eblu.me/mirrors/forgejo.git' +``` + +**Building a specific version:** + +```fish +ssh indri 'cd ~/code/3rd/forgejo && git fetch --tags && git checkout v14.0.3' +ssh indri 'cd ~/code/3rd/forgejo && mise use go@1.25 node@24' +ssh indri 'cd ~/code/3rd/forgejo && TAGS="bindata timetzdata sqlite sqlite_unlock_notify" mise x -- make build && mise x -- make forgejo' +``` + +Build tags: `bindata` (embed assets), `timetzdata` (embed timezone data), `sqlite sqlite_unlock_notify` (SQLite support). The `make build` target produces `./gitea`; `make forgejo` creates a `./forgejo` hardlink. + +After building, run `mise run provision-indri -- --tags forgejo` to deploy the config and restart the service. ## Repositories