Crea tu propia nube con Syncthing sobre Raspberry Pi
Syncthing 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 actualización se iniciará de forma inmediata…
También es interesante tener actualizado el firmware de la Raspberry Pi, para lo que basta con ejecutar el siguiente comando:
sudo rpi-update
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
El proceso necesitará algo de tiempo para completarse.
Para lograrlo, basta con escribir la orden siguiente:
sudo reboot
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
Al hacerlo, apt comenzará a mostrarnos información sobre la instalación.
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 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/
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
Ya solo nos queda reiniciar el sistema:
sudo reboot
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.
Al hacerlo, el navegador no informa de que, en realidad, lo que desconoce es el certificado del ordenador al que estamos accediendo.
Al hacerlo, obtendremos la página principal de Syncthing.
… Sin embargo, dejaremos la tarea para un siguiente artículo. Por el momento, lo dejaremos aquí.
Espero que te resulte útil.