Installer BitTorrent Sync

Moment de détente dans notre installation de serveur avec un tout nouveau jouet concurrent de Dropbox et consort nommé BTsync.

btsync.png
BitTorrent Sync est un outil de synchronisation sécurisée de fichiers disponible sur les plateformes Windows, Mac et Linux (et donc NAS) sérieux concurrent (on verra) aux Dropbox like, pour le découvrir on va l’installer sur notre VPS puis à la maison sur notre Windows.

Préparation du serveur

On télécharge l’archive et on la décompresse :

wget http://btsync.s3-website-us-east-1.amazonaws.com/btsync_x64.tar.gz
tar -zxvf btsync_x64.tar.gz -C /usr/local/bin/

On créé le script de service et on le rend exécutable :

nano /etc/init.d/btsync

#!/bin/sh
# btsync service
# Take from <https://gist.github.com/MendelGusmao/5398362>
# Replace with linux users you want to run BTSync clients for
BTSYNC_USERS=”jcdenis”
DAEMON=/usr/bin/btsync

start() {
echo “Starting btsync…”
for btsuser in $BTSYNC_USERS; do
HOMEDIR=`getent passwd $btsuser | cut -d: -f6`
if [ -d $HOMEDIR/.sync ]; then
HOME=”$HOMEDIR” start-stop-daemon -b -o -c $btsuser -S -u $btsuser -x $DAEMON — –config $HOMEDIR/.sync/config.json
fi
done
}

stop() {
echo “Stopping btsync…”
for btsuser in $BTSYNC_USERS; do
HOMEDIR=`getent passwd $btsuser | cut -d: -f6`
if [ -d $HOMEDIR/.sync ]; then
start-stop-daemon -o -c $btsuser -K -u $btsuser -x $DAEMON
fi
done
}

status() {
for btsuser in $BTSYNC_USERS; do
dbpid=`pgrep -u $btsuser btsync`
if [ -z “$dbpid” ]; then
echo “btsync for USER $btsuser: not running.”
else
echo “btsync for USER $btsuser: running (pid $dbpid)”
fi
done
}

case “$1” in
start)
start
;;
stop)
stop
;;
restart|reload|force-reload)
stop
start
;;
status)
status
;;
*)
echo “Usage: /etc/init.d/btsync {start|stop|reload|force-reload|restart|status}”
exit 1
esac

exit 0

chmod +x /usr/local/bin/btsync

On le place au démarrage, personnellement j’utilise sysv-rc-conf (voir les trucs et astuces) mais rcconf peut le faire tout aussi bien.

Partage du serveur

On passe à la partie concernant le partage de fichiers, dans le script prédécent j’ai autorisé l’utilisateur ‘jcdenis’, donc on continue avec lui. A noter qu’on n’utilisera pas l’interface web disponible.
Dans la home de l’utilisateur on va créer le répertoire partagé et un répertoire qui servira à la synchronisation et on va y placer son fichier de configuration:

mkdir /home/jcdenis/btshare
mkdir /home/jcdenis/.sync
btsync --dump-sample-config > /home/jcdenis/.sync/sync.conf

On met de coté une clé secrète qu’on créé avec :

btsync --generate-secret

Puis on modifie sa configuration :

nano /home/jcdenis/.sync/sync.conf

{
“device_name”: “ScriboxWeb”,
“listening_port”: 54321,
“storage_path”: “/home/jcdenis/.sync”,
“check_for_updates”: true,
“use_upnp”: false,
“download_limit”: 0,
“upload_limit”: 0,
“webui”: {
//”listen”: “0.0.0.0:8888”,
“login” : “admin”,
“password” : “password”
},
“shared_folders”: [
{
“secret” : “XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”,
“dir” : “/home/jcdenis/btshare”,
“use_relay_server” : true,
“use_tracker” : true,
“use_dht” : false,
“search_lan” : true,
“use_sync_trash” : true,
“known_hosts” : []
}
]
}

N’oubliez pas de remplacer les valeurs ‘secret’ et ‘dir’ par les vôtres !
Enfin on dit à btsync de prendre en compte notre configuration :

btsync --config /home/jcdenis/.sync/sync.conf

Le serveur a un par feu, il faut le modifier pour autoriser le port 54321 qu’on vient de configurer en ajoutant :

nano /etc/init.d/firewall

# BitTorrent Sync
iptables -t filter -A OUTPUT -p tcp –dport 54321 -j ACCEPT
iptables -t filter -A OUTPUT -p udp –dport 54321 -j ACCEPT
iptables -t filter -A INPUT -p tcp –dport 54321 -j ACCEPT
iptables -t filter -A INPUT -p udp –dport 54321 -j ACCEPT

On prend en compte la modification :

/etc/init.d/firewall

Voila notre serveur est configuré.
Si par hasard il y a des bugs ou qu’on souhaite arrêter btsync, un petit killall btsync suffira. Ensuite il faudra relancer le service puis lui redonner notre configuration.

Partage local

Sur notre PC Windows, on installe BitTorrent Sync disponible ici
On ajoute un dossier à partager et on entre le ‘secret’ généré un peu plus tôt sur le serveur :
tbsync_win_1.png
On double click sur le dossier pour afficher ses préférences, on lui spécifie un hôte prédéfini avec l’IP de notre serveur et le port choisi plus haut :
tbsync_win_2.png
Et voila les répertoires des deux machines sont synchronisés !

Partage NAS

On va profiter du fait que j’ai un NAS pour tester BTsync dessus.
Suivant les gammes de NAS Synology l’architecture processeur n’est pas du tout la même, il va donc falloir trouver la votre, une liste complète est disponible sur le Wiki Synology. Pour mon vieux Synology DS211j ce sera la version ARM de BTsync.
En premier lieu il faut se connecter en SSH sur notre NAS, et donc activer ce service, pour cela rendez-vous dans l’interface web d’administration du NAS, puis dans Control Panel => Terminal => Enable SSH service et appliquer le changement.
conf_nas_ssh.png
Ensuite sur notre PC dans notre bon vieux PuTTY on se connecte à notre NAS avec le login root et le mot de passe du compte admin :
nas_ssh_start.png
On créé un répertoire pour les fichiers partagés, on télécharge l’archive de BTsync, on la décompresse et on démarre Btsync :

mkdir /var/sync
wget http://btsync.s3-website-us-east-1.amazonaws.com/btsync_arm.tar.gz
tar -zxvf btsync_arm.tar.gz
~/btsync

Maintenant on se rend dans l’interface web de gestion sur notre NAS sur le port 8888. (si vous avez un pare feu sur votre NAS, n’oubliez pas de l’ouvrir) On lui demande d’ajouter un dossier, on entre la clé secrète créé au début de cette article et on choisi le répertoire créé précédemment :
nas_btsync_gui.png
Et c’est tout !

Si les trois machines (NAS, PC, VPS) sont opérationnelles on devrait voir quelque chose comme ça :
btsync_NAS_PC_VPS_ok.png

Au suivant

C’est bien beau de jouer, mais si on casse tout, on perd tout, alors on va mettre en place un système de sauvegardes.

Sources

1 doma par “Installer BitTorrent Sync”

Atbildēt

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *