MarcosBL

Aprendiz de todo, maestro de nada

La nube personal: Tu propio Dropbox gratis sin límites de espacio gracias a Bittorrent Sync

El problema del espacio en la nube

Tras asegurarme en el último artículo de disponer de Copias de seguridad incrementales de forma automática, era el momento de enfrentar otro problema recurrente: el de la sincronización de archivos.

Desde que nació mi hija pequeña, la cantidad de fotografías y vídeos que hacemos de nuestro retoño no para de crecer de forma brutal; son datos para mí críticos, al fin y al cabo, no volverá a tener tres meses, ni dar sus primeros pasos, así que el incluir estos datos en la copia de seguridad, era un sí, o .

arya chocolateada

Pero es que además nos gusta poder ver estos recuerdos en cualquier momento, en casa, en la oficina, estando con el portátil de vacaciones, etc… algo que primero suplí con Dropbox (12 Gb), luego con Google Drive (35 Gb gracias a una promo), y últimamente con Mega.co.nz (50 Gb). Pero apenas ha pasado año y medio, y ya no hay nube que baste, así que necesitaba buscar otra solución, o pasar por caja, por ejemplo con el plan de 1 Tb de Dropbox.

Meet Bittorrent Sync

Antes de elegir BTSync consideré varias opciones:

  • El plan de 1 Tb de Dropbpox no es demasiado caro, 9.99 €/mes, pero no me gusta pagar por lo que no utilizo, y además solo permite compartir una carpeta
  • Salvo la honrosa excepción de http://mega.co.nz todos los demás te obligan a elegir una carpeta de tu PC, y todo debe ir ahí, no te permite sincronizar varias carpetas en diferentes unidades de disco, lo que a mi se me hacía insufrible.
  • OVH tiene su propia solución de almacenamiento y sincronización, Hubic, com planes muy atractivos, como 25 Gb gratis, 100 Gb por 1€/mes o 10 Tb por 10€/mes, pero su cliente de sincronización colgaba mi PC hasta límites insufribles.
  • La posibilidad de tener todo en un FTP privado, lo que hacía complicado su uso desde móvil, o incluso desde escritorio para el resto de componentes de la familia

Tras analizar todo esto, y ver docenas de alternativas, elegí Bittorrent Sync, evaluando sus pros y contras, por estos motivos:

  • PRO: Espacio ilimitado, hasta donde llegue nuestro disco duro, sin coste adicional
  • PRO: Disponibilidad de mis ficheros en cualquier dispositivo, en cualquier momento
  • PRO: Velocidad de actualización estupenda, sin límites de velocidad
  • PRO: Clientes de escritorio ligeros y con excepcional rendimiento
  • PRO: Beta Block-Level diffs, en la mayoría de los casos se sincronizan partes de archivo modificadas, en lugar de todo el archivo
  • PRO: Si no usas un servidor centralizado, coste cero
  • CONTRA: Si todos los PCs están apagados, no podrás acceder a tus contenidos, mientras que en Dropbox están siempre disponibles en su Interface Web. Para esto basta con añadir a la mezcla, aparte de tus PCs habituales, un servidor dedicado que esté siempre encendido. En mi caso ya lo tengo, ya que me dedico al desarrollo web, pero un simple VPS o dedicado de 5€ al mes (o un NAS siempre encendido en casa) te sirve para esta función, igualando esta ventaja de Dropbox.
  • CONTRA: No dispones de interface web para ver tus contenidos. Esto lo solucionamos con un Apache/nginx, apuntado a la carpeta BTSync. Ajustamos que liste directorios y lo protegemos con usuario/contraseña, y dispondremos automáticamente de una interfaz web de la que poder descargar contenidos, o compartir con la familia y amigos.

Si te ha convencido la idea, la instalación como cliente es trivial, descargas tu cliente BTSync para Windows, Mac, Linux, FreeBSD… y te lías a compartir carpetas como si estuvieses loco. Y hasta puedes instalarlo en tu Android, iOS o Windows Phone y lo configuras para que suba todas tus fotos y vídeos.

En el resto del artículo vamos a ver cómo definir un nodo en un servidor, para asegurarnos de tener acceso a nuestros datos aunque todos nuestros PCs habituales estén apagados en un momento dado, lo que sería un nodo always-on.

Instalación de dependencias

Instalación desde PPA

sudo add-apt-repository ppa:tuxpoldo/btsync
sudo apt-get update

Para utilizarlo en nuestro PC desde escritorio:

sudo apt-get install btsync-user

Para su uso en el servidor que utilizaremos como servidor always-on:

sudo apt-get install btsync

Instalación manual de la última versión para el servidor always-on

Adaptamos la URL de descarga a 32/64 bits según convenga

cd /tmp
wget -O /tmp/btsync.tar.gz http://download.getsyncapp.com/endpoint/btsync/os/linux-x64/track/stable
tar -xzvf /tmp/btsync.tar.gz
mv btsync /usr/local/bin/
chmod +x /usr/local/bin/btsync

Configuración del sistema

Creamos una carpeta de configuración y hacemos que el propio ejecutable genere por nosotros una configuración por defecto, que editaremos a continuación

mkdir /etc/btsync
btsync --dump-sample-config > /etc/btsync/btsync.conf

Y modificando dicho fichero /etc/btsync/btsync.conf , configuraremos el sistema a nuestro gusto. Esta configuración es mínima, muy sencilla; en mi caso, utilizo la carpeta /home/btsync como almacén de todo el sistema, y defino el usuario y contraseña de acceso a la interface web.

mkdir /home/btsync
"device_name": "Servidor OVH",
"storage_path" : "/home/btsync/",
"login" : "admin",
"password_hash" : "$1$xyz$EkmDnELo2ZAMjAxWHcsTu2",
"directory_root" : "/home/btsync/"

El password_hash podemos generarlo desde un servicio online como http://maord.com/ o desde consola con algo del estilo

openssl passwd -1 -salt xyz AQUITUPASSWORD

Ahora crearemos un fichero de configuración que nos permita iniciar, detener o reiniciar el servicio cuando queramos, en /etc/init/btsync.conf copiaremos el siguiente código:

# Bittorrent Sync server.
#
# Sync your files and stuff.

description "BitTorrent Sync"

start on filesystem
stop on shutdown

respawn

expect fork

script
exec start-stop-daemon -S -c root:root -x /usr/local/bin/btsync -- --config /etc/btsync/btsync.conf
end script

pre-stop script
killall btsync
end script

Esto nos permitirá utilizar estos comandos para iniciar, detener o reiniciar el servicio

service btsync start
service btsync stop
service btsync restart

Uso de BTSync desde el servidor

Por defecto, BTSync escucha en el puerto 8888 en todas las IPs de nuestra máquina online, así que accedemos a él, sea por IP o por hostname ( http://aqui.la.ip.servidor:8888 ), y veremos una interface de este estilo:

Podemos definir qué columnas queremos ver en la interface desde el botón de configuración

Es hora de compartir en nuestro PC la primera carpeta, obtendremos el enlace o clave BTSync desde nuestro cliente de escritorio, que por ejemplo en Windows luce así:

Pulsando el botón Copiar obtendremos una clave de carpeta, que pegaremos a continuación en la interface web de nuestro servidor, utilizando el menú superior.

El sistema nos preguntará donde queremos sincronizar esta carpeta (por defecto, nos ofrecerá la indicada en btsync.conf como directory_root)

¡ Listo ! En unos segundos comenzará la sincronización

Uso y Ventajas de la sincronización Bittorrent

A partir de ahora bastará con copiar o mover contenidos de nuestro PC a la carpeta compartida mediante BTSync para que estos se propagen automáticamente a toda al red de nodos conectados, de forma muy similar a cómo lo haríamos con Dropbox, Google Drive o cualquier otro sistema de almacenamiento online, con la ventaja de que todos ellos ( salvo la honrosa excepción de http://mega.co.nz ) te obligan a centralizar todo en una nueva carpeta que ellos crean, pudiendo únicamente sincronizar dicha carpeta, mientras que BTSync nos permite compartir múltiples carpetas en múltiples unidades de disco diferenciadas, a nuestro gusto.

En esta captura se puede ver cómo sincronizo 84 Gb de fotos y videos familiares, entre 3 dispositivos (PC de casa, PC del trabajo y un servidor en OVH). En el momento de la captura, el PC de casa (fuente original de los ficheros) está apagado, pero esto no supone ningún problema, ya que al estar el servidor de OVH siempre activo, el PC del trabajo comienza la sincronización desde él, mostrando los dos pares conectados.

Además, si en un momento dado enciendo el PC de casa durante esta sincronización, detectará automáticamente el nuevo peer, y comenzará a subir contenidos por su parte, contribuyendo al upload, y haciendo la propagación de los datos mucho más rápida gracias a la propia naturaleza descentralizada del protocolo bittorrent.

Otro punto a favor de BTSync es que basta apuntar a la carpeta BTSync que queramos un vhost apache con listado de directorios y un usuario/contraseña de acceso mediante un .htaccess, para disponer automáticamente de una interfaz web de la que poder descargar contenidos, o compartir con la familia y amigos.

Y por último, si queremos rizar el rizo, ya no es necesario ni compartir via web las fotos y videos de la peque; instalamos BTSync en el PC de abuelos, tías y primos, compartimos con ellos la carpeta como solo lectura, y basta con que enciendan el ordenador para que puedan acceder, mágicamente, a todas las nuevas fotos de nuestro retoño, en su propio PC, de forma automática.

Soporte BTSync de dispositivos

Disponemos de clientes BTSync para Windows, Mac, Linux, FreeBSD y varios dispositivos embebidos, asi como para Android, iOS, Windows Phone y Kindle Fire, asi que la compatibilidad no debería ser un problema. Obviamente, en el móvil no dispondremos de espacio para sincronizar 80 Gb de datos, pero si podemos sincronizar una carpeta de «Documentos» pequeña que queramos tener siempre accesible, disfrutando de similar comodidad a la de Dropbox.

Y para nuestras fotos y vídeos desde el dispositivo móvil, podemos configurar en el mismo una sincronización unidreccional (solo subida) que nos permita disponer de sincronización automática de nuestras fotos y videos en nuestra nube personal.

Postdata para el escritorio de Ubuntu

El soporte visual para Ubuntu puede obtenerse además de forma muy lograda, sin necesidad de utilizar la interface web, con un par de PPAs adicionales

sudo add-apt-repository ppa:tuxpoldo/btsync
sudo apt-get update
sudo apt-get install btsync-gui

Si prefieres la versión GTK sin indicador:

sudo apt-get install btsync-gui-gtk

13 comentarios en “La nube personal: Tu propio Dropbox gratis sin límites de espacio gracias a Bittorrent Sync

  1. Raul
    10 noviembre, 2014 at 13:59

    Más claro, agua… IMPRESIONANTE. que se dice.

  2. Gaby
    10 noviembre, 2014 at 14:35

    Yo uso OWNCLOUD. Y me parece muuuuy lento. No pasa de 1Mbps sincronizando en la misma LAN. Éste va mejor en LAN?

    • 10 noviembre, 2014 at 14:53

      Gaby, aqui va a toda pastilla, quizá tu problema con Owncloud era la velocidad del propio disco duro, o quizá que el cliente de sincronización es un poco «patatero». Prueba con BTSync, y en caso que te fuese lento, prueba esta mejora http://chaddersblog.blogspot.com.es/2013/07/solved-bittorrent-sync-performance-over.html

      • Gaby
        10 noviembre, 2014 at 16:02

        Es por protocolo del OWNCLOUD. No pasa de 1Mbps. Este lo he instalado ya. Pinta bien. Merci por el post. Compartir es amar.

      • Gaby
        10 noviembre, 2014 at 18:56

        Instalado en el teléfono y en el mac y va como un trueno, mañana me pelearé con el raspbmc que es lo único que tengo todo el día encendido y online y de momento se me resiste.

        $ sudo btsync –dump-sample-config > /etc/btsync/btsync.conf
        /usr/local/bin/btsync: 1: /usr/local/bin/btsync: Syntax error: word unexpected (expecting «)»)

        De momento me convence muuucho más que owncloud.

        • 10 noviembre, 2014 at 19:17

          Ese error probablemente se debe a haber descargado la versión incorrecta, 32 o 64 bits :)

  3. Trasno
    10 noviembre, 2014 at 16:10

    El problema que le veo es el tema de visualizar las fotos, al igual que con mega, el cliente de movil no genera thumbs de las fotos y hay que descargarlas para verlas, xlo que te petará la memoria del movil. Esto con owncloud se soluciona con una app de pago (xlomenos para ios) que genera Thumbs de la galería aqunque yo no he conseguido que funcione con la ultima versión de owncloud, espero que lo solucionen pronto.

    • 10 noviembre, 2014 at 20:45

      En mi caso la fuente original de las fotos es el propio móvil, con él suelo enseñar las últimas sacadas, que están en el propio móvil «físicamente», aunque tienes razón para las antiguas que ya has eliminado del mismo. Aunque en ese caso si utilizaría la opción web, puedes crear un vhost de la carpeta de fotos y añadirle un pequeño fichero auxiliar que haga la navegación por carpetas, con thumbs, etc con algo del estilo a http://imagevuex.com/events/indexr/

      Aunque obviamente no es lo mismo que dropbox (ni lo pretendía, al menos no el web ui) de esta forma podrás mostrar siempre lo que quieras en la interface web, con miniaturas y demás.

      • Trasno
        11 noviembre, 2014 at 09:32

        Gracias por la info :) probaré lo del vhost haber que tal se mueve.

  4. Raúl
    4 enero, 2015 at 22:27

    Trasteando un poco, he encontrado este enlace: http://blog.bittorrent.com/2013/05/23/how-i-created-my-own-personal-cloud-using-bittorrent-sync-owncloud-and-raspberry-pi/

    complementa lo que has puesto, usando owncloud como GUI de bit torrent sync.

    • 6 enero, 2015 at 03:13

      Genial Raúl, interesante opción, porque la interface web de BTSync es extremadamente limitada (por eso recomendaba crearle un vhost), y la sincronización de Owncloud deja mucho que desear… sin embargo con eso tienes lo mejor de los dos mundos, great !

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *