You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NAS (Flashtor12)
└── Snapshot btrfs automatici (ogni 4h, retention 7 giorni)
└── PBS (Proxmox Backup Server) → target NAS /backups
├── Backup VM K8s nodes (giornaliero, retention 14gg)
└── Backup via velero (cluster state + PVC)
Velero (in-cluster):
- Schedule: ogni notte
- Target: Garage S3 (object storage interno)
- Include: tutti i namespace, PVC via Restic
5. Distribuzione Applicazioni per Cluster
Cluster Produzione — Talos Linux
Namespace: databases
App
Metodo deploy
Operator/Helm
PostgreSQL
CloudNativePG Operator
cloudnative-pg
MariaDB
MariaDB Operator
mariadb-operator
MongoDB
Community Operator
community-operator
Valkey
Helm StatefulSet
valkey chart
Memcached
Helm Deployment
memcached chart
PgAdmin
Helm
pgadmin4
CloudBeaver
Helm/Kustomize
Namespace: media
App
Note
Jellyfin
GPU passthrough worker-1 (T1000)
Radarr, Sonarr, Prowlarr, Lidarr
arr stack
Immich
Con NFS per storage foto
FreshRSS
Namespace: productivity
App
Note
Nextcloud / OpenCloud
Helm chart, NFS backend
BookStack
Paperless-NGX
OCR abilitato
Trilium
Karakeep
DrawIO
Self-hosted
Excalidraw
OpenProject / Vikunja
Scegliere uno
Actual Budget
Firefly III
RoundCube
Con SMTP/IMAP → PMG
Namespace: tools
App
Note
IT-tools
CyberChef
Omni-tools
Stirling PDF
PrivateBin
Shlink
URL shortener
QR Generator
Namespace: ai
App
Note
LocalAI
Worker-1 (GPU T1000)
OpenWebUI
Frontend per LocalAI
n8n
Automazione, integra con AI
Namespace: infra (infrastruttura cluster)
App
Note
Traefik
IngressController, MetalLB LB
CrowdSec
WAF + IPS, integrazione Traefik
Cert-Manager
TLS automatico (Let's Encrypt / interno)
MetalLB
L2/BGP load balancer
democratic-csi
Storage provisioner
Dozzle
Log viewer container
Pulse
Monitoring
Vaultwarden
Password manager
Speedtest Tracker
Teleport
Accesso sicuro SSH/K8s
Cluster Management — k3s
Namespace: databases
App
Note
PostgreSQL
Singola istanza (o CloudNativePG)
Valkey
Cache per Authentik, Gitea
Namespace: gitops
App
Note
Gitea
SCM leggero, alternativa a GitLab
Semaphore UI
Ansible/Terraform runner
FluxCD o ArgoCD
GitOps per tutti i cluster
Namespace: identity
App
Note
Authentik
SSO/OIDC per tutte le app
OpenBao
Secrets management (fork OSS di Vault)
Namespace: infra-mgmt
App
Note
Sidero Omni
Gestione cluster Talos
Portainer
Visualizzazione container (opzionale con Sidero)
NetBox
IPAM e documentazione infra
Garage S3
Object storage distribuito interno
Rackpeek / Scanopy
Inventory fisico
Traefik
Ingress cluster management
Authentik (outpost)
Proxy per proteggere tool non-OIDC
Nota su Rancher vs Sidero Omni: dato che usi Talos per il cluster prod, Sidero Omni è la scelta naturale e superiore. Rancher ha senso se gestisci cluster eterogenei (EKS, GKE, ecc.). Per homelab Talos-first: usa Sidero Omni.
Cluster Dev/Test — k3s
Ambiente usa e getta: CI/CD pipeline da Gitea → deploy su dev
FluxCD: sync automatico da branch dev del repo
Risorse limitate: 10 vCPU, 20GB RAM totali
Storage: solo NFS (nessun iSCSI dedicato, usa namespace dev sul pool dev)
Nessun ingress pubblico (solo accesso interno via VLAN 50)
6. Servizi Esposti (Ingress & SSL)
Architettura Ingress
Internet → pfSense (NAT 80/443) → DMZ VLAN 70
→ Traefik (MetalLB IP in VLAN 31)
├── *.dominio.tld → app produzione
├── tools.dominio.tld → toolbox
└── CrowdSec middleware (WAF)
LAN Trust (VLAN 10) → Traefik management (VLAN 41)
├── gitea.interno → Gitea
├── authentik.interno → Authentik
└── omni.interno → Sidero Omni
TLS Strategy
Cert-Manager con Let's Encrypt (wildcard via DNS challenge)
Alternativa interna: Step CA (PKI interna per servizi privati)
Authentik come OIDC provider → SSO per tutte le app compatibili
7. BOM — Espansione Hardware
Priorità Alta (necessario)
Componente
Qtà
Motivazione
RAM upgrade Geekom IT15: DDR5 SO-DIMM 32GB (kit da 2x16GB o 1x32GB)
3 kit
Portare da 32→64GB ciascuno. Attualmente insufficiente per ospitare 3 VM simultanee.
Configurare GPU passthrough T1000 su MS-01 e M920q
Deploy NVIDIA device plugin su Talos worker-1
Deploy LocalAI + OpenWebUI
Deploy n8n con integrazione AI
9. Note Tecniche Importanti
Talos Linux — Dettagli
# machine config — aggiungere alla sezione machine.network# Ogni nodo Talos deve avere NIC in VLAN 30 (K8s) e VLAN 60 (storage)machine:
network:
interfaces:
- interface: eth0vip:
ip: 10.0.30.50 # VIP control plane
- interface: eth1addresses:
- 10.0.60.x/24 # storage NIC dedicata
k3s HA Setup
# Primo server (embedded etcd)
curl -sfL https://get.k3s.io | sh -s - server \
--cluster-init \
--disable traefik \ # useremo traefik via Helm
--disable servicelb \ # useremo MetalLB
--node-taint "node-role.kubernetes.io/control-plane=:NoSchedule" \
--tls-san 10.0.40.10 \ # VIP MetalLB mgmt
--flannel-iface eth0
# Nodi aggiuntivi
curl -sfL https://get.k3s.io | sh -s - server \
--server https://10.0.40.10:6443 \
--token <TOKEN>
democratic-csi — Config NFS (esempio)
# values-nfs.yamlcsiDriver:
name: "org.democratic-csi.nfs"driver:
config:
driver: freenas-nfs # oppure synology-nfsinstance_id: "flashtor12"httpConnection:
host: 10.0.60.10 # IP NAS su VLAN storageport: 5000apiKey: "xxxxx"nfs:
shareHost: 10.0.60.10shareAlldirs: falseshareAllowedHosts: []shareAllowedNetworks: ["10.0.30.0/24","10.0.40.0/24","10.0.50.0/24"]
GPU Passthrough Proxmox → Talos
# In /etc/modprobe.d/pve-blacklist.conf su nodo Proxmox
blacklist nouveau
blacklist nvidia
options vfio-pci ids=10de:1cb3 # PCI ID del T1000# Nel config VM Talos (tramite Proxmox UI)# Machine: q35# BIOS: OVMF (UEFI)# Aggiungere PCI device: GPU T1000, passthrough=1, rombar=0