Vai al contenuto

📝 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).