Homelab Scripts
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-11 02:41:20 +07:00
02-network fix(network): add CT 308 (app-immich) to fleet key provisioning; drop resolved gap note 2026-08-11 02:41:20 +07:00
04-services feat: add homelab-health.sh under 04-services (incl. Immich) 2026-08-11 02:37:21 +07:00
README.md fix(network): add CT 308 (app-immich) to fleet key provisioning; drop resolved gap note 2026-08-11 02:41:20 +07:00

Homelab Scripts

Operational scripts for the segmentum.app homelab (Proxmox host pve-01). Versioned counterpart to the homelab-docs repository: docs describe what/where, this repo holds how to operate it.

Who Runs These

  • Me — one-off manual operations on the fleet (provisioning, checks).
  • Hermes — the homelab AI agent reads and follows these scripts; may run the read-only/no_agent ones directly. Live copies that the cron scheduler calls live in ~/.hermes/scripts/ on infra-hermes (CT 202) — this repo is the versioned source.

Layout

Scripts mirror the homelab-docs chapter numbering (NN-<area>/), grouped by concern:

Folder Script What it does Where to run
02-network/ provision-hermes-key.sh Provision the hermes fleet SSH key into service LXCs via pct exec pve-01
04-services/ homelab-health.sh Probe every service over HTTP; alert on DOWN/recovery flips infra-hermes

Syncing live scripts back to this repo

The cron/hardcoded paths reference the live copies under ~/.hermes/scripts/ on infra-hermes (e.g. the Homelab health monitor cron job calls homelab-health.sh from there). This repo is the versioned source of truth, so when you edit a live script, copy it back here and commit:

cp ~/.hermes/scripts/homelab-health.sh homelab-scripts/04-services/homelab-health.sh
cd homelab-scripts
git add -A && git commit -m "update: ..." && git push

Because they are snapshots, changes to the live copy are NOT reflected here until this sync step is done — keep them identical.

Local compute / git identity note

Push to Forgejo uses HTTPS with a one-shot token (a git credential helper that reads FORGEJO_ACCESS_TOKEN from /home/hermes/creds.txt), so the token never persists in .git/config or shell history. Commits are authored as hermes <hermes@segmentum.app>.