Archivos sincronizados a tu propio servidor con Seafile

No dependo más de servicios de terceros para sincronizar y alojar mis archivos en “la nube”; ahora tengo todo el espacio de disco de mi servidor (en este caso 2TB) para guardar lo que quiera.

Una de las ventajas del Software Libre es la posibilidad de “apropiarse” de la tecnología, es decir, de las cosas buenas que aparecen, se hacen versiones que cualquiera puede descargar, aprender cómo funcionan, modificar si se necesita e instalar para tener el 100% del control. Otra ventaja, no menos importante, es la posibilidad de compartir la experiencia o incluso ayudar al prójimo a seguir el mismo camino que uno ya ha recorrido, así que aquí una pequeña guía de como he hecho para tener mi propio sistema de sincronización de archivos.

Para sincronización de archivos en Software Libre, existen varias opciones;  pienso que la más conocida es OwnCloud, aunque también está PydioSeafile, ésta última es la cual yo he optado y describo aquí.

banner1

Seafile

Seafile es un sistema servidor-cliente para sincronización de archivos que uno puede instalar para tener total control de los archivos y no depender de otros.

Servidor

El servidor Seafile presenta una interfaz web para manejar los archivos, que permite un control completo de los mismos (subir, bajar, compartir); a su vez guarda el histórico de cada archivo con lo cual se pueden recuperar versiones anteriores.

El servidor funciona en base a “Bibliotecas” carpetas, que uno puede elegir sincronizar o no, lo cual es conveniente si no se quieren tener todos los archivos en cada computador, pudiendo usar el servidor como un repositorio para algunas cosas.

Las bibliotecas (carpetas en el directorio raíz) al ser creadas se puede seleccionar para que los archivos sean guardados 100% cifrados, lo que asegura una confidencialidad importante en ambientes compartidos o empresariales.

Para compartir los archivos o carpetas, se pueden obtener enlaces públicos, con y sin clave; que fácilmente se pueden enviar a un destinatario que los descarga mediante acceso web.   También es posible compartir una carpeta con otro usuario o grupos de usuarios, en formato solo-lectura o lectura-escritura;  a todos los usuarios les aparecerán estas carpetas en sus respectivos accesos web y podrán decidir sincronizarlas a sus discos o no.

En resumen tiene la funcionalidad completa de un sistema de sincronización de archivos y algunos aderezos interesantes (cifrado, grupos, etc.).

Todo lo anterior en la versión libre «Comunity Edition».  Existe también una versión «Professional Edition» que incorpora funcionalidades orientadas a grandes organizaciones con estructuras complejas como sistema de alta disponibilidad, roles de usuarios, soporte OpenStack Swift. Esta versión es tiene una licencia usuario.

Cliente

Los clientes Seafile hacen lo que uno espera.  Permiten seleccionar carpetas del disco y empezarlas a sincronizar, también navegar las carpetas disponibles en el servidor para ponerlas a sincronizar.

Destaco que existe un cliente de línea de comandos que funciona muy bien para replicar datos entre servidores; bueno, es el uso que yo le he dado.

Obviamente también clientes para tabletas y dispositivos móviles.

En tu RaspberryPI

Seafile tiene una versión de su servidor para RaspberryPI, lo que hace que fácilmente se pueda instalar en sistemas hogareños.

Realmente recomiendo Seafile, llevo cerca de un año de uso y actualización y realmente estoy muy satisfecho en cuanto a sus prestaciones y performance.

Dejo aquí algunos documentos que describen más en detalle lo que resumo en este artículo y además guías de instalación paso a paso.

Raspberry Pi Model B+

Hoy recibí y puse a funcionar mi nueva Raspberry Pi Model B+

La «cajita» que puse se trata de un tupper que compré por la suma de $ 10 (aprox. US$ 0.41) en el supermercado y corté prolijamente con la tijera de la Victorinox

La verdad que ha sido un acierto la idea de poner todos los puertos hacia el mismo lado.  La última foto muestra el lugar donde quedará en «producción»:  arriba de un ropero.

Instalación

Luego de copiar con el comando dd el archivo con la imagen del sistema Respbian a la tarjeta MicroSD, en un netbook que tiene bahía de SDCard; simplemente la conecté a la red y le di corriente, viendo cómo las luces parpadeaban como booteando.

Procedí a hacer un escaneo de hosts con el comando nmap y ahí estaba el Raspberry PI booteado y esperando que me conectara por SSH:

nmap-ssh

y luego ejecutar el comando raspi-config como root para entrar a una interfaz de configuración que ayuda terminar la configuración.

