Reusable repo template for homelab services on git.aridgwayweb.com. Bakes in (all verified live on armistace/wedding-photos): - Hard commit guard: shared pre-commit hook (git config core.hooksPath ~/dev/git-hooks) + master branch protection (push whitelist [armistace], merge whitelist [hermes, armistace]). - Gitea Actions CI (.gitea/workflows/build_push.yml): test + build-deploy, persistent remote buildkit cache, registry push, idempotent deploy that preserves hand-provisioned Secrets, cluster injection from repo secrets/vars via scripts/reconcile-cluster-inject.sh. - Persistent buildkit cache (ci/buildkit/): single-replica Longhorn backing. - scripts/reconcile-cluster-inject.sh: reconcile live Secret/ConfigMap from Gitea secrets/vars without clobbering hand-provisioned values. - RUNBOOK.md: handoff-complete ops doc. Placeholders (<APP> <OWNER> <NS> <KEY_*>) are filled per-service on repo creation.
30 lines
1.4 KiB
Markdown
30 lines
1.4 KiB
Markdown
# Gitea Repo Template
|
|
|
|
Reusable cookie-cutter for new homelab repos on `git.aridgwayweb.com`. Creating a
|
|
repo from this template pre-installs the guards + CI patterns that took several
|
|
iterations to converge on (see `armistace/wedding-photos`), so every future repo
|
|
gets them for free.
|
|
|
|
## What you get for free
|
|
|
|
- **Hard commit guard** — local pre-commit hook (blocks direct commits to
|
|
`master`/`main`, detach-HEAD) configured via `git config core.hooksPath
|
|
~/dev/git-hooks` + Gitea branch protection on `master` (push whitelist
|
|
`[armistace]`, merge whitelist `[hermes, armistace]`).
|
|
- **Gitea Actions CI** (`.gitea/workflows/build_push.yml`) — test + build-deploy:
|
|
persistent remote buildkit cache, Gitea registry push, idempotent deploy that
|
|
preserves hand-provisioned Secrets, and cluster injection from repo
|
|
secrets/vars via `scripts/reconcile-cluster-inject.sh`.
|
|
- **Persistent buildkit cache** (`ci/buildkit/`) — single-replica Longhorn
|
|
backing, disk-pressure watchdog referenced from the control host.
|
|
- **RUNBOOK.md** — handoff-complete ops doc.
|
|
|
|
## Create a repo from this template
|
|
|
|
Gitea UI: `+` → *New Repository* → **"Copy to new repository"** → source
|
|
`hermes/gitea-repo-template`.
|
|
Automated: `~/.hermes/scripts/gitea-bootstrap-new-repo.sh` (see that script).
|
|
|
|
Then fill the `<PLACEHOLDERS>` and follow RUNBOOK §1-2. **Ops/watchdog scripts do
|
|
NOT belong in repos — keep them in `~/.hermes/scripts/`.**
|