Indice Serie Homelab
Libertà digitale: creare un ecosistema di servizi personali senza dipendere dalle big tech.
- Homelab: Necessità o Capriccio?
- Homelab: Proxmox e Container LXC
- Homelab: Setup Immich
- Homelab: Setup Navidrome
- Homelab: Accesso Remoto Sicuro
- Homelab: Migrazione da iCloud a Immich
- Homelab: Setup AFFiNE
- Homelab: Strategia Backup KISS
- Homelab: Migrazione di Rete e Wireguard
- Homelab: UPS e Network UPS Tools
- Homelab: Da AFFiNE a Obsidian con Syncthing
Quando un Tool Non Mantiene le Promesse Link to heading
Nell’articolo su AFFiNE ero partito con entusiasmo: una piattaforma all-in-one, self-hosted, che combinava note, whiteboard e database. Sulla carta sembrava la soluzione perfetta. Dopo mesi di utilizzo quotidiano, la realtà si è rivelata diversa.
Perché Ho Abbandonato AFFiNE Link to heading
AFFiNE è un progetto ambizioso e con buone intenzioni, ma al momento presenta limitazioni concrete che lo rendono difficile da adottare come strumento principale.
Limitazioni riscontrate con AFFiNE
- Esportazione dati limitata: Non esiste un modo semplice per esportare in massa tutti i documenti. L’export funziona documento per documento, rendendo una migrazione verso altri tool un processo manuale e tedioso.
- Maturità del progetto: Funzionalità instabili, aggiornamenti che occasionalmente rompono configurazioni esistenti, e un’esperienza utente che cambia frequentemente tra versioni.
- Database inutilizzabile da mobile: Impossibile aggiungere righe ai database da smartphone. Per uno strumento che dovrebbe essere il centro organizzativo della vita digitale, non poter inserire dati al volo dal telefono è un limite grave.
- Vendor lock-in mascherato: Nonostante sia open source, il formato proprietario dei dati crea di fatto una dipendenza dal tool. Open source non significa automaticamente open data.
La lezione imparata: un software può essere open source nel codice ma chiuso nei dati. La vera libertà digitale richiede formati aperti e portabili.
Obsidian: File Markdown e Nient’Altro Link to heading
La scelta è ricaduta su Obsidian per una ragione fondamentale: i dati sono semplici file Markdown in una cartella del filesystem. Nessun database, nessun formato proprietario, nessun server da mantenere.
Perché Obsidian
- File Markdown puri: Ogni nota è un file
.mdleggibile con qualsiasi editor di testo - Zero lock-in: Se domani Obsidian chiude, i file rimangono perfettamente utilizzabili
- Ecosistema plugin maturo: Community attiva con migliaia di plugin per ogni esigenza
- Funziona offline: Nessuna dipendenza da server o connessione internet
- Disponibile su tutte le piattaforme: Desktop (Linux, Mac, Windows) e mobile (Android, iOS)
Obsidian non è open source, ma questo è un compromesso accettabile: i dati sono in un formato completamente aperto. Anche senza Obsidian, i file restano accessibili e utilizzabili. Il vero rischio di lock-in non sta nel software, ma nel formato dei dati.
Installazione Link to heading
L’installazione è banale: scaricare Obsidian dal sito ufficiale, installarlo, e puntarlo a una cartella. Quella cartella diventa il “vault” – l’intero archivio di note. Non serve configurare database, container Docker o servizi di backend.
Sul telefono, l’app Obsidian per Android o iOS funziona allo stesso modo: seleziona una cartella e inizia a scrivere.
Il Problema della Sincronizzazione Link to heading
Obsidian offre un servizio di sincronizzazione a pagamento (Obsidian Sync) che funziona bene, ma contraddice la filosofia homelab: perché affidare la sync dei propri file a un servizio cloud quando abbiamo un’infrastruttura perfettamente funzionante?
La soluzione: Syncthing, un tool di sincronizzazione peer-to-peer, open source, che funziona senza server centrali.
Syncthing: Sincronizzazione Peer-to-Peer Link to heading
Syncthing sincronizza cartelle tra dispositivi in modo diretto, senza passare da alcun cloud. Ogni dispositivo comunica con gli altri tramite protocollo crittografato, e i dati non transitano mai su server di terze parti.
Come funziona Syncthing
- Ogni dispositivo ha un Device ID univoco (una chiave crittografica)
- Si configurano cartelle condivise tra due o più dispositivi
- La sincronizzazione avviene direttamente tra i device, in tempo reale quando sono raggiungibili
- I dati sono crittografati in transito (TLS)
- Supporta discovery locale (LAN) e remoto tramite relay server pubblici (solo per stabilire la connessione, i dati restano diretti quando possibile)
Setup su Desktop (Linux/Mac) Link to heading
Su Linux, Syncthing è disponibile nei repository di praticamente ogni distribuzione. Su Mac si installa via Homebrew:
# Linux (Debian/Ubuntu)
sudo apt install syncthing
# Mac
brew install syncthing
Dopo l’installazione, avviare Syncthing:
syncthing
L’interfaccia web è raggiungibile su http://127.0.0.1:8384. Da qui si gestisce tutto: aggiunta dispositivi, configurazione cartelle, monitoraggio stato.
Configurazione Base Link to heading
La configurazione è semplice:
- Avviare Syncthing su entrambi i dispositivi
- Scambiare i Device ID: ogni dispositivo mostra il proprio ID nella dashboard. Aggiungere il Device ID dell’altro dispositivo su ciascuno
- Condividere la cartella: su uno dei dispositivi, aggiungere la cartella del vault Obsidian come “Shared Folder” e selezionare l’altro dispositivo come destinatario
- Accettare la condivisione: sull’altro dispositivo apparirà una notifica per accettare la cartella condivisa. Scegliere il path locale dove salvare i file
- Attendere la sincronizzazione: Syncthing inizierà a trasferire i file automaticamente
Setup su Android Link to heading
Syncthing per Android è disponibile su F-Droid (consigliato) e Google Play. L’app si chiama Syncthing-Fork, un fork mantenuto attivamente dalla community che ha sostituito l’app originale ormai non più aggiornata.
F-Droid: Syncthing-Fork
Google Play: Syncthing-Fork
Una volta installata, la configurazione segue lo stesso principio: scambiare Device ID con il desktop e condividere la cartella del vault.
Consigli di Configurazione per Android Link to heading
L’uso di Syncthing su Android richiede qualche accorgimento per bilanciare sincronizzazione e consumo batteria.
Ottimizzazione batteria Android
- Disabilitare l’ottimizzazione batteria per Syncthing-Fork: Impostazioni Android –> App –> Syncthing-Fork –> Batteria –> “Nessuna restrizione”. Senza questa impostazione, Android uccide il processo in background e la sincronizzazione non avviene.
- Run Conditions: Nelle impostazioni di Syncthing-Fork, configurare le condizioni di esecuzione. Consiglio di attivare la sincronizzazione solo su WiFi per evitare consumi dati mobili, e di tenere la sincronizzazione attiva anche con batteria scarica se il vault non è troppo grande.
- Cartella del vault su storage interno: Posizionare il vault Obsidian nella memoria interna del telefono (es.
/storage/emulated/0/Obsidian/MioVault), non su SD card. Le performance di sincronizzazione su SD card sono significativamente peggiori.
nota.sync-conflict-20260204.md). Basta aprire entrambi i file, decidere quale versione tenere, e cancellare il conflitto. In pratica, con un utente singolo, i conflitti sono rarissimi.Workflow Quotidiano Link to heading
Il flusso di lavoro risultante è naturale:
- Desktop: Apro Obsidian, scrivo note, organizzo progetti. I file vivono in una cartella locale.
- Telefono: Apro Obsidian su Android, le note sono già sincronizzate. Posso aggiungere appunti al volo, checklist, idee.
- Syncthing: Lavora in background, sincronizza le modifiche tra i dispositivi in pochi secondi quando sono sulla stessa rete, o attraverso relay quando sono fuori casa.
Non serve pensarci: funziona e basta. Nessun account cloud, nessun servizio da pagare, nessun dato che esce dal perimetro dei propri dispositivi.
Lezioni Imparate Link to heading
Il passaggio da AFFiNE a Obsidian ha rinforzato un principio chiave dell’approccio homelab: la semplicità vince. Un’app che lavora su file Markdown sincronizzati peer-to-peer è più affidabile, più portabile e più resiliente di un’architettura con database PostgreSQL, Redis e container Docker.
Non sempre la soluzione più sofisticata è quella migliore. A volte, file di testo e una buona sincronizzazione sono tutto ciò che serve.