Sincronizar carpetas entre varios dispositivos

¿No sabes como compartir archivos entres diferentes equipos de forma fácil? En este video vamos a hacerlo con Syncthing
Vamos instalar Sycnthing por docker en nuestro nas, aunque el funcionamiento es muy similar en cualquier plataforma, excepto en iOS que no existe syncthing, es decir, funciona en Nas, por docker, linux, wndows, mac y Android.
Lo primero que vamos a hacer es abrir nuestro editor de texto favorito, podemos hacerlo en el Synology, entrando a DSM y buscando en el centro de paquetes Editor de texto si no lo tienes instalado ya.

Una vez descargado, lo abrimos, puslamso en Achivo, Nuevo y pegamos el siguiente docker-compose
services:
syncthing:
container_name: syncthing-tutorial
network_mode: bridge
environment:
- TZ=Europe/Madrid
- PUID=tuPUID
- PGID=tuPGID
ports:
- xxxxx:8384/tcp #puerto para acceder a través del navegador, puedes cambiar el valor de la izquierda por el que quieras
- 22000:22000/tcp
- 22000:22000/udp
- 21027:21027/udp
volumes:
- /volume1/Multimedia/carpeta-prueba-capi:/data1 # la carpeta donde van a estar los archivos para la sincronización, debes poner la tuya
- /volume1/tutoriales/syncthing-tutorial:/config # la carpeta para los datos de configuración y persistencia del contenedor, debes poner la tuya
restart: always
image: lscr.io/linuxserver/syncthing
Lo tendremos así

Yo cambiaré las XXXXX por un puerto distinto, ya que tengo una instancia de syncthing corriendo ya y si pongo el mismo puerto 8384 me dará un error. Voy a usar al 15433 por ejemplo
Pongo mis valores de PUID y PGID y creo las carpetas que están en la parte de volumes para que el docker vaya a crear los archivos y tengamos la carpeta que queramos compartir mapeada correctamente.
Tendremos que guardar el archivo en la carpeta mapeada de la parte /config.
Pulsamos en Archivo, Guardar como y vamos a seleccionar la carpeta en el desplegable de árbol.
En Tipo de archivo seleccionamos Todo los archivos y en nombre de archivo le damos el siguiente docker-compose.yml.
Pulsamos en el botón de Guardar

Ya podemos cerrar el editor de texto.
Ahora procedemos a su instalación con Container Manager o con Portainer
Container Manager
Abrimos la app de Container Manager, nos vamos a proyecto y pulsamos en el botón de Crear

Damos un nombre al proyecto, en mi caso syncthing-tutorial, en Ruta seleccionamos la carpeta mapeada anteriormente en config. En mi caso /volume1/tutorial/syncthing-tutorial y al haber guardado el archivo docker-compose allí nos dirá que ha encontrado un archivo y que si queremos utilizarlo.
Se cargará la configuración en la ventana inferior.



Pulsaremos en siguiente y nos saldrá un ventana con la Configuración del portal web dónde sólo debemos pulsar en Siguiente. Nos pasará a la ventana de Resumen dónde debemos pulsar en Finalizado y ya comenzará la instalación y puesta en marcha de nuestro contenedor.
Una vez que nos salga esta ventana

Pulsaremos en Cerrar, y ya estará listo
En Portainer
Accedemos a nuestro portainer, luego vamos a Stacks y pulsaremos en el botón de add stack

Damos un nombre y pegamos el docker-compose que habíamos usado anteriormente y pulsamos en el botón de Deploy the stack

Acceso a través del navegador
Nos vamos a un navegador y ponemos la ip local de nuestro nas y el puerto elegido para que nos muestre la ventana de acceso.

Primeros pasos en la configuración
La primera ventana que vemos es una de métricas, así que tú decidas si quieres aportar esos datos a los servidores de syncthing o no.
En mi caso, la respuesta es clara, NO
Las otras dos notificaciones en el fondo

