1 Forgejo
Matt Cupp edited this page 2026-05-29 17:35:45 -04:00

Forgejo

Self-hosted git forge. Stores all Docker Compose stacks, Renovate config, and personal docs. The webhook from homelab-docker drives Komodo auto-deploys on every push to main.

Where it runs

Repositories

Repo Purpose
matt/homelab-docker Docker Compose stacks; webhook triggers Komodo deploy on push to main
matt/renovate Renovate global config (the server-side config.js is on Nexus at /mnt/server/containers/renovate/config.js)
matt/docs Personal documentation

Backup

The Forgejo LXC is included in a PBS backup job that runs nightly. This is the most important backup in the homelab — Forgejo holds all commit history and automation config. Verify it is in the backup job via PVE → Datacenter → Backup.

Wiki

The wiki for homelab-docker is a git repo. Clone it locally to edit:

git clone http://192.168.1.240:3000/matt/homelab-docker.wiki.git

Edit markdown files, commit, and push to publish. Changes appear immediately.

Webhook (homelab-docker → Komodo)

Configured on matt/homelab-docker repo → Settings → Webhooks.

Field Value
Target URL http://192.168.1.226:9120/listener/github/procedure/<procedure-id>/main
Content type application/json
Secret Must match KOMODO_WEBHOOK_SECRET in Komodo's compose.env on Nexus
Events Push only

The /main suffix is a branch filter — Komodo only acts on pushes to main. The procedure ID is the MongoDB ObjectId; find it in Komodo UI → Procedures → the procedure → Config tab → Webhook section.

Note: New Komodo procedures default to webhook_enabled: false. After creating the procedure, open its Config tab and enable the "Webhook Enabled" toggle, then save. Without this, Komodo authenticates the request but silently does nothing.

Check delivery log: repo → Settings → Webhooks → click the webhook → Recent Deliveries.

Useful commands

Run from PVE shell or via SSH to PVE (root@192.168.1.227):

# Check Forgejo service status
pct exec <lxc-id> -- systemctl status forgejo

# Enter the LXC interactively
pct enter <lxc-id>

# List Forgejo users (without entering the LXC)
ssh root@192.168.1.227 "pct exec <lxc-id> -- forgejo admin user list"

# Restart Forgejo
ssh root@192.168.1.227 "pct exec <lxc-id> -- systemctl restart forgejo"

Troubleshooting

Forgejo is unreachable

SSH to PVE and restart the service:

ssh root@192.168.1.227 "pct exec <lxc-id> -- systemctl restart forgejo"

If the LXC itself is down: pct status <lxc-id> and pct start <lxc-id> from the PVE shell.

Webhook not firing

Check the delivery log: repo → Settings → Webhooks → Recent Deliveries. The error detail is shown per delivery. Common causes:

  • Komodo is down on Nexus (docker ps | grep komodo on Nexus)
  • Webhook secret mismatch between Forgejo and Komodo's compose.env
  • Procedure has webhook_enabled: false (enable in Komodo UI → Procedures → Config tab)