Syncthing

De HackLab
Saltar a: navegación, buscar


Que es?

Syncthing es una herramienta pensada para syncronizar carpetas entre diferentes dispositivos (PCs, tabletas,móviles, etc.)

A diferencia de las nubes, como OwnCloud, que dependen de estar instaladas en un servidor central disponibles las 24hs, Syncthing se apalanca en la transmisión de datos via torrents para lograr una sincronización par-a-par (P2P) totalmente descentralizada.


Como funciona?

Para entender el funcionamiento, debemos primero entender y diferenciar sus dos componentes básicos

  • Nodo es un dispositivo (ej: PC, tableta, móvil) que tiene instalado Syncthing
  • Repositorio es una carpeta que contiene archivos de diferentes tipos y que se desea compartir entre 2 o varios nodos


Cada nodo (device en la interfase en inglés que aún no está traducida) gestiona dos listados, un primer listado con otros nodos conocidos y un segundo listado con los repositorios que contiene.

Cada repositorio (folder en la interfase) identifica, por un lado, la carpeta que se desea compartir y, por otro, con cuales de los nodos conocidos desea compartir el contenido de la carpeta, que llamaremos nodos amigos


Syncthing crea un archivo torrent por cada repositorio, que envía a todos los nodos amigos.

Periódicamente (ej. 1 vez por minuto) revisa si se han realizado cambios a la carpeta que da origen al repositorio. En caso de encontrar cambios, genera un nuevo archivo torrent que envía a los nodos amigos con quien comparte el repositorio.

Al recibir una nueva versión del archivo torrent asociado a un repositorio, cada nodo identifica los cambios realizados y se conecta con el resto de los nodos amigos para obtener sólo los nuevos archivos y/o aquellos que hayan cambiado.

Para poder comunicarse entre si, intercambiar archivos torrent y el contenido de los repositorios, los diferentes nodos amigos deben estar conectados a internet al mismo tiempo. Al utilizar para el intercambio de archivos la tecnología bit-torrent, no es necesario que los nodos sean accesibles públicamente, y sólo requieren tener una conexión saliente a internet.

Como lo instalo?

Syncthing se distribuye en paquetes pre-compilados para los distintos sistemas operativos y arquitecturas. Encontramos los archivos en esta web

En el caso de usuarios de gnu/linux, y dado el rápido ciclo de actualizaciones de Syncthing, recomendamos investigar si el paquete está disponible en algún repositorio, lo que facilitará las actualizaciones futuras.


Los usuarios de debian (ej: linux mint, ubuntu) pueden agregar un nuevo respositorio e instalar Syncthing ejecutando los siguientes comandos

sudo add-apt-repository ppa:ytvwld/syncthing  
sudo apt-get update  
sudo apt-get install syncthing


Los usuarios de arch linux encontrarán a Syncthing dentro del repositorio community, con que podrán instalarlo con el siguiente comando

sudo pacman -Sy syncthing


Los usuarios de android pueden instalar Syncthing a través de F-Droid


Entender la interfase

La instalación más sencilla de Syncthing utiliza una interfase web, lo que significa que para poder interactuar con el progama podemos utilizar cualqiuer navegador web y apuntarlo a una página específica.

En algunas versiones, al iniciarse, Syncthing abre un navegador web y nos muestra la interfase automáticamente.

Sino, siempre que Syncthing se encuentre en ejecución podremos acceder a la interfase visitando http://localhost:8080

Nos encontraremos con una pantalla como esta syncthing recien instalado y sin nodos ni repositorios adicionales

En la barra superior, sobre el extremo derecho, nos encontramos con un botón con forma de engranaje que nos permite acceder a las opciones de configuración de Syncthing

En la zona central, a la derecha de la pantalla se listan los nodos conocidos y a la izquierda los repositorios

La imagen nos muestra la vista inicial de Syncthing, donde sólo se listan el nuestro nodo ("susa" en la imagen) y un repositorio que se incluye a modo de ejemplo ("default" en la imagen)

Haciendo click sobre el nombre de un repositorio se accede a una vista detallada que muestra, entre otras cosas, a que carpeta está vinculado en 'Folder Path' y con quien está compartido en 'Shared With'

vista detallada de un repositorio en syncthing

Debajo de los listados encontramos botones que nos ayuda a agregar nuevos repositorios y nodos.

El repositorio tiene un fondo de color verde para indicarnos que está actualizado. Repositorios con errores se listan en rojo, y se vuelven azules durante la recepción de contenido de otros nodos.

Hay otras dos secciones que no se muestran en la imagen y que se muestran sólo cuando son necesarias. Ambas secciones se expanden a lo ancho de las dos columnas.

  • La sección de notificaciones se situa por debajo del listado de nodos y repositorios, tiene un encabezado de color amarillo, y nos avisa de problemas con nuestros respositorios así como también de repositorios que nodos amigos hayan compartido con nosotros y que aún no hayamos agregado a nuestra configuración.
  • La seccion de reinicio se situa entre la barra superios y los listados de nodos y repositorios, también tiene un encabezado de color amarillo, nos avisa de la necesidad de reinciar Syncthing y muestra un botón para hacerlo. Si bien el servicio de Syncthing es muy estable una vez está en ejecución, es necesario reiniciarlo cada vez que realicemos un cambio en nuestra configuración.

Como agrego nodos conocidos?

Como agrego repositorios?