Se solucionan de la misma manera. Nos avisan realmente de que no tenemos configurado un usuario y una contraseña para acceder a la web.
Aunque sea una ip local y no puedan entrar desde fuera, pulsamos sobre el botón Ajustes de la notificación verde y podremos poner nuestro usuario y contraseña que queramos.
En el menú que se nos abre, nos vamos a la segunda pestaña Interfaz gráfica de usuario y ahí ponemos nuestro usuario y contraseña.

Una vez que pulsemos en guardar, vemos que nos cierra esa sesión y nos manda a una pantalla de LOGIN dónde debemos meter el usuario y la contraseña que hayamos configurado

Una vez introducido pulsamos en Iniciar sesión y vemos la misma ventana de antes pero sin avisos.
Si te fijas en la pestaña del navegador, se muestra un nombre raro como identificador del dispositivo.

Para cambiar esto por un nombre más familiar, entramos en Acciones luego pulsamos en Ajustes y en la pestaña General veremos un campo que es el nombre del dispositivo.
Lo cambiamos por el que queramos mostrar y pulsamos en Guardar, así nos cambia el nombre


Vale, ¿y cómo comunico los equipos?
Si os fijáis, en la ventana principal, el el campo de Otros dispositivos no vemos ninguno.
Vamos a solucionar esto.
En la máquina que queramos sincronizar, vamos a instalar syncthing. Para ello vamos a la página de descargas de syncthing.
En mi caso voy a descargarme la versión de MacOS.
Pulso sobre el enlace y una vez descargada, la instalo y procedo a abrirla.
Se nos instala en la barra de acceso

Veremos que está online y seleccionamos Open. Se nos abre una pestaña del navegador con esta instancia de syncthing y veremos la pantalla de inicio que vimos anteriormente.
Aqui toca repetir los pasos que habíamos realizado anteriormente de métricas, de creación de credenciales de Login y de darle un nombre identificativo.
Una vez que lo hayamos abierto, podemos poner las ventanas del navegador en paralelo y vemos a la izquierda el NAS y a la derecha el Mac Mini.
Me gustaría que os fijáseis en el botón de añadir dispositivo remoto.
Si pulsamos sobre él en el NAS por ejemplo, se nos abre una ventana nueva, dónde nos dice que introduzcamos el ID del otro dispositivo y nos muestra el identificador de un dispositivo cercano al estar en la misma red local.
Este identificador es el del Mac Mini.

Lo podemos verificar si en la instacia del Mac Mini, vamos a Acciones, Mostrar ID

En la instancia del NAS, hacemos clic en el ID del dispositivo cercano y le damos un nombre.
Pulsaremos en Guardar e inmediatamente veremos una notificación identifcativa en la instacia del otro ordenador, que no informa que alguien está intentando agregar nuestro equipo y que si lo autorizamos. En nuestro caso, como hemos sido nosotros, lo agregamos pulsando el botón verde.

Nos sale una ventana de confirmación de datos y pulsamos en Guardar

Y ahora ya vemos que los equipos están unidos y autorizados entre ellos. El Nas al Mac Mini y viceversa

Y ahora que los equipos se ven, ¿cómo sincronizo las carpetas?
Pues ahora toca irnos en el NAS, por ejemplo, al botón de añadir carpeta. Cuando pulsamos sobre él, se nos abre otra ventana.
Vemos tres campos que son Etiqueta de la carpeta, ID de carpeta y Ruta de la carpeta
En el primero le damos un nombre descriptivo, el segundo lo podemos dejar igual, y para el tercero..... ¿os acordáis que habíamos creado una carpeta en el docker-compose que cogía una carpeta del NAS que mapeaba la carpeta data1 del contenedor, pues cribimos /data1. Pulsamos en Guardar

Nos saldrá como no compartido, pero tenemos que hacer click en la carpeta, y después cuando se no baje la descripción de la carpeta, en el botón editar.

Nos iremos a la segunda pestaña, la que se llama Compartiendo y aquí vemos que nos sale el otro equipo, el Mac. Haremos click en el check de selección.

