BlueRobin · a homelab by Victor Robin

Two projects,
one homelab.

I build production-grade AI on self-hosted infrastructure — and write about it. One is the team of agents that runs my documents; the other is the research behind making the platform debug itself.

One platform, two projects

The Archives and the Debug Agent run on the same homelab K3s cluster — one on-prem node plus a Hetzner cloud worker, joined over a Tailscale mesh and fronted by Cloudflare. Production is the only in-cluster environment (ADR-034).

BlueRobin platform architecture — on-prem and cloud Zoned topology: users and external LLM APIs at top; a Cloudflare edge zone (DNS/WAF/Tunnel, R2 storage, AI Gateway); a Tailscale-meshed prod-only K3s cluster with an on-prem homelab node (Traefik/Authelia, the Archives agent platform with triage, retrieval, finance, health and tax agents, Ollama, and a data layer of PostgreSQL, NATS, Qdrant, FalkorDB plus an NAS registry) and a Hetzner CX43 cloud worker (cloudflared, LGTM observability, debug agent and RCA, MCP fleet, ARC runners, API/Web spillover); outputs to GitHub auto-PRs and ntfy alerts; a developer laptop runs off-cluster. Cloudflare edge Tailscale mesh · K3s cluster (2 nodes, prod-only) On-prem homelab control-plane + worker · LAN Hetzner CX43 · cloud worker observability + automation Data layer Users / internet External LLM APIs 5 cloud providers DNS · WAF · Tunnel public ingress R2 object storage documents · backups AI Gateway LLM egress proxy Traefik + Authelia ingress · forward-auth Archives · agent platform triage · retrieval · finance · health · tax AI · Ollama local embeddings · OCR · NER PostgreSQL CNPG NATS JetStream Qdrant vectors FalkorDB graphs OCI registry · NAS Flux image source cloudflared tunnel termination LGTM observability Prom · Loki · Tempo · Grafana Debug agent · RCA FEAT-008 auto-debug MCP fleet tooling ARC runners self-hosted API / Web spillover stateless · public-facing Dev laptop off-cluster · ADR-034 GitHub GitOps · auto-PRs ntfy · operator RCA alerts cloud on-prem external / I-O dashed = zone boundary · all egress exits via Cloudflare