HivePaaS
An open-source, self-hosted PaaS on Docker Swarm. Deploy apps, databases and functions from one VPS to a whole cluster, with SSL, backups and autoscaling built in.
GitOps-driven homelab monorepo — Proxmox, Talos Linux, ArgoCD, Terragrunt, and 1Password. Single-command bare-metal-to-production setup with self-healing Kubernetes and automated patching.
Developer toolsTypeScript · GoGitHub @ryanmcafeeOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Docker is the only requirement. The Kind loop runs the same charts production does, with fakes standing in for 1Password, TrueNAS and the UniFi gateway, and syncs the Applications that need no real hardware — fewer than the production total further down this page.
task localdev:up # Kind (Cilium, registry caches, fakes) → ArgoCD → 65 Applications synced from your working tree
task localdev:report # what is Healthy, and what differs from main
task localdev:down # delete the cluster; the registry caches stay
ArgoCD is on http://localhost:8080 (admin, password in argocd-initial-admin-secret; on macOS run
task localdev:ui first). task verify LEVEL=2 runs the 24 chainsaw suites against it.
task setup # detects your tier: Kind loop by default, production only when asked
task validate -- --environment homelab # the per-tier prerequisite table, with a fix hint per missing row
Production needs three things you bring: a Proxmox VE host with SSH key auth, a 1Password
vault named homelab (op signin), and a UniFi gateway that can speak BGP. Copy
configuration/environments/homelab.yaml.example to homelab.yaml, fill it in (it is gitignored
and PII-guarded), then task setup -- --environment homelab walks Ansible → Terragrunt → GitOps
with a confirmation at each phase. Nothing reaches terragrunt apply without that flag.
| Layer | What runs | Where |
|---|---|---|
| Host | Ansible prepares Proxmox: repos, networking, storcli, IPMI fans, log retention | ansible/ |
| Infra | Terragrunt DAG (11 units): ZFS pools, TrueNAS, Talos images, 3 control planes on NVMe + 3 workers, cluster config, UniFi FRR | terragrunt/ |
| Bridge | gitops-bootstrap installs ArgoCD with the homelab-cmp sidecar, the SOPS age key and the root Application | terragrunt/modules/gitops-bootstrap/ |
| GitOps | app-of-apps: gitops → bootstrap → 40 addons → 17 applications, plus per-PR previews | charts/ |
| Secrets | SOPS + ksops for the bootstrap credentials, 1Password operator for everything else | docs/secrets.md |
| Config | One schema-driven configuration/; the CMP renders values at sync time so no PII is committed | configuration/ |
| Network | Cilium LB IPAM + BGP ⇄ UniFi, Envoy Gateway (envoy-external, envoy-internal; Gateway API, wildcard TLS), external-dns ×2, port-forwarding controller, Tailscale subnet router + split DNS | docs/networking.md |
| Verify | level 0 static (< 5 s) → Kind + ArgoCD + chainsaw → PostSync smoke Jobs in production |
Media · plex · sonarr · radarr · prowlarr · nzbget · tautulli · lazylibrarian · flaresolverr Platform · argocd · grafana · argo-workflows · paperclip · cloudnative-pg · mosquitto · renovate
40 addons and 17 applications, 95 ArgoCD Applications in all. The full table with chart versions,
Gateway and test coverage per app is generated in docs/applications.md.
preview and the PR gets its own namespace in production.task config:guard blocks real IPs, hostnames and e-mail addresses from ever being committed.task docs:check recomputes every version and count on this page from the repo and fails CI when they drift.ansible/ Proxmox host roles and playbooks
terragrunt/ modules + homelab/localdev environments
talos/ packer/ machine config and images
charts/ gitops, bootstrap, addons, applications, child charts
configuration/ schema, environments, versions.yaml, export templates
cmd/ internal/ the `homelab` CLI (Go)
scripts/ Bun (TypeScript) automation the Taskfile runs
localdev/ Kind values and fakes
tests/ e2e (chainsaw), snapshots, policy, drills
docs/ architecture, networking, runbooks, ADRs
Architecture · Networking · Applications · Secrets · Tooling · Hardware · Local development · Runbooks · Decisions
tests/ |