Il problema che sempre dobbiamo affrontare quando lavoriamo con dispositivi digitali, che siano PC o smartphones, sono le copie di sicurezza! Da diverso tempo cerco di trovare la soluzione ottimale a tale problema e oggi ho scoperto un nuovo software multipiattaforma che si chiama SyncThing. Il programma si basa su una interfaccia di gestione web-based e il trasferimento files tipico del Peer-to-Peer.

Vediamo come fare ad implementare in modo veloce e semplice questa soluzione all’interno della nostra attività lavorativa e/o casalinga.

Prima di tutto dobbiamo provvedere a scaricare il software per il nostro computer. Il sito di riferimento per scaricare il software è www.syncthing.net. Scorrendo verso il basso troviamo il link per procedere al download del software. Come è possibile vedere dalla pagina github abbiamo le versioni per darwin (Mac), FreeBSD, Linux 32 e 64 bit, Linux Arm (ver. 5, 6 e 7) e Windows 32 e 64bit.

Scarichiamo quella che corrisponde alla nostra architettura. Se si utilizza Ubuntu 64bit, ad esempio, scaricheremo la versione Linux AMD 64bit. Il file è compresso con .tar.gz quindi da terminale, per scompattare, daremo questo comando:

tar zxvf nomedelfile.tar.gz

A questo punto ci ritroveremo una cartella contenente tutto il software necessario, pochi mega (meno di 10) per un software molto interessante. Entriamo nella cartella di Syncthing ed eseguiamolo:

cd syncthing-linux-amd64-v0.8.13
./syncthing

Si aprirà in automatico il browser predefinito sulla pagina di gestione 127.0.0.1:8080. Da qui potremmo vedere sulla barra in alto, oltre al nome del software, il menu Edit per l’aggiunta di nodi (le altre macchine in rete) e di repositories (le cartelle da sincronizzare), la configurazione del nodo, l’id del nodo e due comandi semplicissimi per riavviare il software di sincronizzazione o fermarlo totalmente. Nel resto della pagina sulla sinistra si vedranno le condivisioni da sincronizzare e sulla destra l’elenco dei nodi e dello status (in attesa, in sincronizzazione, ecc. ecc.).

La prima cosa che ho fatto personalmente è stata quello di entrare nel menu EDIT / Settings per configurare alcuni aspetti del programma: ho prima di tutto disabilitato l’apertura automatica del browser ed ho impostato  il GUI LISTEN ADDRESSES su 0.0.0.0:8080 per potervi accedere da qualunque postazione della rete. Per aumentarne la sicurezza è possibile inserire anche un nome utente ed una password. Ho disabilitato l’avvio automatico del browser semplicemente perché ho poi predisposto che il programma venisse lanciato automaticamente ad ogni avvio.

Sempre nel menu EDIT troviamo la voce Show ID che altro non è che una stringa lunghissima  di caratteri alfanumerici che identificano la nostra installazione in rete. Facciamo un bel copia incolla di questo codice che ci servirà per configurare le altre macchine in rete.

Ora installiamo syncthing su una macchina Windows. Basterà scaricare lo ZIP corrispondente alla nostra versione (32 o 64 bit) e scompattarlo in un qualsiasi punto del nostro computer. Un doppio click su syncthing.exe ci permetterà di eseguirlo ed avviare anche qui la pagina del browser con le impostazioni. Come nel caso precedente modificare nei settaggi il GUI LISTEN ADDRESSES e, volendo, disabilitare l’avvio automatico del browser all’apertura del software.

Il primo passo è quello di aggiungere, sia sulla macchina Linux che su quella Windows, i relativi nodi: quindi prendiamo l’id della macchina windows e andiamo nel menu EDIT / ADD NODE del computer linux per inserirlo nel relativo campo. Nel campo sottostante è possibile inserire invece un nome mnemonico. Consiglio di usare il nome che viene già assegnato alla macchina da syncthing. Tale nome può essere modificato a piacere andando a clikkare su Edit nella colonna destra della pagina web di amministrazione dove si trovano le specifiche della macchina locale. Fare la stessa operazione portandosi sulla macchina Windows ed inserendo il nodo della macchina Linux.

A questo punto i due nodi sono pronti per “vedersi” l’un l’altro. La situazione viene aggiornata a video ogni 60 secondi come impostazione predefinita e, sempre ogni 60 secondi, viene controllato lo status dei server. Queste impostazioni possono essere modificate in Edit / Settings.

Ora non resta che configurare i repositories da tenere sincronizzati. Andare nel menu Edit / Add Repository  ed indicare un Repository ID, un nome identificativo che deve essere inserito allo stesso modo in ogni nodo presente nella rete, il percorso completo della cartella e flaggare se si tratta di un Repository Master, ovvero se i files al suo interno non devono subire i cambiamenti  effettuati in altri nodi. In poche parole un modo per proteggere i dati originali che devono essere solo copiati verso gli altri nodi remoti.

Gli altri flag da mettere sono, eventualmente, Ignore Permissions per ignorare i bit relativi ai permessi del file (solo per filesystem FAT di Windows), File Versioning se vogliamo mantenere copie storiche dei files che vengono aggiornati durante le copie.

Ultima cosa, la più importante, è flaggare i nodi che sono coinvolti nella replica. Salvare e riavviare SyncThing per rendere attivi i nuovi cambiamenti.

Fare la stessa operazione di aggiunta repositories negli altri nodi coinvolti facendo bene attenzione a creare la configurazione mantenendo lo stesso Repository ID in ogni PC.

Se la soluzione piace possiamo provvedere a rendere avviabile il servizio automaticamente all’accensione del PC. In Windows basterà creare un collegamento in Esecuzione Automatica del menu di avvio, in linux basterà aggiungere una riga di comando nel file /etc/rc.local (sono necessari i permessi di root. Quindi usare il comando sudo gedit /etc/rc.local per editare il file). La riga da aggiungere è:

su -l nome-utente -c “/percorso-di-syncthing/syncthing &”

Se presente la riga con scritto exit 0, eliminarla o commentarla anteponendoci un # (asterisco).

Se si vuole accedere a SyncThing dall’esterno sarà necessario attivare il supporto uPNP del router oppure aprire le porte del router coinvolte nelle operazioni:

Porta 22000/TCP
Porta 21025/UDP
Porta 8080/TCP per l’amministrazione remota (Attenzione: impostare una password nel menu Edit / Settings per evitare che estrenei possano agire sulle configurazioni e carpire dati personali)

A questo punto siamo pronti per duplicare i nostri dati importanti su un numero infinito di dispositivi. Tra questi troviamo anche la possibilità di installare SyncThing su uno smartphone o tablet Android.