Owncloud + BitTorrent Sync = Clone de dropbox

Owncloud. Ce logiciel, qui s’installe sur un serveur php, fournit une plateforme Cloud de stockage de fichiers. Je n’irais pas plus loin dans la présentation et je vous renvois directement à Google pour en savoir plus. Donc pour faire une récapitulatif Owncloud c’est donc un serveur central et des clients qui s’y connectent (Windows, Linux ou Android) pour synchroniser un ou plusieurs répertoires. La grande force de Owncloud, c’ est de vous proposer une interface Web complète avec un explorateur de fichiers, un éditeur de texte, un lecteur MP3, un calendrier et une multitude de fonctionnalités sympas disponible sous forme de plugin créés par la communauté. Ce que je reproche personnellement à Owncloud, c’est son client de synchronisation. J’ai rencontré pas mal de conflits, de fichiers erronés et autres petits problèmes. C’est pourquoi dans la suite je vais vous présenter et installer, en cohabitation avec Owncloud, un autre client nommé BitTorrent Sync. BitTorrent Sync est un programme est proposée par BitTorrent, éditeur des clients torrents BitTorrent et µTorrent. D’une simplicité enfantine, l’utilisateur choisi un dossier à synchroniser et son client devient alors aussi serveur et met à disposition la ressource à tous les autres nœuds disposant du secret. Les données transitent sur le réseau de façon chiffrées avec de l’AES-256. Plusieurs plugins sont déjà disponible et l’application propose à présent d’une API pour les développeurs. Pour la suite je suppose que vous avez déjà un Owncloud installé sur vôtre serveur PHP. Si ce n’est pas le cas vous trouverez toutes la documentation nécessaire sur le site officiel.

Installation de BitTorrent Sync sur Debian

On commence par se rendre sur la page de téléchargement du site pour récupérer l’archive correspondante à l’architecture de nôtre serveur. Dans mon cas il s’agit d’un x64. Une fois sur le serveur on extrait l’archive

Cela nous donne un binaire exécutable. Pour faire ça propre on le place avec ses confrères sous /usr/bin.

Toujours pour faire ça propre on va créer un dossier qui va accueillir la configuration. Sur nunux cela se passe dans /etc

On génère à présent un fichier de configuration grâce au binaire

On édite le fichier pour y spécifier le nom du serveur, le port d’écoute, le login admin et le lieu de stockage de la base.

Il y a deux port en écoute. Le “litening port” est le port qui écoute pour que les clients qui se connectent et synchronisent des fichiers. Le “Listen” dans la partie webui est le port en écoute pour avoir accès à l’interface web de management.

Ces deux ports doivent être ouvert sur le par-feu si vous en avez un. Dans mon exemple

Encore une fois pour faire les choses de façon propre, on va créer un utilisateur spécial pour l’application pour ne pas lancer cette dernière en tant que root.

Cette commande créer un utilisateur et son dossier home sous /home/btsync. C’est ce dossier que nous avions spécifié dans la configuration plus haut. Le « storage_path » permet à l’application de stocker une petite base de données noSQL sur les changements apportés aux fichiers, les synchronisations en cours etc…

On va faire comme les grands et créer un script « init » permettant le démarrage et l’arrêt de l’application.

On y place le contenu suivant

Si vous avez suivi à la lettre ce tuto vous n’avez aucun changement à apporter au script. On le rend executable

On installe le service au démarrage de la machine

Lancer le programme

L’application devrait être à présent disponible via vôtre navigateur à l’adresse de vôtre serveur, sur le port déterminé par le fichier de configuration dans la partie « webui ». Par défaut 8888. Ce qui nous donne ceci btsync_first_connection

 Reverse Proxy

C’est un peu dommage de taper sur le port 8888 pour accéder à la GUI de btsync non? Pour corriger cela on va utiliser la méthode de reverse proxy. Un proxy inverse (reverse proxy) est un type de serveur, placé en frontal d’un serveurs web (la WebUI de BtSync dans nôtre cas). Le reverse va orienter les requêtes arrivant sur le port HTTP standart vers le port du service en interne sur le serveur. En image ça donne ceci reverse_proxy

Pour ce faire on va créer un vHost sur le serveur Web apache. On créé un fichier sous /etc/apache2/sites-available/btsync et on y place le texte suivant

Ici on redirige les requêtes effectuées sur le nom de domaine btsync.mondomaine.com sur l’adresse ip du serveur sur le port d’écoute de la GUI de btsync. Il faut bien évidement avoir enregistré ce domaine dans vôtre zone DNS. Activation du vhost

Activation du module proxy

Et enfin, on relance le serveur web pour prendre en compte les changements

Couplage avec Owncloud

Il ne reste plus qu’a faire en sorte que Owncloud et BitTorrent Sync fonctionnent conjointement. Lors de l’installation de Owncloud on a du vous demander ou mettre les données des utilisateurs. Dans mon cas c’est sous /home/owncloud. Donc si je créé un utilisateur « nico » sous Owncloud j’aurais la hiérarchie de fichier suivante

Normalement, l’utulisateur qui a les droits sur le dossier Owncloud est www-data car c’est l’utilisateur du serveur web apache. Notre utilisateur btsync ne peut donc pas lire ou écrire dans se répertoire. On va donc créer un groupe dans lequel se trouve les deux utilisateurs et donner les droits sur le répertoire Owncloud à ce groupe. Création d’un groupe commun pour btsyn et owncloud

On ajoute les deux utilisateurs dedans.

Changement de groupe et de droit pour le dossier Owncloud

Il faut parfois relancer btsync pour que cela prenne en compte les changements apportés. On se connecte à présent à l’interface de btsync et on ajoute le dossier owncloud de l’utilisateur selon le chemin /owncloud_directory/user/files. btsync_add_folder   On clique sur « Generate » pour créer un secret qui sera partagé entre tous les clients. C’est terminé ! Vous pouvez maintenant installer le client sur un Windows par exemple, ajouter un dossier à synchroniser et renseigner la clé secrète générée précédemment. Je ne donne pas plus de détail sur cette partie, le programme est suffisamment user-friendly. Une fois associé, le client doit apparaître sur l’interface Web de BitTorrent Sync comme ceci : btsync_client_connected

One thought on “Owncloud + BitTorrent Sync = Clone de dropbox”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *