Tropic Host

Syncthing: cos’è e come configurare la sincronizzazione dei file su un VPS

7 min di lettura
Tropic
Syncthing: cos’è e come configurare la sincronizzazione dei file su un VPS

Syncthing: sincronizzare i file tra dispositivi senza il cloud di terzi

Al mattino modificate un documento sul portatile e lo spegnete. La sera aprite il computer di casa e la versione aggiornata è già presente. Il file non è passato da Google Drive o Dropbox: è stato ricevuto dal vostro nodo Syncthing.

Syncthing sincronizza direttamente le cartelle selezionate tra dispositivi attendibili, mentre l’utente mantiene il controllo sulla posizione in cui vengono archiviati i dati. Un server centrale non è obbligatorio.

Tuttavia, se due computer sono raramente online nello stesso momento, lo scambio delle modifiche diventa difficile. Un VPS sempre attivo risolve il problema: riceve i file da un dispositivo e li trasmette in seguito a un altro.

È importante comprenderne lo scopo. Syncthing non è un’unità di rete né un file manager nel browser, ma uno strumento per replicare automaticamente le cartelle selezionate.

Syncthing in cinque passaggi

La configurazione minima è la seguente:

  1. Installare Syncthing sui computer necessari.
  2. Avviare un’altra istanza di Syncthing su un VPS.
  3. Aprire il pannello del server tramite un tunnel SSH.
  4. Scambiare gli identificativi dei dispositivi e confermare la connessione.
  5. Aggiungere una cartella condivisa, scegliere la modalità di sincronizzazione e attivare la cronologia delle versioni.

Che cos’è Syncthing e come funziona

Syncthing è un programma gratuito e open source per la sincronizzazione continua dei file. Funziona su Windows, macOS, Linux e altri sistemi operativi desktop e server.

Ogni installazione riceve un Device ID univoco, cioè un identificativo crittografico. Affinché due nodi inizino a scambiarsi dati, devono essere aggiunti reciprocamente e occorre autorizzare esplicitamente l’accesso a una cartella specifica. Non esiste un unico account Syncthing nel quale vengono conservati dispositivi e file.

Quando un file cambia, Syncthing lo divide in blocchi, confronta i checksum e trasferisce solo le parti mancanti. Una piccola modifica all’interno di un file di grandi dimensioni, quindi, non richiede sempre di inviare nuovamente l’intero file.

I servizi di individuazione aiutano i dispositivi a trovarsi, ma non archiviano i file. Se non è possibile stabilire una connessione diretta, il traffico crittografato può passare attraverso un relay più lento.

Cosa cambia con un VPS

Senza un server, il portatile può sincronizzarsi direttamente con il computer di casa, ma entrambi i dispositivi devono essere online nello stesso momento, anche solo per poco. Un VPS trasforma la configurazione in un punto di scambio sempre disponibile.

Per esempio, al mattino il portatile invia un progetto al server e viene spento. La sera, il computer di casa riceve la nuova versione dal VPS.

Syncthing è adatto a documenti, note di Obsidian, codice sorgente, fotografie e cartelle di famiglia. È preferibile escludere cache, node_modules e risultati di compilazione tramite .stignore. Non è consigliabile sincronizzare database in esecuzione e immagini di macchine virtuali.

Un VPS crea inoltre una copia dei dati fuori casa. Tuttavia, questa copia diventa un vero backup solo se abbinata al versionamento e a un archivio di backup separato: anche una cancellazione accidentale può propagarsi a tutti i dispositivi.

Syncthing o Nextcloud: quale scegliere

I due strumenti vengono spesso confrontati, anche se risolvono problemi diversi.

CriterioSyncthingNextcloud
ModelloLe cartelle vengono copiate tra i dispositiviI file risiedono su un server centrale
Server necessarioNo, il VPS è facoltativo
Accesso ai file dal browserNon offre una vera unità web
Link pubbliciNo
Modifica collaborativaNon previstaPuò essere aggiunta
Scenario idealeMantenere le stesse cartelle sui propri dispositiviCreare un cloud personale o per un team

