Syncthing como alternativa a Dropbox

Buscando una manera práctica y rápida de sincronizar archivos entre varios dispositivos conseguí Syncthing, un proyecto que ofrece hacer exactamente eso con una amplia gama de dispositivos. No solo es multiplataforma, sino que a diferencia de Dropbox, tiene ejecutables para la arquitectura ARM que en este momento es lo que me interesa. A diferencia de Dropbox, esta alternativa no depende de la nube ni de tercerizar los datos a ninguna compañía, por el contrario, la sincronización se hace exclusivamente entre los dispositivos conectados y autorizados a través de identificadores únicos.

El proyecto es Open Source y esta en GitHub para auditar o modificar si se quisiera, y es compatible con Linux, Mac, Windows y Android. La sincronización se realiza a través del Block Exchange Protocol,un protocolo creado específicamente para Syncthing pero adaptable a cualquier proyecto. La instalación en Windows y Android es sencilla (como es de esperarse), mientras que en Linux requiere el paso adicional de instalarla a través de apt-get o pacman y en Mac utilizando Homebrew.

Sincronización fácil, gratis y libre

En mi caso decidí instalar el en Linux ARM un servidor base y que el resto de los dispositivos funcionaran como clientes, por decirlo de algún modo porque en realidad todos los dispositivos terminan cooperando y sincronizándose entre si. Luego de instalar y configurar la carpeta a compartir, basta con agregar los otros dispositivos a través del Device ID propio de cada aparato corriendo Syncthing y listo, aparatos sincronizados.

Syncthing WEB UI

No todo es perfecto

Todo muy bien hasta que comienzas a mover muchos archivos o archivos de cierto tamaño porque ahí todo lo bonito se cae. Es lógico pensar que si se están sincronizando archivos en la red local se tendrá la velocidad máxima de la red porque nada sale del router, pero no. Por motivos extraños, no resueltos y documentados la velocidad de sincronización es extremadamente lenta cuando se tiene abiera la interfaz web, sumado a que el uso de relays externos a la red local afectan mucho el desempeño. Dichos relays son necesarios para establecer conexiones entre dos dispositivos y funcionan como servidores de enlace, entonces la comunicación no se da exclusivamente entre dos dispositivos sino a momentos requiere de un intermediario, lo cual entorpece enormemente el proceso. De hecho, si se tratara de una red local sin acceso al exterior en teoría los dispositivos de esa red no podría comunicarse entre si a menos que se instalé un servidor local como relay.

En resumen

El proyecto pinta genial pero el asunto de los relays y la baja velocidad dentro de una red local le quitan mucho, tanto como para no usarlo. Es casi perfecto, pero en el casi esta toda la diferencia. A menos que exista una necesidad ideológica de utilizar software libre y existan los recursos para montar un relay local, vale mas quedarse con Dropbox o buscar otra alternativa como BitTorrent Sync, Freehold o padecer con OwnCloud.