Self-hosting per principianti 1. Introduzione al Self-Hosting Cos'è il self-hosting Il self-hosting è la pratica di ospitare e gestire personalmente servizi, applicazioni e dati su hardware di proprietà o controllato direttamente, invece di affidarsi a fornitori cloud di terze parti. Consiste nell'eseguire software, generalmente open-source, su un server domestico o un Virtual Private Server (VPS) per replicare o sostituire le funzionalità dei servizi commerciali. Pro e Contro Pro Privacy : I dati non vengono ceduti a terzi. Controllo : Gestione totale dell'infrastruttura, del software e degli accessi. Risparmio a lungo termine : Riduzione o eliminazione degli abbonamenti mensili per servizi cloud. Formazione : Acquisizione di competenze in ambito sistemistico, reti e sicurezza. Contro Responsabilità : Sicurezza, aggiornamenti e continuità del servizio dipendono esclusivamente dall'amministratore. Investimento iniziale : Necessità di acquistare hardware. Curva di apprendimento : Richiede tempo per studiare e implementare le soluzioni. Rischio perdita dati : Richiede l'implementazione autonoma di strategie di backup efficaci. Casi d'uso comuni Cloud Storage : Sincronizzazione e archiviazione file (es. Nextcloud). Media Streaming : Gestione di librerie video e audio personali (es. Jellyfin). Password Manager : Archiviazione crittografata delle credenziali (es. Vaultwarden). DNS Sinkhole : Blocco di pubblicità e tracker a livello di rete locale (es. Pi-hole). Domotica : Controllo locale dei dispositivi smart home (es. Home Assistant). 2. Requisiti Hardware e Software Scelta dell'Hardware Non è necessario hardware di fascia alta per iniziare. Le opzioni includono: Mini PC (es. processori Intel N100) : Ottimo rapporto prestazioni/consumi, supporta transcodifica video. Consigliato. si consiglia prodotti zimastore che hanno porte pci e possibilità di upgrade futuri Thin Client e PC ricondizionati : Economici, prestazioni adeguate e bassi consumi. Raspberry Pi : Basso consumo energetico. Ideale per servizi leggeri. Hardware di recupero : Vecchi computer. Costo iniziale nullo, ma consumi elettrici più elevati. Scelta dei Dischi La scelta del supporto di memorizzazione deve bilanciare prestazioni, capacità e costi. Tipo di Disco Prestazioni Costo/GB Utilizzo Consigliato Note Specifiche SSD NVMe (M.2) Molto elevate Elevato Sistema operativo, container (Docker), database. Massima reattività del sistema. SSD SATA Medie Medio Macchine virtuali, cache, servizi secondari. Compromesso tra velocità e capacità. HDD CMR (NAS) Basse Basso Archiviazione di massa, media server, backup. Es. WD Red Plus, IronWolf. Progettati per uso 24/7 e array RAID/ZFS. HDD SMR Molto basse Molto basso Nessuno in ambito self-hosting. Da evitare per NAS/RAID: cali drastici di prestazioni e rischi di ricostruzione fallita. Panoramica sui RAID (Redundant Array of Independent Disks) Il RAID permette di combinare più dischi fisici logici per migliorare la tolleranza ai guasti (ridondanza) e le prestazioni. Nota fondamentale: il RAID garantisce la continuità operativa in caso di guasto hardware, ma NON sostituisce un backup esterno. È fortemente consigliato implementare almeno una configurazione in RAID 1 per i dati essenziali. Livello RAID Dischi Minimi Tolleranza Guasti Caratteristiche Utilizzo Consigliato RAID 0 (Stripe) 2 Nessuna Somma le capacità e massimizza la velocità. La rottura di un disco distrugge tutti i dati. Cache temporanee o dati sacrificabili. Da evitare per lo storage principale. RAID 1 (Mirror) 2 1 disco I dati sono scritti identici su due dischi. La capacità totale è pari a quella del disco più piccolo. Raccomandato come base per sistema operativo o dati importanti. RAID 5 / RAID-Z1 3 1 disco Distribuisce dati e parità sui dischi. Buon compromesso tra spazio utile e ridondanza. Archiviazione di massa su NAS (es. 3 o 4 dischi). RAID 6 / RAID-Z2 4 2 dischi Doppia parità. Sopravvive alla rottura simultanea di due dischi. Array di storage di grandi dimensioni. Backup e Sicurezza Dati Il RAID garantisce la continuità operativa, non protegge da cancellazioni accidentali, corruzione software o ransomware. Una strategia di backup indipendente è obbligatoria. La Regola del 3-2-1 Lo standard di settore per garantire l'integrità e la reperibilità dei dati prevede: 3 copie dei dati : Il dato primario e due copie di backup. 2 supporti fisici differenti : Memorizzare i backup su media diversi (es. NAS principale e un disco USB esterno o un secondo server locale). 1 copia off-site (remota) : Mantenere una copia fisicamente in un altro luogo per proteggersi da disastri locali (incendi, furti). Implementabile tramite storage Cloud (es. AWS S3, Backblaze B2) o un NAS remoto. Software consigliati : BorgBackup, Restic, Kopia, Proxmox Backup Server. Scelta del Sistema Operativo Le interfacce grafiche desktop consumano risorse e vengono omesse a favore della riga di comando o interfacce web. Sistemi Operativi Linux Tradizionali Debian Guida : Massima stabilità e leggerezza. Sistemi per NAS TrueNAS : Ottimo punto di partenza per principianti con esigenze focalizzate sull'archiviazione. Supporta nativamente l'installazione di container e applicazioni oltre alla gestione avanzata dei dischi (ZFS). Soluzioni All-in-One YunoHost : Sistema operativo basato su Debian che automatizza l'installazione e la configurazione dei servizi tramite un'interfaccia web. Estremamente consigliato per chi cerca semplicità immediata. CasaOS : Interfaccia web installabile su Linux. Semplifica il deployment tramite GUI. Soluzioni Pro Proxmox VE : Hypervisor bare-metal per macchine virtuali e container (LXC). Richiede hardware più performante. (Aggiornamento futuro) Note: per ogni soluzione verrà fornita una configurazione. Esempio di Sistema Economico: ZimaBlade + TrueNAS Configurazione entry-level ottimizzata per affidabilità e basso costo, ideale per archiviazione sicura e gestione di servizi basilari. Hardware : ZimaBlade. Basso consumo, ingombro minimo, dotato di interfaccia PCIe per espansioni (es. controller SATA addizionali). Storage : 2x HDD WD Red Plus (tecnologia CMR, specifici per NAS). Configurazione Dischi : RAID 1 (Mirror). Garantisce ridondanza dei dati tollerando la rottura di un disco. Sistema Operativo : TrueNAS. Offre gestione avanzata dei volumi tramite file system ZFS e interfaccia web per l'amministrazione. Carico di Lavoro : Adatto per archiviazione file (SMB/NFS), target di backup, media server per flussi diretti e servizi leggeri in container (es. Pi-hole, istanza base di Nextcloud). 2.1 Debian 1. Installazione e Configurazione Iniziale Debian in maniera GRAFICA 1. Preparazione Scaricare l'immagine ISO Netinst (Network Installer) dal sito ufficiale di Debian. Creare una chiavetta USB avviabile utilizzando software come Rufus (Windows) o BalenaEtcher (multipiattaforma). 2. Installazione Avviare il dispositivo dalla chiavetta USB e selezionare Graphical Install . Seguire le istruzioni a schermo per lingua, fuso orario e tastiera. (Nota per spostarsi tra i menù andare avanti o indietro premere TAB o premendo invio se volete spuntare una casella andateci sopra con il tab o con le freccie e poi premete lo spazio) Inserire il nome host (es. homeserver ). Lasciare vuoto se chiede del dominio. Impostare una password complessa per l'utente root e creare un nuovo account utente standard esempio server . Mettere anche una password al nuovo utente salvarsi entrambe le password e che siano diverse. Partizionamento dischi : Per i principianti, selezionare Guidato - usa l'intero disco o Guidato - usa l'intero disco e imposta LVM cifrato (opzionale per una maggiore sicurezza). per i pachetti premere sempre invio e attendere scegliere se mandare statistiche a debian e attendere la fine. 3. Selezione del Software Questo è il passaggio fondamentale per ottimizzare le risorse: Deselezionare "Debian desktop environment" e qualsiasi altra interfaccia grafica (GNOME, KDE, ecc.). Selezionare "SSH server". Questo è obbligatorio per gestire il server da remoto. Mantenere "Utilità di sistema standard". 4. Primo Accesso Al termine dell'installazione, riavviare e rimuovere la chiavetta USB. Individuare l'indirizzo IP del server facendo l'accesso alla macchina fisica come nell'immagine Una volta entrati con l'utente root mettere la password e lanciare il comando ip addr per vedere che ip ha la nostra macchina Dal computer principale, aprire il terminale (o software come PuTTY) e collegarsi tramite SSH: ssh user@indirizzo_ip e mettere la password. (ignorare il comando -p 22220) In caso di errori sicuramente è la password inserita male allora dare il comando dal server passwd server e riprovare