Vai al contenuto
Illustrazione 3D di un utente che sincronizza laptop e smartphone con un Raspberry Pi su una mensola.

Immagine generata con IA

Syncthing è un programma open source che sincronizza i file direttamente tra i vostri dispositivi, senza passare da un servizio cloud esterno. Un Raspberry Pi sempre acceso diventa così il punto fermo della rete di casa: le stesse cartelle restano allineate su PC, portatile e Raspberry Pi. Questa guida è pensata per chi parte da Raspberry Pi OS con desktop. Alla fine avrete Syncthing installato dal repository ufficiale, avviato da solo all’accensione e collegato a un secondo dispositivo con una cartella condivisa. I comandi sono quelli della documentazione ufficiale, elencata in fondo.

Eben Upton introduces Raspberry Pi 5Il video si carica da YouTube quando premi play

Cosa serve

  • Un Raspberry Pi con Raspberry Pi OS. La versione a 64 bit è pensata per i modelli con processore a 64 bit, come Raspberry Pi 3, 4 e 5. Quella a 32 bit è per i modelli più vecchi, come il primo Raspberry Pi, il Raspberry Pi 2 e il Raspberry Pi Zero.
  • Di preferenza l’edizione con desktop, con un browser sul Raspberry Pi. All’inizio l’interfaccia web di Syncthing risponde solo dal computer su cui gira, e la prima configurazione passa da lì. Raspberry Pi OS Lite non ha un desktop grafico: chi lo usa trova più avanti come raggiungere l’interfaccia da un altro computer.
  • Un account con i permessi di sudo e una connessione a Internet per scaricare i pacchetti.
  • Un browser che accetti i cookie: secondo la guida introduttiva di Syncthing, senza cookie l’interfaccia web non funziona correttamente.
  • Almeno un secondo dispositivo con Syncthing, perché la sincronizzazione avviene sempre tra due o più dispositivi.

Le istruzioni del repository APT di Syncthing sono scritte per Debian e Ubuntu, non specificamente per Raspberry Pi OS. Raspberry Pi OS però è basato su Debian: l’ultima versione su Debian Trixie, la precedente su Bookworm.

Aggiornare Raspberry Pi OS prima di iniziare

Conviene partire da un sistema aggiornato. Il primo comando aggiorna l’elenco dei pacchetti disponibili, che APT legge da /etc/apt/sources.list e /etc/apt/sources.list.d/.

sudo apt update

Il secondo scarica e installa gli aggiornamenti. La documentazione di Raspberry Pi OS consiglia full-upgrade al posto del normale upgrade, perché Raspberry Pi OS cambia le dipendenze dei pacchetti più spesso di Debian.

sudo apt full-upgrade

Se il comando avverte che gli serve altro spazio per completare l’aggiornamento, prima di proseguire controllate di averne abbastanza libero.

Attenzione: se invece decidete di ripartire da un’immagine nuova del sistema, sappiate che scriverla sulla scheda SD cancella tutto quello che c’è sopra. Prima copiate altrove i file che volete tenere. I due comandi qui sopra, invece, aggiornano il sistema che state già usando.

Scaricare la chiave di firma del repository di Syncthing

Per verificare che i pacchetti siano autentici, APT ha bisogno della chiave con cui Syncthing firma le sue release. Prima si crea la cartella che conterrà la chiave. Con l’opzione -p il comando non dà errore se la cartella esiste già.

sudo mkdir -p /etc/apt/keyrings

Poi si scarica la chiave in quella cartella:

sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg

Se è andato tutto bene, curl non mostra errori e in /etc/apt/keyrings/ trovate il file syncthing-archive-keyring.gpg.

Aggiungere il repository stable-v2 e dargli la precedenza

Syncthing offre due canali. Lo stable-v2 riceve le versioni stabili, di solito il primo martedì del mese. Il candidate riceve le release candidate, di solito il secondo martedì del mese, circa tre settimane prima della versione stabile corrispondente. Per un server di casa ha senso il canale stabile:

echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list

Il comando crea il file syncthing.list. La parte signed-by collega il repository alla chiave scaricata prima.

Anche la distribuzione potrebbe offrire un suo pacchetto di Syncthing, e APT potrebbe preferire quello. La pagina del repository ufficiale indica il rimedio nella sezione sui problemi: conviene applicarlo subito. Si tratta di alzare la priorità dei pacchetti di Syncthing (il cosiddetto pinning):

printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.pref

Il file /etc/apt/preferences.d/syncthing.pref dice ad APT di dare priorità 990 a tutti i pacchetti che arrivano da apt.syncthing.net.

Installare Syncthing con apt-get

APT deve leggere anche il nuovo repository, quindi si aggiorna di nuovo l’elenco dei pacchetti:

sudo apt-get update

Poi si installa il pacchetto:

sudo apt-get install syncthing

Il pacchetto del repository ufficiale contiene già i file di servizio per systemd, che serviranno tra poco per l’avvio automatico.

Primo avvio di Syncthing da terminale

Questo passaggio va fatto da un terminale aperto sul desktop del Raspberry Pi, perché Syncthing apre l’interfaccia nel browser locale. Al primo avvio crea il file di configurazione e le chiavi crittografiche, poi avvia l’interfaccia di amministrazione:

syncthing

Nel terminale scorrono i messaggi di avvio. Tra questi ci sono l’ID del dispositivo (la riga «My ID») e l’indirizzo dell’interfaccia, raggiungibile su http://localhost:8384/. Se al momento dell’installazione la porta 8384 era già occupata, Syncthing ne sceglie un’altra a caso. La porta in uso compare sempre nei messaggi di avvio.

Su Raspberry Pi OS Lite non si aprirà nessun browser: per l’interfaccia vedete la sezione «Se usate Raspberry Pi OS Lite», più avanti.

Dopo aver controllato che l’interfaccia si apra, chiudete Syncthing premendo Ctrl+C nello stesso terminale. Nel passaggio successivo lo farete partire come servizio, e non serve tenerne aperte due copie.

Avviare Syncthing in automatico come servizio utente

La pagina di Syncthing sull’avvio automatico descrive due strade con systemd: un servizio di sistema oppure un servizio utente. Di norma il servizio utente parte solo quando l’utente accede, per esempio con il login grafico o via ssh. Con la funzione «lingering» di systemd, invece, i servizi utente abilitati partono già all’accensione. È quello che serve a un Raspberry Pi che resta acceso anche quando nessuno ha fatto il login.

Il primo comando attiva il lingering. Al posto di myuser scrivete il nome del vostro utente sul Raspberry Pi:

sudo loginctl enable-linger myuser

Il secondo abilita il servizio, così parte a ogni avvio:

systemctl --user enable syncthing.service

Il terzo lo avvia subito, senza aspettare il riavvio:

systemctl --user start syncthing.service

Questi ultimi due comandi vanno lanciati senza sudo, con il vostro utente: in generale Syncthing non dovrebbe girare come utente privilegiato.

Controllare che il servizio sia attivo e leggere i log

Per sapere se Syncthing sta girando c’è il sottocomando status:

systemctl --user status syncthing.service

Nella risposta il servizio deve risultare attivo. Se invece compare un errore, i dettagli sono nel journal di systemd:

journalctl -e --user-unit=syncthing.service

L’opzione -e porta direttamente in fondo, dove ci sono i messaggi più recenti.

Aprire l’interfaccia web agli altri computer (facoltativo)

Di base l’interfaccia ascolta su 127.0.0.1:8384, quindi accetta connessioni solo dal Raspberry Pi stesso. Secondo la pagina sull’indirizzo di ascolto, questa impostazione predefinita è ragionevolmente sicura. Se volete gestire Syncthing anche dal browser del PC, potete aprire l’interfaccia alla rete, ma prima va protetta. Nelle impostazioni dell’interfaccia procedete in quest’ordine:

  1. impostate un nome utente e una password robusta;
  2. attivate l’opzione per usare HTTPS;
  3. cambiate l’indirizzo di ascolto da 127.0.0.1:8384 a 0.0.0.0:8384, dove «0.0.0.0» vuol dire più o meno «da qualunque indirizzo».

Senza password e HTTPS rischiate di aprire la vostra installazione di Syncthing a chiunque. Scrivere l’indirizzo del Raspberry Pi nella rete di casa, per esempio 192.168.0.123:8384, non limita l’accesso ai soli dispositivi locali. Per quel filtro serve un firewall, perché Syncthing da solo non può garantirlo in modo affidabile.

Se usate Raspberry Pi OS Lite

Senza desktop c’è un problema di partenza: la configurazione si fa dall’interfaccia web, che all’inizio risponde solo dal Raspberry Pi stesso, dove non c’è un browser grafico. La soluzione è un tunnel SSH, descritto nella sezione «Tunneling via SSH» della pagina «Firewall Setup» della documentazione di Syncthing.

