📝 Decision Records (ADR)
Registro delle decisioni architetturali con motivazioni e alternative valutate.
ADR-001 — Proxmox VE come piattaforma di virtualizzazione
Decisione: Usare Proxmox VE come hypervisor.
Motivazione: Proxmox è open source, gratuito, basato su Debian e offre un'interfaccia web completa per gestire sia VM KVM che container LXC. È usato in ambito enterprise ed è la scelta standard per homelab avanzati.
Alternative valutate: VMware ESXi (a pagamento), TrueNAS SCALE (orientato NAS), Unraid (a pagamento).
ADR-002 — LXC Container invece di Docker
Decisione: Usare container LXC invece di Docker.
Motivazione: LXC offre isolamento a livello di sistema operativo completo, ogni container ha il proprio init system (systemd), è più leggero di una VM e più isolato di Docker. Per servizi che girano 24/7 su hardware limitato, LXC è più efficiente.
Alternative valutate: Docker + Portainer (più semplice ma meno isolamento), VM complete (troppo overhead).
ADR-003 — Jellyfin invece di Plex
Decisione: Usare Jellyfin come media server.
Motivazione: Jellyfin è completamente gratuito e open source, non richiede account esterni, non invia dati a terzi e non ha funzioni dietro paywall. Con un solo utente e Cloudflare Tunnel per l'accesso remoto, non serve la relay di Plex.
Alternative valutate: Plex (richiede account e Plex Pass per funzioni avanzate), Emby (freemium, meno community).
ADR-004 — Cloudflare Tunnel invece di port forwarding
Decisione: Usare Cloudflare Tunnel per l'accesso remoto pubblico.
Motivazione: Il port forwarding espone porte direttamente su internet, richiede IP statico e aumenta la superficie di attacco. Cloudflare Tunnel stabilisce una connessione uscente, nasconde l'IP domestico e fornisce HTTPS automatico con protezione DDoS.
Alternative valutate: Port forwarding + DynDNS (meno sicuro), VPN tradizionale (più complessa).
ADR-005 — Tailscale per accesso privato
Decisione: Usare Tailscale come VPN mesh per i servizi di gestione.
Motivazione: Tailscale è basato su WireGuard, il protocollo VPN più moderno e sicuro. Non richiede configurazione di server VPN, gestisce automaticamente il NAT traversal e permette connessioni peer-to-peer dirette. Il piano gratuito è sufficiente per uso personale.
Alternative valutate: OpenVPN (più complesso da configurare), WireGuard raw (richiede gestione manuale delle chiavi), ZeroTier (simile ma meno performante).
ADR-006 — mergerfs invece di LVM per il pool media
Decisione: Usare mergerfs per unire i due dischi media.
Motivazione: mergerfs unisce più dischi in un unico mount point senza distruggere i dati esistenti. Se un disco si rompe, si perdono solo i file su quel disco (non tutto come con RAID 0). È trasparente per le applicazioni e semplicissimo da gestire.
Alternative valutate: LVM (distrugge i dati esistenti, più complesso), RAID 0 (rischio perdita totale dati), RAID 1 (spreco di spazio, non necessario per media).
ADR-007 — MkDocs invece di Outline/Wiki.js
Decisione: Usare MkDocs con tema Material per la documentazione.
Motivazione: MkDocs genera siti statici da file Markdown, è leggerissimo, non richiede database o autenticazione OAuth. Il tema Material è professionale e usato da molte aziende. I file Markdown possono essere versionati su Forgejo.
Alternative valutate: Outline (richiede PostgreSQL, Redis e OAuth obbligatorio), Wiki.js (pesante), Bookstack (troppo complesso per uso personale).