# Choosing infrastructure

Source: https://blog.derio.net/frank/topics/choosing-infrastructure/
Published: 2026-09-05
Updated: 2026-09-05

Networking, storage, recovery, and delivery decisions under real constraints.



## Building Frank



Follow the implementation, from bare metal to working services.



6 Mar 2026

### [Persistent Storage with Longhorn](https://blog.derio.net/frank/docs/building/03-storage/)



Setting up Longhorn distributed block storage across heterogeneous disks, including a GPU-local StorageClass for AI workloads.



8 Mar 2026

### [Backup — Longhorn to Cloudflare R2](https://blog.derio.net/frank/docs/building/08-backup/)



Configuring Longhorn backup targets with Cloudflare R2 — and the three Longhorn 1.11 gotchas that rewrote the original plan.



11 Mar 2026

### [Multi-tenancy — Disposable Kubernetes Clusters with vCluster](https://blog.derio.net/frank/docs/building/14-multi-tenancy/)



Virtual Kubernetes clusters inside Frank — each one a disposable sandbox with its own control plane, resource quotas, and network policies, deployed via ArgoCD.



20 Mar 2026

### [Hopping Through the Portal — A Public Edge Cluster](https://blog.derio.net/frank/docs/building/17-public-edge/)



Deploying a single-node Talos cluster on Hetzner Cloud as a public edge — Headscale mesh, Caddy reverse proxy, and everything that went wrong along the way.



27 Mar 2026

### [Progressive Delivery with Argo Rollouts](https://blog.derio.net/frank/docs/building/19-progressive-delivery/)



Adding canary and blue-green deployment strategies to the cluster with Argo Rollouts — including a 39-day postmortem where the canary never actually ran.



29 Mar 2026

### [Workflow Automation with n8n](https://blog.derio.net/frank/docs/building/20-workflow-automation/)



Deploying per-user n8n instances on gpu-1 for workflow automation — with Authentik forward-auth, dedicated PostgreSQL, and Prometheus metrics.



8 Apr 2026

### [In-Cluster Ingress — Traefik, Wildcard TLS, and a Homepage Dashboard](https://blog.derio.net/frank/docs/building/24-in-cluster-ingress/)



Moving TLS termination and reverse proxying into the cluster with Traefik, Let's Encrypt wildcard certs, Authentik forward-auth, and a gethomepage.dev dashboard.



13 Apr 2026

### [CI/CD Platform — Gitea, Tekton, Zot, and Cosign](https://blog.derio.net/frank/docs/building/27-cicd-platform/)



Deploying a full Kubernetes-native CI/CD platform on pc-1 — Gitea for git mirroring, Tekton for pipelines, Zot for container images, and cosign for supply chain signing.



18 Apr 2026

### [Agent Images and the VK-Local Sidecar — Unbaking VibeKanban](https://blog.derio.net/frank/docs/building/28-agent-images-sidecar/)



Splitting VibeKanban out of the Kali agent pod into a shared-volume sidecar, and moving Dockerfiles into a new multi-image repo with matrix CI and cross-repo dispatch.



3 Jun 2026

### [Building Automation — AWX, the Imperative Counterweight](https://blog.derio.net/frank/docs/building/32-automation/)



An Ansible controller for the home-lab boxes Talos and ArgoCD cannot reach — two operators, four CrashLoops, a login page with no login, and a ping that finally said pong.



20 Jul 2026

### [The First Real Tenant: A vCluster That ArgoCD Deploys Into](https://blog.derio.net/frank/docs/building/34-first-vcluster-tenant/)



Registering a vCluster as an ArgoCD cluster target crashed every app I run. The fix is six lines, and the order you apply them in matters.



20 Jul 2026

### [CI on the Mirrors: Gitea Actions](https://blog.derio.net/frank/docs/building/35-gitea-actions-ci/)



GitHub Actions burned its free tier in 19 days, so the workflows now run on Frank's Gitea mirrors — same YAML, new engine, statuses flowing back



## Operating on Frank



Check health, investigate failures, and recover the system.



13 Mar 2026

### [Operating on Storage & Backups](https://blog.derio.net/frank/docs/operating/02-storage-backups/)



Day-to-day commands for managing Longhorn volumes, checking backup health, restoring from Cloudflare R2, and debugging common storage failures on Frank.



13 Mar 2026

### [Operating on Multi-tenancy](https://blog.derio.net/frank/docs/operating/09-multi-tenancy/)