Serve che SSH sia già accessibile sul Raspberry Pi. Dal secondo computer si apre una connessione SSH che inoltra la porta locale 9999 alla porta 8384 del Raspberry Pi, con ssh -L 9999:localhost:8384 utente@indirizzo-del-raspberry, sostituendo utente e indirizzo con quelli effettivi. Lasciate aperta la connessione e visitate http://localhost:9999 nel browser dello stesso computer: vedrete l’interfaccia di Syncthing del Raspberry Pi.

Creare la prima cartella da sincronizzare

Syncthing 2, quello del canale stable-v2, al primo avvio non crea più una cartella predefinita. Su un’installazione nuova, quindi, non c’è ancora niente da condividere e la cartella va creata prima di collegare l’altro dispositivo.

  1. Nell’interfaccia web del Raspberry Pi fate clic su «Add Folder».
  2. Indicate un’etichetta, cioè il nome con cui riconoscerete la cartella, e il percorso locale della cartella da sincronizzare.
  3. Lasciate l’ID della cartella generato automaticamente e salvate.

La cartella compare nell’elenco a sinistra, segnata come non condivisa finché non la collegate a un altro dispositivo.

Collegare un secondo dispositivo e condividere la cartella

Due dispositivi si collegano solo se ciascuno è configurato con l’ID dell’altro. L’ID non va tenuto segreto, perché fa parte della chiave pubblica. Nell’interfaccia web lo trovate nel menu «Actions», in alto a destra, alla voce «Show ID».

  1. Sul Raspberry Pi fate clic su «Add Remote Device», in basso a destra, e inserite l’ID del secondo dispositivo. Il nome del dispositivo è facoltativo e serve solo a riconoscerlo. Selezionate la cartella creata al passaggio precedente e premete «Save».
  2. Sul secondo dispositivo ripetete «Add Remote Device» con l’ID del Raspberry Pi: il collegamento va configurato su tutti e due i lati. Il nuovo dispositivo compare nella colonna di destra, all’inizio scollegato, e si collega più o meno dopo un minuto.
  3. Sempre sul secondo dispositivo, accettate la cartella quando Syncthing la propone. In alternativa createla con lo stesso ID di cartella usato sul Raspberry Pi e condividetela a sua volta con il Raspberry Pi. Condividerla da un solo lato non basta.

Da quel momento un file aggiunto alla cartella condivisa su un dispositivo viene sincronizzato anche sull’altro. Le modifiche alla configurazione non hanno effetto immediato: date un po’ di tempo a Syncthing, soprattutto dopo un riavvio.

Syncthing non è un backup. Porta sugli altri dispositivi ogni modifica e ogni cancellazione, anche quelle fatte per sbaglio. Tenete sempre una copia di sicurezza separata dei file importanti.

Tornare indietro

Per fermare solo l’avvio automatico, disattivate con systemctl --user il servizio utente syncthing.service. Per togliere del tutto Syncthing servono tre passaggi:

  • disinstallate il pacchetto syncthing con apt;
  • cancellate il file syncthing.list in /etc/apt/sources.list.d/ e il file syncthing.pref in /etc/apt/preferences.d/;
  • aggiornate l’elenco dei pacchetti.

Le pagine ufficiali consultate non riportano questi comandi alla lettera, per questo qui sono solo descritti.

Se qualcosa va storto

Apt-get non trova il driver HTTPS

Su alcune distribuzioni apt-get può rispondere con un errore simile a questo:

E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?
E: Failed to fetch https://apt.syncthing.net/dists/syncthing/InRelease

In questo caso installate il pacchetto apt-transport-https e riprovate.

Verifica del certificato del server non riuscita

Sulle distribuzioni più vecchie l’archivio dei certificati TLS del sistema potrebbe non essere aggiornato. Da ottobre 2021 serve il certificato radice più recente di Let’s Encrypt, altrimenti apt-get segnala che la verifica del certificato del server non è riuscita. Installate l’ultima versione del pacchetto ca-certificates e riprovate.

Il servizio utente non si abilita

Il pacchetto del repository ufficiale installa già i file di servizio. Se l’abilitazione fallisce comunque, copiate il file syncthing.service dal repository git di Syncthing in ~/.config/systemd/user/. Su Debian e Ubuntu, se la home è cifrata con eCryptfs, il servizio utente non parte, perché systemd cerca i servizi utente prima che la home venga decifrata. In quel caso va applicata la modifica descritta nel bug Ubuntu 1734290.

I dispositivi non si collegano

La guida introduttiva di Syncthing indica come primo controllo la pagina «Firewall Setup» della documentazione di Syncthing. Dopo, guardate i messaggi di errore nell’interfaccia web o nel log del servizio.

Documentazione di riferimento

Pagine consultate il 30 settembre 2026:

Leggi anche