No description
  • Shell 93.2%
  • Dockerfile 6.8%
Find a file
2026-04-05 13:46:13 -04:00
.forgejo talos: updates 2026-04-04 22:34:54 -04:00
.githooks Tailscale plus pre-commit 2026-03-13 17:40:25 -04:00
.github talos: updates 2026-04-04 22:34:54 -04:00
ci/workflows after cluster reset 2026-03-13 16:08:59 -04:00
clusters/cabbagecluster postgres fixes 2026-04-04 18:49:54 -04:00
docs talos: backup jobs 2026-04-05 13:46:13 -04:00
helm-values Reprovision worker storage 2026-03-15 19:59:04 -04:00
infrastructure Move Taskwarrior and Go CLIs to builder stages 2026-03-24 15:19:52 -04:00
knowledge Extenstions added 2026-03-14 14:50:43 -04:00
kubernetes talos: backup jobs 2026-04-05 13:46:13 -04:00
scripts forgejo: talos updater 2026-04-04 23:05:26 -04:00
secrets add in postgres 2026-04-04 14:08:25 -04:00
talos updates 2026-04-04 20:43:12 -04:00
.envrc Memory MCP 2026-03-17 12:15:34 -04:00
.gitignore align repo with talos workflow 2026-03-21 13:49:47 -04:00
.hadolint.yaml chore: add hadolint Dockerfile linting 2026-03-17 08:55:56 -04:00
.pre-commit-config.yaml align repo with talos workflow 2026-03-21 13:49:47 -04:00
.sops.yaml sops: allow encryption for .enc.yaml files anywhere in repo 2026-03-14 16:29:23 -04:00
.yamllint.yaml fix: exclude encrypted and artifact dirs from yamllint 2026-03-14 16:53:28 -04:00
PROJECT_SPEC.md forgjo on local-sata 2026-03-14 14:21:06 -04:00
README.md forgejo: feature update 2026-04-04 21:31:23 -04:00

cabbagecluster

A highly reliable, self-hosted Kubernetes home lab built with Talos Linux and managed via private remote operations through Tailscale.

Documentation Index

Repository Structure

  • clusters/: Flux cluster definitions and entrypoints.
    • clusters/cabbagecluster/inventory.yaml: Canonical cluster identity, node names, and management IP inventory.
    • clusters/cabbagecluster/recovery.yaml: Canonical protected PVC and rebuild-empty recovery inventory.
  • kubernetes/:
    • base/: Shared infrastructure components (metrics-server, local-path-provisioner, tailscale-operator).
    • apps/: Workload definitions (Forgejo, OpenClaw gateway, media, etc.).
  • infrastructure/: Config templates and runtime files for non-Kubernetes infrastructure.
    • infrastructure/openclaw/desktop-node/: OpenClaw node config and systemd service templates.
  • talos/: Talos Linux machine configurations and patches.
  • secrets/: Encrypted SOPS secrets (requires age key to decrypt).
  • .artifacts/runtime/: Ignored local runtime outputs such as decrypted Talos patches and talosconfig.
  • scripts/: Automation for bootstrap, reset, maintenance, and desktop node setup.
    • scripts/desktop-node/: OpenClaw desktop node installation scripts.
    • scripts/dr/: Zero-node rebuild, B2 rehydrate, and workload restore helpers.

Quick Start

  1. Ensure prerequisites are met: ./scripts/check-prereqs.sh
  2. Decrypt local secrets: ./scripts/decrypt-secrets.sh
  3. Bootstrap the cluster: ./scripts/bootstrap-cluster.sh --controlplane-node <IP> --worker-node <IP> ...
  4. Bootstrap Flux: ./scripts/bootstrap-flux.sh

Security & Reliability

  • All management and service exposure is restricted to the Tailscale tailnet.
  • Nodes are managed with Talos Linux for a minimal attack surface and immutable operations.
  • GitOps-driven reconciliation via Flux.
  • OpenClaw runs as a private, Tailscale-only in-cluster gateway.
  • Desktop nodes can connect to the cluster gateway for remote operations and agent execution.

Desktop Node Integration

Run OpenClaw as a daemon on your Fedora desktop to enable remote task execution through the cluster gateway.

Quick Start:

# Get gateway token from cluster secret
export OPENCLAW_GATEWAY_TOKEN="<token-from-cluster>"

# Run automated setup
cd ~/git/cabbagecluster
sudo -E bash scripts/desktop-node/install-huginn.sh

See Desktop Node Setup for complete guide.