Abbonamenti? Basta! Come creare il tuo Cloud con Ubuntu e Nextcloud

L’obsolescenza programmata è un concetto che personalmente cerco di contrastare. Mi serviva spazio per i tanti TB di backup delle foto in RAW e di pagare abbonamenti non se ne parla.

Per il mio caso specifico, ho usato questi componenti: CPU I5-9600K su scheda madre MSI Z390A-Pro, 2 banchi RAM da 8gb G.Skill (16 totali, pure troppi), SSD Sata Kingston da 120gb per il solo sistema e 4 HDD meccanici SATA recuperati in ogni dove: Seagate Barracuda 500gb, WD Blue 1tb, un glorioso Maxtor da 500gb e un Hitachi da 500gb per una capacità totale di archiviazione di 2.5tb. Tutti ovviamente testati con Crystal Disc con risultati incoraggianti. Il tutto è alimentato da un affidabilissimo PSU Seasonic da 550w. Come case ho riutilizzato l’immenso, compagno di una vita, Antec Twelve-Hundred. Delle 6 ventole presenti, per minimizzare i consumi, ho collegato solo 3 ventole, le due frontali per l’immissione, poste davanti agli HDD e quella posteriore.

Perchè non un Raspberry visto che probabilmente avrebbe semplificato le cose?
Due motivi semplici: Non avevo voglia di spendere soldi e preferisco l’archiaviazione su hard disk.

Darò scontate alcune conoscenze base da nerd tipico. In caso di dubbi, puoi scrivermi!

1. Il Cuore del Progetto: Perché Ubuntu Server?

Per un progetto “headless” (senza monitor), la versione Ubuntu Server 24.04 LTS (o successive) è la scelta razionale. È leggera, non spreca risorse in interfacce grafiche inutili e garantisce anni di aggiornamenti di sicurezza.

Requisiti minimi consigliati:

  • Un processore x86 o un vecchio laptop (i3 o superiore).
  • Almeno 4GB di RAM.
  • Consigliatissimo un disco SSD per il sistema operativo (anche solo 120GB) e uno o più HDD meccanici generosi per l’archivio dati.
2. Installazione “Snap”: La via rapida

Esistono molti modi per installare Nextcloud (LAMP stack, Docker), ma per un server casalingo la versione Snap è imbattibile per facilità di manutenzione e aggiornamenti automatici.

Una volta installato Ubuntu Server e aver effettuato l’accesso via SSH, digita:

sudo snap install nextcloud

Dopo pochi secondi, il tuo server è già attivo sulla tua rete locale. Ti basterà digitare l’indirizzo IP del PC (es. 192.168.1.15) nel browser di un altro computer per iniziare la configurazione guidata.

3. Preparazione dei Dischi (Il montaggio manuale)

In un server di recupero, spesso il sistema operativo sta su un piccolo SSD, mentre i dati vanno su un HDD meccanico più capiente. Ubuntu non “vede” il secondo disco in automatico come Windows; dobbiamo istruirlo.

  • Identifica il disco: Digita lsblk. Vedrai una lista (sda, sdb…). Individua il disco dati in base alla dimensione (es. sdb).
  • Formatta (se necessario): sudo mkfs.ext4 /dev/sdb (Attenzione: cancella tutto!).
  • Crea il punto di montaggio: sudo mkdir /media/nextcloud_data.
  • Montaggio automatico all’avvio: Per evitare che il disco “sparisca” dopo un riavvio, dobbiamo modificare il file fstab.
    1. Ottieni l’UUID del disco: sudo blkid /dev/sdb.
    2. Apri il file: sudo nano /etc/fstab.
    3. Aggiungi in fondo: UUID=[tuo-uuid] /media/nextcloud_data ext4 defaults 0 2.
4. Spostare i dati di Nextcloud sul disco secondario

Di default, lo Snap di Nextcloud scrive tutto sul disco principale (spesso troppo piccolo). Ecco come spostare la “pancia” del server sul disco capiente:

  1. Connetti il disco allo Snap: sudo snap connect nextcloud:removable-media
  2. Modifica il file di configurazione: sudo nano /var/snap/nextcloud/current/nextcloud/config/config.php
  3. Trova la riga 'datadirectory' => '/var/snap/nextcloud/common/nextcloud/data', e cambiala nel tuo nuovo percorso: 'datadirectory' => '/media/nextcloud_data/data',
nextcloud
5. IP Statico: Fondamentale per la stabilità

Un server non può cambiare indirizzo ogni volta che si riavvia il router. Su Ubuntu Server si usa Netplan.

  • Apri il file di rete: sudo nano /etc/netplan/00-installer-config.yaml.
  • Imposta un IP fisso (es. 192.168.1.100) seguendo la gerarchia del file (fai attenzione agli spazi, sono vitali in YAML!):YAMLethernets: enp3s0: addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1]
  • Applica: sudo netplan apply.
6. Sicurezza e Accesso Remoto

Un server personale non serve a molto se non puoi accedervi quando sei fuori casa. Qui abbiamo due strade:

  • Port Forwarding + DuckDNS: La via classica (apertura porte sul router e certificati Let’s Encrypt).
  • Tailscale: La via moderna (e quella che ho scelto io). Installa Tailscale sul server e sui tuoi dispositivi; creerai una VPN privata in 60 secondi, accedendo al tuo cloud ovunque nel mondo senza esporre il server ad attacchi esterni.

Personalmente, ho deciso di non lasciarlo acceso h24 ma di accenderlo, tramite WakeOnLan (opportunamente configurato nel bios), all’occorrenza. E per farlo ci vuole qualcosa che sia sempre acceso. Per curiosità e tanto per sperimentare, ho comprato all’astronomica cifra di 3,50 € un scheda ESP32. Ci ho flashato dentro un pannello di controllo in HTML e altro codice che nemmeno io ho capito (grazie Claude…) con 2 bottoni: On e Off. Fatto!

Scheda ESP32
7. Ottimizzazione Hardware

Dato che stiamo usando hardware di recupero, ecco due consigli per renderlo professionale:

  • Storage: Se il vecchio PC ha solo un disco, valuta l’acquisto di un secondo disco per il backup. Nextcloud ha plugin eccellenti per il backup automatico dei dati.
  • Silenziosità: Se il server starà acceso h24 in ufficio, assicurati che le ventole siano pulite o sostituiscile con modelli a bassa rumorosità. Un server rumoroso è un server che finirai per spegnere. E mi raccomando: CHE CONSUMI POCO, togli la scheda video che non serve a niente!

Attenzione: A me non è andata liscia subito ed è impossibile creare una guida che vada bene per tutti i casi e gli inconvenienti. Se incappi in problemi con l’installazione di Ubuntu, NextCloud o Tailscale, scrivimi, proverò ad aiutarti.

Antec Twelve Hundred

L’interno dell’Antec, qui ancora in fase di configurazione con tutte le sue ventole, molto anni 2000, accese.