En la pestaña de Versionado de ficheros es por si queremos guardar más de una versión.
En la pestaña de Patrones a ignorar podemos poner por ejemplo que no pase archivos pdf.
La pestaña Avanzado es la que más nos interesa, porque hay dos valores importantes que debemos configurar.
En Tipo de carpeta vemos que sale la opción por defecto en Enviar y Recibir. Esta opción hace una copia sincronizada bidereccionalmente. Es decir, si ponemos un archivo en la carpeta, estará en los dos equipos, pero si borramos el archivo en uno de los equipos, también borramos en los dos.
Si seleccionamos Sólo enviar la sincronización es unidireccional.
Si seleccionamos Solo recibir solo aceptaremos archivos de entrada pero no sincronizaremos si subimos un archivo en nuestro equipo origen.

El Intervalo de rescaneo completo es el tiempo con el que refrescamos la información de esa carpeta entre los equipos. Por defecto viene en una hora. Podemos poner lo que queramos, recordad que el tiempo es en segundos. Vamos a poner por ejemplo, cada dos minutos, es decir, 120 segundos. Y pulsamos en Guardar
Al hacerlo, vemos que nos salta otra notificación automática en la pestaña del otro equipo.
Como veis el programa es bastante claro. Pulsamos en el botón verde para aceptar.

Al hacerlo nos abre la ventana de la configuración de carpeta, dónde nos muestra el nombre de la carpeta, el identificador y la ruta.
Esta ruta es dónde se va a guardar en nuestro equipo. En el Mac por defecto la va a guardar en la ruta /Users/bilito/Carpeta de Prueba.
Vamos navegar por las pestañas y en la última cambiamos el tiempo de sincronización. Lo pondremos igual que en la carpeta origen.
Así que ahora podremos ver las dos carpetas en nuestros equipos. Por un lado la del NAS, y por otro lado la del Mac mini.

Y ahora toca probar. Os pongo todas las ventanas para que las veais en el video
Tiraré una ISO de linux a la carpeta del nas y se sincronizará sola a la carpeta del Mac
¿Y si quiero compartir con otro equipo en otra red?
Aquí es dónde entran en juego los relays
¿Os imagináis que pudiésemos compartir archivos con otro equipo fuera de nuestra red sin proxys inversos y sin abrir puertos?
Pues se puede a través de estos relays que tiene la aplicación. Es un servicio que se encarga de conectar los equipos que están en otras redes.
Me voy a conectar con un equipo que está a mas de 500 kms y en otra red.
Primero nos vamos al equipo origen de la sincronización, en mi caso el Nas. En el botón Acciones pulsamos en Mostrar ID y se lo pasamos a la persona con la queramos sincronizar archivos.
Esta pesona debe tener instalado Syncthing, evidentemente.
Copiamos este código y se lo pasamos a la otra persona. Esta persona debe unir su equipo como hemos hecho con los equipos en la red local inicialmente.
Se lo envié a un amigo y él lo agrego a su syncthing. Salta la notificación de aviso de conexión

Verficamos y pulsamos en Guardar

Podemos ver como ahora tenemos otro dispositivo conectado.

Él me ha creado una carpeta de prueba que yo he sincronizado con la otra, en el momento de la captura le está sincronizando un archivo, la ISO de Linux que habíamos cargado
Una vez aprobada la solicitud, cuando suba un archivo, éste saldrá en mi carpeta de prueba del nas y a su vez se pasará a la carpeta del Mac, porque estamos usando la configuración inicial.
Se puso a subir el archivo con cobertura móvil y como tenía poca cobertura, tardaba bastante como veis en el video.

El video está editado para que se aprecie sin espera.
Mi nombre es David Rodríguez, apasionado por un millón de cosas que lleven placas y chips dentro. Puedes encontrarme como https://mas.to/@_Bilito en Mastodon y en grupo de Telegram de Synology NAS https://t.me/synologyNAS
Tengo un canal de youtube que complementa al blog https://www.youtube.com/@_Bilito y que me harías un gran favor si te suscribes.