The Stack

Main Site

Compute

3x Proxmox nodes (Minisforum MS-A2)

Proxmox Resources

Storage

Synology DS920+ - 4x Seagate IronWolf Pro 8TB (RAID5)

Synology DX517 expansion - 4x Seagate Exos 7E10 8TB (SHR)

S3: Versity Gateway + RusticFS - ~2TB total

Networking

  • D-Link DGS-1210-24 — 24-port managed Gigabit switch
  • 3x Tenda SM108 — 8-port 2.5GbE unmanaged switches
  • 3x UniFi AC LR — Long-range WiFi access points

Kubernetes

Deployed via Spectro Cloud (migrated from Kubespray)

  • Cilium — CNI, network policies, LoadBalancer IPAM
  • Traefik — Ingress controller (public + private entrypoints)
  • cert-manager — Automated TLS certificates (Let’s Encrypt)
  • Rook-Ceph — Distributed storage for PVCs
  • VPA — 92 policies auto-tuning resource requests
  • Reloader — auto-restart pods on ConfigMap/Secret changes
  • Descheduler — rebalance pods across nodes
  • k8tz — timezone injection for pods
  • etcd-defrag — automatic etcd maintenance
  • PriorityClasses: critical-service (800M) for infra, high-priority-service (100M) for apps

GitOps

Flux CD managing 90+ applications (migrated from ArgoCD)

Git & CI

Forgejo - 230+ repos organized via organizations

  • Migrated from GitLab (self-hosted)

Forgejo Repos

Forgejo Actions - 67 workflows (GitHub Actions compatible)

  • Migrated from GitLab CI + GitLab CI/CD Catalog

Crossplane CI - Compositions with full CI testing

Core Services

ServiceSolutionNotes
DNS (Private)AdGuard Home2 instances, OpenTofu provisioned
DNS (Public)DNSControlGcore + deSECCI-managed, redundant
Dynamic DNSddns-updaterKeeps public DNS records in sync
VPNTailscaleMesh VPN connecting all sites
Network ControllerUniFi ControllerManages WiFi APs
AuthPocket IDOIDC provider
Secrets (K8s)Infisical
DatabasesCNPG, MariaDB OperatorCrossplane compositions
CacheValkeyRedis replacement, 3-node Sentinel HA
Container RegistryHarbor133 projects, 366 repos, ~200GB S3, 274 replication policies, Crossplane managed
Nix CacheNCPSLocal caching proxy for Nix/Devbox, speeds up CI pipelines
Policy EngineKyvernos3bkp auto-injection, resource defaults
Dependency ManagementRenovate + Renovate OperatorPer-repo RenovateJobs, central config, custom regex/groups
Observabilitykube-prometheus-stack, Blackbox ExporterPrometheus, Grafana, Alertmanager
ExportersAdGuard, domain, Hetzner Cloud, NUT, Proxmox VE, MQTT, TailscaleFleet of custom metric exporters
LoggingLoki, OpenTelemetry OperatorLogs, instrumentation
Cert MonitoringcertmonTLS certificate expiry monitoring
Backups (K8s)Velero + Velero UI, Kasten K10, s3bkp (custom)PVC snapshots, cross-cluster migration
Backups (Postgres)Barman (CNPG), PGBackWeb
Backups (VMs)Kopia, rsnapshot
Personal CloudNextcloudFile sync, photos, calendar, contacts
Home AutomationHome Assistant
Automationn8nWorkflow automation
NotificationsntfyPush notifications for alerts and automations
Secrets (Personal)VaultwardenBitwarden server
WikiWiki.js
URL ShortenerKuttSelf-hosted link shortening
RSSFreshRSS + RSS-BridgeFiery Feeds on iOS
BookmarksLinkwarden
ResumeReactive Resume
SharingPrivateBin, Yopass, croc, transfer.sh, uptermdPastes, secrets, files, web terminal

Custom Solutions

ToolDescription
s3bkpK8s-native PVC backup/restore with cross-cluster migration, auto-injected via Kyverno
kcl-ciCI/CD workflow generator using KCL, self-regenerating workflows (38+ repos)
git-managerTUI for managing Git repos (clone, pull, push, PRs, mirrors, CI status)
imdbtop250rssIMDb Top 250 to RSS feed
theme-apiTheme sync across devices

AI Tooling

Most work done with Claude Code + custom prompts

MCPPurpose
dot-aiK8s deployments, remediation, cluster queries
GrafanaDashboards, alerts, incidents, Loki/Prometheus queries
PrometheusDirect Prometheus queries
Context7Library documentation lookup

DR Site

Hardware

Synology DS1621+

  • 32 GB RAM
  • 3x Seagate IronWolf Pro 14TB
  • 2x Synology 400GB M.2 (cache)

Purpose

  • Backup target for Kopia
  • Offsite backups and replicas

Cloud / VPS

Hardware

Hetzner CX32

  • 4 vCPU (AMD), 8 GB RAM, 80GB
  • 75GB extra storage

Services

  • Mail: Postfix, Dovecot, Roundcube, PostfixAdmin (yes, I self-host email in 2026 — I like pain)
  • Web: WordPress sites, MariaDB
  • Reverse Proxy: Traefik
  • Utilities: echoip, bore (tunnel), tinyproxy
  • Monitoring: Hetzner-exporter, node-exporter
Last updated on