Substituir o Dropbox pelo BitTorrent Sync em um Raspberry Pi

BitTorrent Sync é um utilitário gratuito que usa o protocolo BitTorrent para manter pastas sincronizadas entre dispositivos. Pode ser usada com o OSX, Windows, Android e Linux. Não é código aberto, porém, o que pode ser um problema para algumas pessoas. Mas se não for para você, com um pouco de trabalho pode-se usar o btsync como uma solução de sincronização gratuita.

Enquanto o Dropbox requer que você mantenha uma cópia de seus dados em seus servidores, o btsync nunca requer que seus dados habitem em um dispositivo que não seja o seu. Isso é legal em questões de segurança, mas significa que para sincronizar dois dispositivos eles precisam estar on-line ao mesmo tempo. Aqui é onde o Raspberry Pi entra. Você pode usar ele como um nó em sua rede de sincronização, de forma que alterar um arquivo em qualquer dispositivo irá altera-lo no Pi e os outros dispositivos irão receber as alterações quando estiverem on-line.

Em primeiro lugar, configuramos o Pi como servidor central e depois conectaremos nossos dispositivos a ele (é importante notar, porém, que o Pi não é um nó “servidor” especial, é um nó comum como qualquer outro).

Instalando o BitTorrent Sync em um Raspberry Pi

NOTA: Esse artigo foi baseado no uso do Raspbian Wheezy, mas suspeito que essas ideias serão traduzidas para outros sistemas operacionais.

Você precisa obter a versão ARM do BitTorrent Sync:

mkdir ~/.btsync && cd ~/.btsync
wget http://btsync.s3-website-us-east-1.amazonaws.com/btsync_arm.tar.gz
tar -xfv btsync_arm.tar.gz

A menos que você tenha um SD grande em seu Pi irá provavelmente querer usar um drive externo como local de sincronização. Esse artigo foi baseado no uso de um pen-drive USB. Você precisa formatar ele como EXT4 (Isso irá apagar todos os dados de sua unidade de armazenamento)

df -h                               # find your drive here, e.g. `sda1`
sudo umount /dev/sda1               # replace sda1 with your drive name !
sudo mkfs.ext4 /dev/sda1 -L BTSync  # replace sda1 with your drive name !

Agora tudo o que precisa fazer é carregar a aplicação btsync e tudo deve funcionar corretamente!

cd ~/.btsync
sudo ./btsync  # can be killed with `sudo killall btsync`

Se você visualizar a seguinte saída significa que o btsync está rodando de forma apropriada.

BitTorrent Sync forked to background. pid = 3003

Acesse pelo seu navegador a URL Your-Pi-IP-Address:8888/gui para gerenciar o processo do btsync. Para adicionar o pen-drive selecione  “Add Folder” e navegue até /media/BTSync. Você precisará gerar uma senha se essa for a primeira vez que estiver adicionando uma pasta.

Add Folfer

Outros dispositivos

Agora vá baixar a app para Android e/ou para o seu desktop e conecte-o usando a senha que foi gerada. Qualquer alteração em qualquer dispositivo deverá ser sincronizada entre todos os dispositivos. Se você manter seu Pi on-line ele irá armazenar o conteúdo mais atualizado a medida que seus outros dispositivos alternem entre on ou off-line.

Crédito extra

Iniciar no Boot

Você pode querer configurar o btsync para ser iniciado quando você inicia seu Raspberry Pi. Para fazer isso, coloque um script em /etc/init.d/ e depois registre-o em update-rc.d.

sudo nano /etc/init.d/btsync

Cole o código a seguir no script

#! /bin/sh
# /etc/init.d/btsync
#

# Carry out specific functions when asked to by the system
case "$1" in
start)
    /home/pi/.btsync/btsync
    ;;
stop)
    killall btsync
    ;;
*)
    echo "Usage: /etc/init.d/btsync {start|stop}"
    exit 1
    ;;
esac

exit 0

Depois altere as permissões, teste, e registre o script para ser executado durante o boot:

sudo chmod 755 /etc/init.d/btsync
sudo /etc/init.d/btsync start       # test that the script starts
sudo /etc/init.d/btsync stop        # test that the script stops
sudo update-rc.d btsync defaults

Interface Web protegida por senha

Se você for expor sua interface web para o mundo externo (ou se não confia nos outros membros da sua rede) irá querer proteger ela com uma senha. Isso pode ser feito com um arquivo de configuração do btsync passado ao executável durante a sua execução com a opção  --config. Primeiro, use o btsync para gerar um arquivo de configuração modelo, modifique esse arquivo de acordo com suas necessidades e reinicie o processo.

cd ~/.btsync
./btsync --dump-sample-config > btsync.conf
# abra o arquivo de configuração e altere o que quiser
sudo killall btsync
sudo ./btsync --config btsync.conf

DICA: Use o jsonlint para validar seu arquivo de configuração caso o btsync reclame algum erro. Também se certifique de modificar o script /etc/init.d/btsync para usar o arquivo de configuração.

Traduzido de http://jack.minardi.org

  • Rocha Felippe

    Bom dia Kleber, uma coisa que não ficou clara para mim, ele usa a lan ou wan para fzr a sincronização?