Day-to-day commands for managing vCluster virtual clusters, checking tenant health, creating and deleting vClusters, and debugging sync issues.



20 Mar 2026

### [Operating on Hop — Single-Node Talos Edge Cluster](https://blog.derio.net/frank/docs/operating/11-public-edge/)



Managing Hop — a standalone single-node Talos cluster on Hetzner Cloud with Headscale mesh, Caddy, and CrowdSec.



27 Mar 2026

### [Operating on Progressive Delivery](https://blog.derio.net/frank/docs/operating/12-progressive-delivery/)



Promoting canary steps, switching blue-green, inspecting analysis results, and handling sparse-traffic pauses.



29 Mar 2026

### [Operating on Workflow Automation](https://blog.derio.net/frank/docs/operating/13-workflow-automation/)



Managing n8n instances — health checks, database operations, adding instances, upgrading, and common issues.



10 Apr 2026

### [Operating on Ingress](https://blog.derio.net/frank/docs/operating/17-ingress/)



Checking Traefik routes, renewing ACME certificates, restarting Homepage, and debugging HTTP routing failures.



13 Apr 2026

### [Operating on CI/CD Platform](https://blog.derio.net/frank/docs/operating/22-cicd-platform/)



Gitea mirror syncs, Tekton pipeline runs, Zot registry health, cosign verification, and webhook delivery debugging.



3 Jun 2026

### [Operating Automation — Day-to-Day Commands for AWX](https://blog.derio.net/frank/docs/operating/27-automation/)



Onboarding a new host, reading a failed job, rotating the OIDC secret, and getting back in when SSO is the thing that broke.



## The Frank Papers



Compare approaches, examine the evidence, and understand the trade-offs.



22 May 2026

### [Heterogeneous Hardware as a Design Choice](https://blog.derio.net/frank/docs/papers/01-heterogeneous-hardware/)



Same boxes or different boxes? Six fleet shapes split on that one question — all-RPi, all-NUC, heterogeneous bare metal, edge+core, single beefy server + VMs, full-cloud…



20 May 2026

### [eBPF Networking Without a Service Mesh](https://blog.derio.net/frank/docs/papers/03-ebpf-networking/)



Six options dominate Kubernetes networking in 2026 — Cilium, Calico, kube-proxy + iptables, Istio, Linkerd2, and the cloud-managed VPC CNI — and they split on two axes:…



19 May 2026

### [Distributed Storage on Bare Metal](https://blog.derio.net/frank/docs/papers/04-distributed-storage/)



Distributed storage on bare-metal Kubernetes is a four-job problem — synchronous replication, snapshots, off-cluster backup, RWX — and the six contenders in 2026 (Longhorn,…



20 May 2026

### [Backup & DR Without a Vendor Contract](https://blog.derio.net/frank/docs/papers/08-backup-dr/)



Kubernetes backup & DR is a five-job problem — API-object capture, volume capture, application-consistency hooks, offsite shipment, credential restore — and the six contenders…



20 May 2026

### [Self-Hosted CI/CD on a Homelab](https://blog.derio.net/frank/docs/papers/13-self-hosted-cicd/)



Self-hosted CI/CD is a choice between one tool or three. The six contenders in 2026 — Gitea+Tekton+Zot, GitLab CE, Forgejo+Woodpecker, Drone CI, Jenkins, and the SaaS baseline…



19 May 2026

### [Progressive Delivery & the Service-Mesh Tax](https://blog.derio.net/frank/docs/papers/14-progressive-delivery/)



Progressive delivery is a four-job problem — staged exposure, metric-gated promotion, automated rollback, traffic routing — and the six contenders in 2026 (Argo Rollouts,…



22 May 2026

### [Ingress, Forward-Auth, and the Service Catalog](https://blog.derio.net/frank/docs/papers/15-ingress-and-service-catalog/)



Ingress in 2026 is three jobs stacked — hostname routing and TLS, auth enforcement, and a catalogue humans can read — and six contenders (Traefik, Nginx, Contour/Gateway-API,…



22 May 2026

### [Edge Clusters & Public Exposure](https://blog.derio.net/frank/docs/papers/20-edge-clusters-public-exposure/)



Public exposure from a home cluster is a five-job problem: NAT traversal, TLS termination, DNS, reverse proxy, mesh coordination. The 2026 vendor space splits on one question —…
