Il cloud di casa

Due mini-PC sempre accesi che ospitano i file, le foto e le telecamere della mia famiglia, senza affidarli a servizi esterni.

Perché l'ho fatto

In famiglia usiamo ogni giorno file, foto e telecamere, e volevo tenerli sotto il mio controllo: sincronizzazione, condivisione e backup decisi da me. Nell'archivio foto ci sono oltre 72.000 immagini. Il vincolo era l'hardware, due piccoli computer con quattro core e poca memoria, quindi nessun servizio doveva restare acceso a vuoto.

Dall'esterno tutto passa da un tunnel Cloudflare, senza aprire porte sul router.

Schema: tunnel, servizi, disco dati e backup
Schema semplificato: dal tunnel ai servizi, ai dischi e al backup.

Cosa c'è dentro

  • Nextcloud per i file, installato direttamente sul sistema con autenticazione a due fattori. La configurazione è versionata, con uno script che nasconde i segreti prima di salvarla.
  • Immich come galleria foto, con riconoscimento dei volti e ricerca a parole. Lavora sopra le foto già presenti in Nextcloud, senza spostare nessun file.
  • Frigate per tre telecamere, con un bot Telegram che avvisa e risponde ai comandi.
  • Uno spegnimento automatico: i servizi inattivi si fermano dopo 30 minuti (due ore per il programma di download) e si riaccendono alla prima visita, con una pagina di attesa che si ricarica da sola.

Alcune scelte e problemi

  1. 01

    Backup che non resta collegato

    Ogni notte uno script copia i dati (circa 260 GB) su un disco esterno da 6 TB che resta scollegato il resto del tempo: lo monta, copia e lo smonta anche se la copia fallisce. Copia anche il database di Immich.

  2. 02

    Passare a Immich senza spostare file

    Le foto già presenti sono passate da libreria esterna a libreria interna con un solo UPDATE sul database, dopo un dump di sicurezza. Poi ho dovuto ricalcolare a mano i checksum, altrimenti l'app sul telefono voleva caricare tutto da capo. Nel controllo di integrità sono emerse 6.715 copie identiche (6,8 GB), finite nel cestino.

  3. 03

    Il riconoscimento sulla GPU

    Il riconoscimento gira sulla scheda grafica integrata. Serve un driver installato a mano e ho ridotto i lavori in parallelo: con i valori iniziali il carico saliva a 16 su 4 core. In parte era un carico solo apparente, e l'ho annotato nel README.

  4. 04

    Un limite di Cloudflare

    Il piano gratuito limita le richieste a 100 MB: 236 video, il più grande di 11 GB, si caricano solo dalla rete di casa o in VPN. L'ho scritto nella documentazione.

  5. 05

    Privacy delle telecamere

    Il programma che distingue i due gatti manda un ritaglio a un assistente AI solo se nessun telefono di famiglia è in casa e se l'inquadratura non sembra una persona. Se non è sicuro, non manda niente. Questa cautela serve perché la presenza rilevata dal Wi-Fi può essere sbagliata: una volta un falso «a casa» aveva tenuto fermo il programma per 20 giorni.

Cosa ho fatto io

Tutto: installazione, configurazione, script, documentazione. Ho lavorato insieme a un assistente AI e ho lasciato dei documenti di passaggio di consegne e un elenco delle «cose da non rompere», per riprendere il lavoro dopo settimane o affidarlo a un agente. Ho misurato prima di decidere: concorrenza, soglie, tempi. Un esperimento, il plugin di riconoscimento di Nextcloud portato sulla GPU, è passato da 3,2 a 0,52 secondi per foto su 229 foto. L'ho poi spento perché Immich fa lo stesso lavoro, ma resta documentato.

Limiti

È un sistema da appassionato: due macchine, nessuna ridondanza oltre al backup su disco esterno, e se un computer si ferma, si ferma tutto. Alcune parti restano manuali e fuori da git (le operazioni pianificate di sistema, il driver della GPU, le credenziali). Il riconoscimento dei due gatti è ancora in lavorazione. Lo uso in famiglia da settembre 2026 e lo mantengo; i repository sono privati, quindi non c'è codice da guardare né demo.

  • Stack

    Linux (Ubuntu) · Docker · Nextcloud · Immich · Frigate · Caddy e Sablier · Cloudflare Tunnel · Pi-hole · Python · shell

  • Il mio ruolo

    Progetto personale: progettazione, installazione e manutenzione.