ownCloud + Transmission

Transmission est un client Bittorrent disponible sur Linux et Mac. Il a la particularité de proposer une base commune pour différentes interfaces: Qt, GTK, console ou client web.

Cela rend donc possible l'installation du démon Transmission ainsi que son interface web sur un serveur. Via une simple page web, il devient ainsi possible de gérer vos torrents:

Clutch-LargeS'il est un excellent client Bittorrent, l’absence de quelques fonctionnalités se fait cruellement sentir sur cette interface web. Il est notamment impossible de récupérer vos fichiers téléchargés sur votre machine (direct download du serveur vers le client). Impossible également de déplacer les fichiers reçus dans autre dossier de votre serveur.

Ça tombe bien, tout cela, ownCloud sait parfaitement le faire. Il peut donc être intéressant de coupler ces deux logiciels. Les téléchargements seront toujours a gérer depuis Transmission, mais les fichiers téléchargés pourront être gérés depuis ownCloud.

Installez ownCloud, via les dépôts par exemple:
http://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud

Installez transmission-daemon, par exemple via les dépôts Debian:

# aptitude install transmission-cli transmission-common transmission-daemon

Maintenant, il ne vous reste plus qu’à attribuer les droits nécessaires au dossier qui va être partagé entre transmission et apache (owncloud).

# chmod 2774 /home/debian-transmission
# chgrp debian-transmission /home/debian-transmission

Pour ceux qui se disent:

"chmod 2774 ?! Pardon ? Je croyais qu'il n'y avait que 3 chiffres (user, group, other) ! On m'aurait menti ?!"

Il fallait lire le manuel:

La valeur pour le mode numérique est constituée de 1 à 4 chiffres en octal (0 à 7), calculés en additionnant les bits de valeurs 4, 2 et 1, tout bit non mentionné étant considéré comme des zéros en début de chaîne. Le premier chiffre correspond aux attributs identifiant de l'utilisateur (4), identifiant du groupe (2) et suppression restreinte ou bit sticky (1). Le second chiffre correspond aux autorisations de lecture (4), écriture (2) et exécution (1) pour l'utilisateur propriétaire du fichier. Les troisième et quatrième chiffres correspondent respectivement aux autorisations d'accès pour les membres du groupe du fichier, et pour les autres utilisateurs. Les valeurs ont les mêmes significations que pour le deuxième chiffre.

Ici, l'identifiant de groupe (SGID) appliqué au dossier permet de s'assurer que tous les fichiers crées au sein de ce dossier auront pour groupe propriétaire le groupe du dossier parent. C'est extrêmement utile dans notre cas, car l'utilisateur debian-transmission va créer des fichiers. Par défaut, ces fichiers appartiendraient à debian-transmission:debian-transmission (user:group). Grâce au SGID, les fichiers appartiendront a debian-transmission:www-data (en supposant que www-data est le groupe propriétaire de Downloads). Ceci permet donc à la fois à Apache et Transmission de posséder les fichiers.

Il n'y a plus qu'à modifier le umask de transmission dans son fichier de configuration (/etc/transmission-daemon/settings.json). Habituellement, les umask sont représentés en octal (base 8). Malheureusement, json ne supporte pas cela. Donc nous devons le convertir en décimal (base 10).

Ici nous avons de la chance, vu que nous souhaitons donner tous les droits a l'utilisateur et groupe propriétaire, cela nous donne un umask de 002. Le chiffre 2 s'écrit de la même façon en base 8 et 10... C'est à dire, 2.

Juste pour la culture, il est possible d'effectuer ce genre de conversion via bash:

$ echo $(( 8#002 ))
2
$ echo $(( 8#022 ))
18

Bref, on change le paramètre "umask" à 2. On reload transmission-daemon pour appliquer tous les changements.

# service transmission-daemon reload

Conenctez-vous sur ownCloud. Si ce n'est déjà pas fait, activez l'application external storage support. Rendez-vous ensuite sur le panel d'administration, et configurez votre stockage externe comme ceci:

oc_external_storage

Dernière étape, optionnelle, actualiser l'index d'ownCloud.

# cd /var/www/owncloud/
# oc_user=toto
# sudo -u www-data php console.php files:scan --path=/$oc_user/files/Downloads"

Et voilà ! Vous pouvez à présent télécharger un iso de la toute fraiche Debian Jessie sur votre serveur Bittorrent, puis le récupérer sur votre client via ownCloud.

transmission-dl-debian

owncloud-debian-jessie

Credit:
Upload/Download picture by John Trainor, under Creative Commons BY 2.0.

Vus : 1633
Publié par Jeyg : 33