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
roote creare un nuovo account utente standard esempioserver.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 addrper vedere che ip ha la nostra macchina - Dal computer principale, aprire il terminale (o software come PuTTY) e collegarsi tramite SSH:
ssh user@indirizzo_ipe 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