Syncthing è indicato per una sincronizzazione discreta in background. Nextcloud è più adatto quando servono accesso web, link di condivisione, account utente, calendario e strumenti di collaborazione.

Come installare Syncthing su un VPS con Docker Compose

I passaggi seguenti sono destinati a un VPS con Ubuntu 24.04. Il pannello resterà associato all’indirizzo locale del server e sarà accessibile tramite un tunnel SSH.

1. Installare Docker

sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker

2. Creare la directory e il file Compose

sudo mkdir -p /opt/syncthing/data
sudo chown -R 1000:1000 /opt/syncthing/data
cd /opt/syncthing
sudo nano compose.yaml

Incollate il contenuto seguente:

services:
  syncthing:
    image: syncthing/syncthing:latest
    container_name: syncthing
    hostname: syncthing-vps
    environment:
      - PUID=1000
      - PGID=1000
      - STGUIADDRESS=
    volumes:
      - ./data:/var/syncthing
    network_mode: host
    restart: unless-stopped

Viene utilizzata l’immagine ufficiale di Syncthing. La modalità di rete host facilita le connessioni dirette, mentre il valore vuoto di STGUIADDRESS mantiene il pannello su 127.0.0.1:8384.

Avviate il container:

sudo docker compose up -d
sudo docker compose ps

3. Consentire le connessioni

Per prima cosa, consentite SSH in modo da non perdere l’accesso al server:

sudo ufw allow OpenSSH
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw enable

22000/TCP viene utilizzato dal protocollo principale di sincronizzazione, mentre 22000/UDP è usato da QUIC. Non è necessario aprire la porta 8384 del pannello. Anche la porta di individuazione locale 21027/UDP di solito non è necessaria su un VPS pubblico.

4. Aprire il pannello tramite SSH

Sul vostro computer, eseguite:

ssh -L 9999:127.0.0.1:8384 root@SERVER_IP

Senza chiudere il terminale, aprite:

http://127.0.0.1:9999

Nel pannello, aprite Actions → Settings → GUI e impostate un nome utente e una password. Se in seguito volete accedere al pannello tramite un dominio, posizionatelo dietro un reverse proxy HTTPS e mantenete attiva l’autenticazione.

5. Aggiungere i dispositivi e la cartella

Installate Syncthing sul computer, quindi procedete in questo modo:

  1. Sul computer e sul VPS, selezionate Actions → Show ID.
  2. Aggiungete il Device ID di ciascun nodo sull’altro dispositivo.
  3. Sul computer, fate clic su Add Folder, scegliete una directory e autorizzate l’accesso al server.
  4. Sul VPS, accettate la cartella e impostate un percorso, per esempio /var/syncthing/Files.

Sui computer, mantenete Send & Receive per la sincronizzazione bidirezionale. Sul VPS è spesso comodo scegliere Receive Only: il server continua a ricevere e trasmettere le modifiche tra i nodi, ma eventuali modifiche locali accidentali effettuate direttamente sul VPS non si propagano in tutta la rete.

Perché Syncthing non sostituisce un backup

Se un file viene eliminato o cifrato su un dispositivo, la modifica può propagarsi agli altri. Per questo motivo, è consigliabile aprire le impostazioni della cartella sul VPS e attivare File Versioning.

Una soluzione pratica è Staggered File Versioning con una conservazione da 30 a 90 giorni. Quando un nodo remoto sostituisce o elimina un file, la versione precedente viene spostata in .stversions. Le copie più vecchie occupano spazio su disco, quindi è opportuno limitarne il periodo di conservazione.

Una configurazione affidabile è composta da tre livelli:

  1. Syncthing mantiene aggiornate le copie di lavoro.
  2. Il versionamento aiuta ad annullare alcuni errori.
  3. Un backup separato e pianificato viene conservato indipendentemente da Syncthing.

Un VPS può conservare i file senza vederne il contenuto?

Syncthing dispone di una modalità per dispositivi non attendibili. Sul computer principale si imposta una password per la cartella, mentre sul VPS si seleziona Receive Encrypted. Il server conserva i dati cifrati e può trasmetterli a un altro dispositivo attendibile che usa la stessa password.

