Flux source-of-truth for home-k3s. Mirrored to github.com/Kblack0610/home-config for backup.
  • Python 42.4%
  • Shell 32.8%
  • Rust 6.8%
  • Jinja 6.5%
  • JavaScript 4.2%
  • Other 7.3%
Find a file
kblack0610 824cc20110
All checks were successful
checks / zomboid-scripts (push) Successful in 5s
checks / ci-disk-prune (push) Successful in 5s
checks / fleet-roster (push) Successful in 7s
checks / kustomize-builds (push) Successful in 5s
mirror-to-github / mirror (push) Successful in 5s
checks / prometheus-rules (push) Successful in 30s
feat(litellm): gateway traces reach Langfuse through Alloy, under the same redaction (#634)
2026-11-06 22:59:12 +00:00
.claude/plans feat(actual-budget): Add self-hosted finance tracking app 2026-01-16 15:29:15 -08:00
.forgejo/workflows fix(orcaslicer): A1 access code and serial out of git, filled from a SOPS secret (#541) 2026-11-04 17:16:10 +00:00
.github/workflows fix(gitops): make github structurally unable to accept a pull request (#212) 2026-09-01 19:37:36 +00:00
ansible feat(mac-mini): an easier agent machine, and disk reclaim that retries (#630) 2026-11-06 22:17:10 +00:00
apps feat(litellm): gateway traces reach Langfuse through Alloy, under the same redaction (#634) 2026-11-06 22:59:12 +00:00
clusters/home-k3s fix(flux): apps Kustomization wait:false — one sick app must not wedge all deploys 2026-06-24 11:36:38 -07:00
docs feat(litellm): gateway traces reach Langfuse through Alloy, under the same redaction (#634) 2026-11-06 22:59:12 +00:00
infra/flux/apps/prod feat: modernize home assistant deployment 2026-03-11 23:55:36 -07:00
infrastructure fix(voice): pin the Voice PE pucks' DHCP leases so a new IP cannot strand them (#620) 2026-11-06 17:08:59 +00:00
scripts fix(monitoring): one cc:watch_state rule for queue, lint fatal (hc-150) (#631) 2026-11-06 22:22:18 +00:00
.gitignore chore: working-tree cleanup + screenshot gitignore 2026-06-01 13:25:33 -07:00
.mcp.json feat(print-service): LAN ingress + print CLI + print-mcp clients 2026-07-18 09:17:53 -07:00
.sops.yaml feat(ansible): SOPS replaces ansible-vault, one secret store in git (#380) 2026-10-26 20:22:00 +00:00
CLAUDE.md chore: remove legacy apps (openclaw, office-cup, time-tangle, spotify-concerts, renovate, cal, binks-api shadow ingress) (#540) 2026-11-04 17:04:28 +00:00
infrastructure.md feat(freqtrade): trader.kblab.me, a read-only site for the dry-run league (#554) 2026-11-04 23:47:36 +00:00
README.md docs(home-config): standards file and build/run/test in the README (hc-135) (#619) 2026-11-06 17:03:42 +00:00

Home Infrastructure Configuration

Configuration and runbooks for a mixed home infrastructure estate:

  • home-k3s: Raspberry Pi K3s cluster managed with Flux CD
  • mac-machines: native macOS hosts for CI/CD and local inference
  • standalone: Docker Compose and embedded services outside Kubernetes

This repository is primarily organized for maintainers. Use it to find manifests, understand operational boundaries, and follow the linked runbooks for setup, backup, and troubleshooting.

Start Here

Task Use
Understand current cluster health and exposed services infrastructure.md
Trace a request or failure across PXE / Ansible / Flux docs/architecture.md
Find the right runbook docs/README.md
Make a GitOps-managed change docs/gitops.md
Know the rules a change is held to, and the check behind each docs/standards.md
Verify backups or restore data docs/backup-runbook.md
Work on a specific service apps/<service>/README.md when present, then inspect the manifests in that directory

Repository Layout

Path Purpose
apps/ Application manifests and standalone service definitions
clusters/ Flux entrypoints and cluster-specific reconciliation state
docs/ Task-oriented runbooks and reference guides
infra/ Shared Flux infrastructure configuration
infrastructure/ Infrastructure-specific manifests and non-app runbooks
infrastructure.md Current environment inventory, health, access, and backup summary

Build, Run and Test

There is no binary to build: the repo is manifests, Ansible roles and a few small services, and the "build" is rendering them.

Build. Render what Flux renders, the apps aggregate and each cluster entry point (needs kustomize):

kustomize build apps >/dev/null
kustomize build clusters/home-k3s >/dev/null

Run. Deploy by pushing to forgejo (the canonical remote) and letting Flux reconcile, or flux reconcile kustomization apps --with-source to pull now. Host-OS services run through Ansible instead: cd ansible && ansible-playbook playbooks/site.yml --limit <host> --check --diff (see docs/ansible.md).

Test. CI is .forgejo/workflows/checks.yaml. The Python checks need only the standard library:

python3 scripts/check-fleet-roster.py
python3 scripts/check-runner-roster.py
python3 scripts/check-ha-packages.py
python3 scripts/check-secret-store.py
python3 apps/github-runner-exporter/test_exporter.py
python3 apps/ci-runner-governor/test_governor.py
apps/zomboid/tests/run.sh
sh ansible/roles/linux-ci-host/files/test-ci-disk-prune.sh
scripts/test-prometheus-rules.sh   # needs promtool and yq

What each check guards, and the rules behind them, are in docs/standards.md.

Common Maintainer Workflows

Reconcile a GitOps change

git add apps/<service>/
git commit -m "feat: update <service>"
git push

flux reconcile kustomization apps --with-source

Inspect Flux health

flux get all -A
flux get kustomization apps
flux logs -f

Work with encrypted secrets

sops --encrypt --in-place apps/<service>/secret.yaml
sops apps/<service>/secret.yaml
sops --decrypt apps/<service>/secret.yaml

Service Areas

These directories are the most relevant operational entrypoints in the repo:

Area Key directories
Smart home apps/home-assistant, apps/frigate
Networking and remote access apps/pi3-adguard-home, apps/headscale, infrastructure/traefik
Developer platform apps/forgejo, apps/litellm, apps/monitoring
Finance apps/actual-budget, apps/actual-budget-tools, docs/finance
Embedded and IoT apps/esp32-firmware, docs/mcp-server.md

Documentation Map

Safety Notes

  • Secrets belong in encrypted secret.sops.yaml files or ignored local files such as secret.local.yaml and .env.
  • Do not commit decrypted credentials, API tokens, or machine-specific runtime state.
  • Internal IPs and hostnames appear in this repository as operational references for the homelab environment.