Crea tu propia nube con Syncthing sobre Raspberry Pi

Publicado por P. Ruiz en

syncthing logoSyncthing es una herramienta de software libre y código abierto que permite la sincronización contínua de archivos entre varios equipos de la red, ya sea de forma local o a través de Internet.

Una de sus mayores ventajas es que permite su instalación en los sistemas operativos más utilizados hoy en día (Windows, macOS, GNU/Linux, Android, Solaris, Illumos y diferentes variantes de BSD).

Con Syncthing obtenemos una funcionalidad equivalente a la de servicios como DropBox, Mega, OneDrive, Box, etc., pero con una diferencia fundamental: Los datos se almacenan únicamente en ordenadores de nuestra red, sin que estén implicados servidores externos.

Además, los ordenadores que intercambian datos se reconocen mediante un certificado criptográfico. Así, solo podrán acceder a los datos los equipos autorizados. También las comunicaciones entre ellos se encuentran fuertemente cifradas.

Por último, la administración de Syncthing puede realizarse completamente desde su interfaz web, lo que implica que no necesitaremos estar físicamente frente a un dispositivo para realizar cambios en su configuración.

¿Cómo usaremos aquí Syncthing?

El funcionamiento de Syncthing puede ser descentralizado, de manera que los dispositivos compartan información entre ellos sin que exista un ordenador principal que los centralice.

Sin embargo, es muy interesante disponer de un ordenador, que actúe como servidor, donde resida toda la información compartida de la red. Así, ademas de compartir datos de una forma sencilla, tendremos un lugar donde residirá cualquier archivo compartido, actuando a su vez como copia de seguridad del resto.

Y aquí es donde entra en juego Raspberry Pi, un ordenador de bajo coste (puedes encontrarlo por menos de 50€) con un consumo eléctrico ínfimo, que no pasa de los 8W en el modelo más avanzado.

Con este planteamiento, podremos tener un ordenador, actuando como servidor de forma ininterrumpida en nuestra red, sin que debamos hacer una fuerte inversión inicial y sin que la factura eléctrica suponga un problema.

Hoy aprenderemos a montar Syncthing en Raspberry Pi y comprobar que funciona correctamente. En futuros artículos veremos cómo instalarlo en otros sistemas operativos y cómo sincronizar archivos entre ellos.

Configuración inicial

Antes de comenzar, debes disponer de tu Raspberry Pi con el sistema operativo Raspbian instalado. Si necesitas ayuda para esta tarea, puedes recurrir a nuestros artículos:

También necesitarás añadir un disco duro a tu Raspberry Pi, que permanezca conectado de forma ininterrumpida, tal y como te explicábamos en el artículo:

Si ya has completado estos aspectos, estás listo para comenzar el trabajo de hoy…

Actualizar Raspbian

Antes de comenzar la instalación de Syncthing, comenzaremos por actualizar el sistema operativo con las últimas versiones de los paquetes disponibles en los repositorios. Algo tan sencillo como abrir una nueva ventana de Terminal y escribir la siguiente orden:

sudo apt update -y && sudo apt upgrade -y

Los caracteres -y al final de cada comando hacen que éstos asuman Yes como respuesta a cualquier pregunta.

La escribimos y pulsamos la tecla Intro.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-001

La actualización se iniciará de forma inmediata…

Y solo tenemos que esperar a que se complete…

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-002

También es interesante tener actualizado el firmware de la Raspberry Pi, para lo que basta con ejecutar el siguiente comando:

sudo rpi-update

De nuevo, escribimos la orden y pulsamos la tecla Intro.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-003

Al hacerlo, el comando nos recuerda que esta no es una operación que debamos hacer con mucha frecuencia… y que no debemos hacerlo como parte de la actualización estándar

De cualquier modo, si estamos decididos a seguir, pulsamos la tecla Y.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-004

El proceso necesitará algo de tiempo para completarse.

… Y al final, nos recomienda que reiniciemos el sistema

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-005

Para lograrlo, basta con escribir la orden siguiente:

sudo reboot

Como antes, escribimos la orden y pulsamos la tecla Intro.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-006

El firmware de un dispositivo electrónico suele ser un programa, o conjunto de programas, almacenado en un chip. Suele tener el cometido de ayudar al resto del software a relacionarse con el hardware de dicho dispositivo.

No obstante, en el caso de Raspberry Pi el firmware reside en la primera partición de la tarjeta microSD.