Il contenuto, i nomi dei file, le date e la struttura delle directory vengono nascosti. Restano visibili le informazioni sulla cartella condivisa e le dimensioni approssimative dei file.

Gli sviluppatori considerano ancora questa funzione sperimentale. Conservate separatamente la password e il Folder ID: senza questi dati, il recupero della cartella cifrata potrebbe essere impossibile.

Quale VPS serve per Syncthing

Il consumo di risorse dipende non solo dalla quantità di dati, ma anche dal numero di file, dalla frequenza delle modifiche e dalla prima indicizzazione. Per un nodo personale con documenti e alcune decine di gigabyte, di solito è sufficiente una configurazione iniziale:

  • 1 vCPU;
  • 1 GB di RAM;
  • archiviazione SSD o NVMe;
  • spazio su disco sufficiente per i file e .stversions;
  • una connessione di rete stabile.

Una grande raccolta fotografica o centinaia di migliaia di file richiederanno più risorse. Il carico maggiore si verifica in genere durante la prima scansione e il calcolo degli hash.

Un VPS Ubuntu di base di tropic.host è adatto a questo compito. Potete iniziare con una configurazione ridotta e aumentare le risorse man mano che la raccolta cresce. Nella scelta dello spazio su disco, considerate non solo le cartelle attuali, ma anche i file futuri, i dati temporanei e la cronologia delle versioni.

Cinque errori da evitare

  • Esporre la porta 8384 a tutta Internet. Per la configurazione utilizzate un tunnel SSH e, per un accesso web permanente, HTTPS, una password e un reverse proxy.
  • Considerare la copia sul server come un backup completo. Attivate il versionamento e create archivi di backup separati.
  • Sincronizzare cache e dipendenze. Escludete le directory non necessarie tramite .stignore.
  • Non controllare lo spazio su disco. La directory .stversions può arrivare a occupare molto spazio nel tempo.
  • Lasciare attendibile un dispositivo smarrito. Rimuovetelo dagli altri nodi e proteggete la configurazione di Syncthing che contiene le chiavi del dispositivo.

Cosa sapere sugli smartphone

L’applicazione Android ufficiale è stata abbandonata alla fine del 2024, ma esistono client sviluppati dalla comunità. Non esiste nemmeno un client ufficiale per iOS: le limitazioni delle attività in background rendono difficile la sincronizzazione continua. Prima di collegare la raccolta fotografica principale, provate l’app mobile scelta con una piccola cartella di test.

Conclusione

Syncthing è adatto a chi desidera mantenere le stesse cartelle su più dispositivi senza dipendere obbligatoriamente da un intermediario cloud. Un VPS rende il sistema più comodo: i computer non devono più essere online nello stesso momento e si ottiene una copia sempre disponibile fuori casa.

Per una configurazione sicura, non esponete direttamente il pannello amministrativo, attivate il versionamento e affiancate alla sincronizzazione un backup indipendente.

FAQ

È necessario un VPS per Syncthing?

No. I dispositivi possono sincronizzarsi direttamente. Il VPS funziona come un nodo sempre attivo, permettendo loro di scambiare le modifiche in momenti diversi.

È possibile aprire i file di Syncthing nel browser?

Il pannello web serve per la configurazione, non per consultare i documenti come in Google Drive. Se serve un’unità web, Nextcloud è più adatto.

Syncthing è una soluzione di backup?

No. Le cancellazioni e i danneggiamenti possono propagarsi agli altri dispositivi. Il versionamento aiuta, ma non sostituisce un backup indipendente.

È necessario aprire la porta 8384?

No. Lasciate il pannello su 127.0.0.1:8384 e collegatevi tramite un tunnel SSH. Per la sincronizzazione, aprite 22000/TCP e 22000/UDP.

Il proprietario del VPS può leggere i file?

Con una configurazione normale, potenzialmente sì. Receive Encrypted li conserva in forma cifrata, ma la funzione è ancora considerata sperimentale e richiede di custodire con attenzione la password e il Folder ID.