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) <noreply@anthropic.com>
This commit is contained in:
Erich Blume 2026-03-28 07:52:17 -07:00
commit 4489fe4492
2 changed files with 35 additions and 5 deletions

View file

@ -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).

View file

@ -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