Instalar Syncthing

Cuando se complete el reinicio, estaremos listos para instalar Syncthing. Solo tendremos que volver a abrir la ventana de Terminal y escribir el siguiente comando:

sudo apt install syncthing

De nuevo, escribimos la orden y pulsamos la tecla Intro.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-007

Al hacerlo, apt comenzará a mostrarnos información sobre la instalación.

Solo tenemos que esperar un instante hasta que termine.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-008

Configurar systemd para iniciar Syncthing cada vez que arranque el sistema

Raspbian utiliza Systemd para poner en marcha los diferentes componentes que deben cargarse después del núcleo del propio sistema y controlar su funcionamiento mientras el sistema esté en marcha.

Systemd utiliza archivos archivos en el directorio /lib/systemd/system para establecer el comportamiento de cada servicio (bueno, y de otros componentes del sistema). Sin embargo, si queremos hacer modificaciones, lo ideal es crear un nuevo archivo en /etc/systemd/system. Estos archivos tendrán prioridad sobre los anteriores, que actuarán como una copia de respaldo en el caso de que un archivo nuevo no funcione como esperábamos.

De cualquier modo, la instalación de Syncthing no incluye la creación de su correspondiente archivo en ninguna de estas dos rutas. Por ese motivo debemos crearlo, o descargarlo de Internet… Y como los autores de Syncthing ofrecen un archivo modelo en su página de GitHub, nosotros nos decidiremos por esta opción.

Lo conseguiremos escribiendo la siguiente orden en la Terminal:

wget https://raw.githubusercontent.com/syncthing/syncthing/master/etc/linux-systemd/system/syncthing%40.service

Como antes, escribimos la orden y pulsamos la tecla Intro.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-009

Como es un archivo bastante pequeño, se descarga en un momento.

A continuación, lo movemos hasta su destino:

sudo mv syncthing@.service /etc/systemd/system/

Una vez más, escribimos la orden y pulsamos la tecla Intro.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-010

Para completar el proceso, necesitamos que el servicio se inicie automáticamente al arrancar el sistema. Para lograrlo, bastará con utilizar systemctl con la orden enable, seguida del nombre del servicio:

sudo systemctl enable syncthing@pi.service

Al hacerlo, el sistema crea un enlace simbólico hacia el archivo de configuración.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-011

Ya solo nos queda reiniciar el sistema:

sudo reboot

De nuevo, escribimos la orden y pulsamos la tecla Intro.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-012

A partir de aquí, veremos cómo se reinicia Raspbian.

Si quieres ampliar tus conocimientos sobre Systemd, puedes revisar nuestros artículos:

Comprobar que Syncthing funciona

Una vez completada la instalación, Syncthing comienza a escuchar en el puerto 8384. Por lo tanto, para usarlo, sólo tenemos que abrir nuestro navegador de Internet favorito en cualquier ordenador de la red y, en la barra de direcciones escribir lo siguiente:

https://dirección-IP:8384

Como es lógico, en lugar de la dirección IP del equipo donde hemos instalado Syncthing, tenemos otras alternativas:

  • Si disponemos de algún método de resolución de nombres, podemos usar el nombre con el que se conoce al equipo en la red (podemos usarlo de forma local o remota).

  • La palabra localhost, cuando queramos acceder de forma local.

  • En este último caso, también podemos utilizar su dirección de loopback (que suele ser la 127.0.0.1).

En cualquier caso, la primera vez que accedemos, recibiremos un mensaje como el que muestra la imagen siguiente. El problema es que estamos iniciando una conexión segura con un equipo que aún es desconocido para el navegador y que utiliza un certificado SSL auto-firmado. No obstante, como se trata de nuestro propio equipo, en realidad no existe ningún peligro.

Para solventarlo, comenzamos haciendo clic sobre el botón Avanced.

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-013

Al hacerlo, el navegador no informa de que, en realidad, lo que desconoce es el certificado del ordenador al que estamos accediendo.

Nos limitaremos a hacer clic sobre el enlace Proceed to localhost (unsafe).

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-014

Al hacerlo, obtendremos la página principal de Syncthing.

A partir de aquí, podemos comenzar a utilizar el programa…

Crea-tu-propia-nube-con-Syncthing-sobre-Raspberry-Pi-015

… Sin embargo, dejaremos la tarea para un siguiente artículo. Por el momento, lo dejaremos aquí.

Espero que te resulte útil.