Repositorio en un Raspberry PI

Instalación

Para poder contener un repositorio multimedia sincronizado en un Raspberry PI, el primer paso es instalarle Syncthing. Descargamos en una PC la distribución de la aplicación desde su Sitio Oficial, teniendo en cuenta que la versión del paquete que nos sirve en este caso, es la versión para Linux de arquitectura ARM. Es importante realizar esto desde una PC ya que la distribución oficial es comprimida de una manera que los paquetes que contiene el OpenELEC no puede descomprimir.

Una vez se descomprimió el archivo descargado, debemos copiar al menos el archivo ejecutable, para esto abriremos una terminal y utilizaremos el comando scp:

 scp /rutaOrigen usuario@destino:/rutaDestino 

donde por la naturaleza monopropósito de OpenELEC tiene un único usuario que es root, el destino es la dirección IP que se puede verificar desde la interfaz de OpenELEC en Sistema -> Información -> Red. La rutaOrigen es donde se encuentra el archivo a copiar y la ruta Destino la ruta a donde copiaremos dicho archivo en el Raspberry, en este ultimo podríamos no indicar nada, y los almacenaría en la carpeta /root.

Un detalle pertinente a remarcar es que al tratarse de servicios que por su naturaleza deben ser públicos se necesitan de algunas medidas para asegurar una mínima seguridad sobre el mediacenter, una medida muy importante es desactivar el ingreso al mediacenter por SSH mediante contraseña y que solo sea posible por claves publico/privadas, podemos ver el procedimineto en #4588.

Configuración

Teniendo el Synchthing dentro del mediacenter lo ejecutaremos, debiendo tener en cuenta que al ejecutarlo sin argumentos dejará disponible su interfaz de configuración en localhost:8384, por lo que para poder acceder deberemos indicarle como parametro que queremos que lo ejecute pero que podamos acceder a su interfaz utilizando la dirección IP que utilizamos para copiar el ejecutable, esto lo hacemos así:

 ./syncthing -gui-address=<dirección:puerto> 

donde reemplazaremos la dirección por la dirección IP de nuestro mediacenter y utilizaremos un puerto cualquiera (mayor al 1024).

Al ejecutarlo por primera vez creará en la carpeta del usuario que lo ejecutó su carpeta donde almacenará sus configuraciones, y también una carpeta en la que implementará el primer repositorio que tendrá habilitado por defecto con el nombre Default.

Ingresamos a la interfaz de configuracion mediante un navegador, y veremos una pantalla similar a esta:

Donde podemos ver a la derecha encontramos los dispositivo que tenemos configurados en nuestra red de sincronización, en este caso se muestra el primero que es el propio dispositivo ( en nuestro caso el sería el mediacenter) y debajo se ven los dispositivos remotos y su estado actual, en la izquierda vemos los repositorios configurados.

El primer paso en la configuración de Syncthing, es ir a su configuración propiamente:

Al ver la configuración una buena medida es indicar un usuario y contraseña para que no pueda ser accedida por cualquiera, e indicar aqui la direccion IP y puerto que utilizamos para ejecutar Synchthing de manera manual y Guardar. Synchthing se reiniciará.

Agregando un dispositivo

Debemos ahora agregar un dispositivo con el cual compartir nuestros repositorios.

  • Pedirle a quien administre el dispositivo que queremos agregar el ID del mismo y su dirección IP
    Nuestro ID lo podemos encontrar en Acciones -> Mostrar ID.

Una vez que tenemos esta información precionamos el botón Agregar Dispositivo.
En el cuadro que aparace colocaremos la ID, un nombre para el dispositivo, en direcciones colocaremos la IP ya que si bien synchthing cuenta con un método de auto descubrimiento de dispositivos, en algunos casos este no funciona correctamente (por ejemplo cuando el dispositivo se encuentra tras un cortafuegos). Por último si nos interesa compartir archivos con otros dispositivos conectados al dispositivo que estamos agregando, habilitamos la opción de Introductor.

Habiendo agregado satisfactoriamente el dispositivo, una vez que el mismo sea contactado, el administrador del mismo verá un cuadro solicitandole la confirmación para que agregar nuestro dispositivo.

Configurando un repositorio

Con estos pasos ya contamos con un repositorio de archivos por defecto, para crear un nuevo repositorio presionaremos el botón Nuevo Repositorio.
En el cuadro que se despliega debemos indicar un ID para el repositorio, la ruta en el sistema de archivos sonde se encontrará será gestionado el repositorio, si queremos que otros dispositivos mantegan una copia del repositorio pero no que agreguen elementos a la copia local, habilitamos la opcion repositorio maestro y por ultimo indicaremos a que dispositivos de los que tenemos agregados queremos compartir este repositorio.

Al igual que con los dispositivos, al compartir un repositorio los dispositivos seleccionados se les pedirá que confirmen el nuevo repositorio. En caso de que posteriormente un nuevo dispositivo quisiera agregar el repositorio que acabamos de crear, debe crear un repositorio que tenga el mismo ID y comprtirlo con nosotros.

Ejecución al inicio.

OpenELEC cuenta con systemd como paquete de inicio en sus ultmas versiones, por lo cual tendremos esto en cuenta al configurar la ejecución al inicio de synchthing como demonio.

Para ello nos conectaremos a través de ssh a nuestro Raspberry, e iremos a la carpeta /etc/systemd/system y crearemos un archivo de texto con el nombre syncthing.service en el ingresaremos lo siguiente:

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization
Documentation=http://docs.syncthing.net/
After=network.target

[Service]
Environment=STNORESTART=yes
--Aqui debe ir la ruta en donde se encuentre el ejecutable
ExecStart=/usr/bin/syncthing -no-browser -logflags=0 
Restart=on-failure
SuccessExitStatus=2 3 4
RestartForceExitStatus=3 4

[Install]
WantedBy=default.target

y lo guardamos. Por útimo, ejecutamos los siguientes comandos para habilitar el servicio en systemd:


systemctl enable syncthing.service
systemctl start syncthing.service

Fuentes:
Documentación Syncthing
Archivo de inicio

syncthing.png (45.9 KB) Federico Ubal, 07/02/2015 01:20 PM

syncconf2.png (59.5 KB) Federico Ubal, 07/02/2015 01:20 PM

syncconf.png (50.1 KB) Federico Ubal, 07/02/2015 01:20 PM