Captura de pantalla 2014-10-07 a las 6.47.33 PM

Con unos ajustes más, como colocarle una IP en el DHCP de mi router para que esté en el rango de mis «servidores» y montar un pendrive en el /etc/fstab quedé pronto para configurar el servidor transmision como describe mi artículo anterior.

Realmente muy simple este procedimiento de instalación.

Información adicional

Sugiero consultar el artículo de Hussam Al-Hertani titulado «Installing Raspbian on the Raspberry Pi & using SSH and VNC to remotely connect to the Raspberry Pi», que indica los pasos en particular para instalar y algunas configuraciones adicionales que pueden ser de interés.

Raspberry Pi como cliente torrent

Hace ya tiempo pre-compré un Raspberry Pi, tuve mi plazo de espera (como de 3 meses) y lo recibí hace casi 6 meses atrás en casa; pero desde aquel momento no me hice un tiempo para atender a este hermoso aparatito. Pero esta semana comencé a armarlo en forma decidida hasta crear un cliente Bittorrent y podes descargar archivos y compartirlos.

En este artículo describo brevemente cómo lo hice.

2013-03-09-20.40.45

Instalación

Luego de tener arrancado y configurado en la red el Raspberry Pi con Raspbian procedí a instalar transmission-daemon que fue lo que encontré más adecuado luego de analizar un poco otras opciones como uTorrent

apt-get install transmission-daemon

Crear los directorios necesarios para transmission-daemon donde esté montado el disco externo, en este caso /data (que lo coloco en el /etc/fstab para que lo monte siempre):

cd /data
mkdir torrent
cd torrent
mkdir info finish temp
chown debian-transmission info finish temp

Editar archivo de configuración /etc/transmission-daemon/settings.json y cambiar

«download-dir»: «/data/torrent/finish»,

«incomplete-dir»: «/data/torrent/temp»,
«incomplete-dir-enabled»: true,

editar archivo de daemon /etc/default/transmission-daemon y cambiar

CONFIG_DIR=»/data/torrent/info»

reiniciar transmission para que cree la estructura por defecto en /data/torrent/info

/etc/init.d/transmission-daemon restart

detener transmisión:

/etc/init.d/transmission-daemon stop

Crear un symlink del archivo creado al /data/torrent/info

cd /data/torrent/info
rm settings.json
ln -s /etc/transmission-daemon/settings.json

Nota: Si se arma al revés, dejando en /etc/transmission-daemon un symlink hacia el archivo original en /data/torrent/info el sistema lo sobre-escribirá cada vez con información por defecto (parece ser algo hardcoded).

Iniciar transmisión nuevamente

/etc/init.d/transmission-daemon start

Conectar la interfaz web (tunel ssh)

Transmission-daemon quedará esperando conexiones en el puerto definido en rpc-port del archivo /etc/transmission-daemon/settings.json, por defecto el 9091; así que http://IP-RaspberryPi:9091 me conectará con la interfaz de administración de transmission.

Conectar desde internet requiere abrir los puertos y redirigirlos a al Raspberry Pi. Se podría hacer con el puerto 9091, pero la seguridad estaría basada en la validación de transmission, así que preferí reenviar el puerto 22 y armar cada vez un tunel con el servicio SSH.

ssh -p22 -L 9091:localhost:9091 pi@micasa.dyndns.org

y conecto con el navegador desde cualquier lugar de internet a http://localhost:9091 para acceder a la consola de administración que me pedirá primero usuario/clave de transmission.

Descargar archivos del disco externo a mi notebook

Algunos documentos en la web sugieren utilizar ownCloud para bajar los archivos desde el Raspberry Pi. Es una solución interesante, pero requiere un servidor web con soporte PHP que van a recargar el Raspberry Pi, y una configuración adicional.

¿Para qué?, si tenemos SSH que es una puerta a la felicidad, entonces con SSHFS dejo disponibles los archivos descargados en mi notebook y los puedo abrir y copiar normalmente como cualquier otro archivo; con la ventaja que no es necesario ningún nuevo servicio o configuración.

Este es el comando que utilizo, para montar en una carpeta bajo mi home que he creado con el nombre RaspberryPi

sshfs -p22 pi@micasa.dyndns.org:/data/torrent/finish RaspberryPi/

Otros documentos en la red

De gran ayuda fue el artículo de Electro titulado «Cliente Torrent con Raspberry Pi», que fue mi guía para toda mi configuración.

También encontré un documento de Jose L. Romero titulado «Raspberry Pi como cliente torrent», que me permitió obtener algunos otros tips para mi configuración original.