Arquitectura

Mapa a alt nivell de com la plataforma TekGarden connecta la infraestructura on-premise, l’edge cloud i l’accés remot.

Visió de xarxa

graph TB subgraph Internet["Internet"] USER["Usuaris"] REMOTE["Portàtils / Mòbil
WireGuard road warrior"] end subgraph Cloud["Edge Cloud · VPS Hetzner"] PANGOLIN["Pangolin
Gateway zero-trust"] FORGEJO["Forgejo
Git self-hosted + CI
només xarxa privada"] end subgraph OnPrem["On-Prem · Homelab"] PFSENSE["Router pfSense
Regles firewall + WireGuard road warrior
Obert només: DNS, Traefik QNAP, Traefik k3s"] PROXMOX["Clúster Proxmox VE
2 nodes + QDevice"] K8S["Kubernetes (k3s)
2 clústers HA
prod + staging"] QNAP["QNAP NAS
Docker + Backrest backups
+ Traefik (ingress Docker)"] PBS["Proxmox PBS
Backups locals → sync B2"] SECRETS["Secrets
1Password + SOPS/age
+ Kyverno"] end subgraph External["Serveis externs"] CF["Cloudflare
DNS + CDN"] B2["Backblaze B2
Backups off-site"] ONEPW["1Password
Vault de secrets"] TG["Telegram
Alertes"] end subgraph Offline["Offline"] EXTDISK["Disc extern
Còpia setmanal offline"] end USER -->|HTTPS| CF CF -->|Túnel| PANGOLIN PANGOLIN -->|Zero-trust| PFSENSE PFSENSE -->|DNS + Traefik només| QNAP PFSENSE -->|DNS + Traefik només| K8S PFSENSE --> PROXMOX PROXMOX --> K8S PROXMOX --> QNAP REMOTE -.->|WireGuard VPN| PFSENSE PFSENSE -.->|xarxa privada| FORGEJO PANGOLIN -.->|accés extern opcional| FORGEJO FORGEJO -.->|GitOps pull| K8S FORGEJO -.->|CI deploy| QNAP PBS -.->|backup local| PROXMOX PBS -.->|sync| B2 QNAP -.->|Backrest local| QNAP QNAP -.->|Backrest → B2| B2 QNAP -.->|setmanal| EXTDISK K8S --> SECRETS SECRETS -.->|op inject| ONEPW K8S -.->|alertes| TG

Descripció del flux

  1. Accés públic flueix via Cloudflare → Pangolin (gateway de túnel zero-trust al VPS de Hetzner) → router pfSense. pfSense només permet tràfic a DNS, al Traefik del QNAP (ingress Docker) i al Traefik de k3s (ingress Kubernetes): tots protegits amb agents CrowdSec.
  2. Accés remot: un WireGuard road warrior VPN al pfSense permet connectar portàtils i mòbil des de qualsevol lloc. Un cop connectat, tens accés a tota la xarxa del TekGarden i a la xarxa privada de Hetzner (inclòs Forgejo), com si fossis a casa.
  3. Forgejo funciona a una xarxa privada de Hetzner: només accessible internament des del TekGarden. Si cal accés extern, Pangolin el pot exposar sota demanda.
  4. GitOps s’executa des de Forgejo: FluxCD fa pull dels manifests als clústers Kubernetes, i els runners de CI despleguen stacks Docker al QNAP i altres hosts Docker.
  5. Proxmox VE (2 nodes + QDevice per quòrum) proporciona la capa de virtualització que executa tant els clústers Kubernetes com els hosts Docker.
  6. Kubernetes executa dos clústers HA de k3s (producció + staging, 12 nodes en total).
  7. Docker executa 30+ serveis a 3 hosts standalone, incloent el QNAP NAS.
  8. Backups segueixen una estratègia de 3 nivells:
    • Proxmox PBS: còpies locals dels guests de Proxmox, després sincronitzades a Backblaze B2.
    • Backrest (Docker al QNAP): còpies locals de les dades Docker, després enviades a B2.
    • Còpia offline: backup setmanal a un disc extern.
  9. Observabilitat (Grafana + Prometheus + Loki + Alertmanager) monitoritza tot i envia alertes a Telegram.
  10. Secrets estan centralitzats a 1Password (injectats via op inject), amb SOPS/age per a manifests xifrats a GitOps i Kyverno per a policies en runtime.

Stack tecnològic

CapaTecnologia
Edge / TúnelPangolin, Cloudflare
VPNWireGuard (road warrior al pfSense)
Git / CIForgejo (xarxa privada Hetzner)
VirtualitzacióProxmox VE (2 nodes + QDevice)
Orquestraciók3s (2 clústers HA), Docker Compose (3 hosts)
GitOpsFluxCD
IngressTraefik (k3s + Docker), cert-manager, Let’s Encrypt, external-dns
Load BalancerMetalLB
ObservabilitatGrafana, Prometheus, Loki, Alertmanager
Secrets1Password, SOPS/age, Kyverno
IaCOpenTofu, Ansible (mode pull)
XarxapfSense, VLANs, Pi-hole, Cloudflare DNS
SeguretatCrowdSec (a tots els Traefik), policies Kyverno, NetworkPolicies
BackupsProxmox PBS → B2, Backrest (QNAP) → B2, disc offline setmanal
EmmagatzematgeNVMe local, iSCSI QNAP