Ceci est une ancienne révision du document !
Suite à ce 1er article sur les seedbox qui utilise rtorrent/rutorrent en voici un second, qui utilise cette fois-ci deluge, plus précisément deluged, et deluge-web. Toujours sous Debian Wheezy. La version à l'essai dans ce guide est la 1.3.3-2+nmu1.
Comme je le dis dans le dossier de rtorrent/rutorrent, l'association de ces 2 logiciels se fait un peu péniblement, car bien que rtorrent publie une API qui permette à des outils externes de le contrôler, il n'est pas conçu pour être modulaire dès le départ.
Et être modulaire, c'est justement le cas de Deluge, qui tourne comme un daemon, c'est à dire sans interface graphique liée. Il faut lui ajoindre l'interface graphique souhaitée, qui peut être une console, une interface graphique classique (GTK), ou bien une interface web. Vous choisissez parmi celles-ci celles que vous avez envie d'utiliser. Dans le cas d'une seedbox, seule l'interface web est utile.
De plus, le développement de l'interface web, et de Deluge, semble se faire conjointement, contrairement à rtorrent/rutorrent qui sont développés séparément. Tout ça pour dire: deluge devrait être mieux intégré à Debian, et donc encore plus simple à utiliser ! … on verra à la fin du dossier que ça n'est pas encore le cas.
… se fait assez simplement, il suffit d'installer les paquets deluged et deluge-web. Il n'est pas nécessaire d'installer le meta-paquet deluge.
Rappel: le “d” du bout deluged signifie “daemon”, autrement dit il est conçu pour tourner en tant que service système, sans interface graphique liée.
Info: deluged intègre son propre serveur web, il n'est donc pas utile d'installer apache ou un autre serveur web.
# (sous le compte utilisateur du serveur qui gèrera les transferts) # Lancez deluge, plus précisément le daemon deluged # Lancez aussi l'interface graphique. deluge-web & # (n'oubliez pas l'esperluette, symbole '&' dans la commande du dessus, elle signifie au shell de vous rendre la main)
Vous pouvez ensuite vous assurer que les logiciels tournent avec un:
ps ux | grep deluge
… vous devriez voir les 2 processus tourner: deluged, et deluge-web.
delugeuser 15335 1.1 2.6 254752 26860 ? Sl 13:26 0:37 /usr/bin/python /usr/bin/deluged delugeuser 15341 1.0 3.2 117872 33236 pts/3 Sl 13:26 0:32 /usr/bin/python /usr/bin/deluge-web
Pour configurer deluge, vous devrez simplement vous rendre sur la page web que deluge-web a dû mettre en place de lui-même, sur le port 8112. Rendez-vous avec votre navigateur sur http://ip.de.votre.serveur:8112
Il vous demande un mot de passe, par défaut il s'agit de: deluge Il vous est alors conseillé de le changer dans les options.
Voilà tout pour la configuration basique.
Je constate plusieurs problèmes avec l'interface web:
Je termine là mon expérience pour le moment, hélas peu concluante donc.
La webgui est buggée, donc incomfortable. Il serait possible d'utiliser un autre biais pour configurer deluge. Il est aussi possible que ce problème soit corrigé dans la version upstream (1.3.4) de Deluge.
Je constate un bug qui resort dans le terminal où deluge-web a été lancé:
KeyError: label -------------------------------------------------------------------------------- [ERROR ] 21:12:31 client:393 RPCError Message Received! -------------------------------------------------------------------------------- RPCRequest: core.get_torrents_status({u'label': u''}, [u'queue', u'name', u'total_size', u'state', u'progress', u'num_seeds', u'total_seeds', u'num_peers', u'total_peers', u'download_payload_rate', u'upload_payload_rate', u'eta', u'ratio', u'distributed_copies', u'is_auto_managed', u'time_added', u'tracker_host', u'save_path'], True) -------------------------------------------------------------------------------- File "/usr/lib/python2.7/dist-packages/deluge/core/rpcserver.py", line 298, in dispatch ret = self.factory.methods[method](*args, **kwargs) File "/usr/lib/python2.7/dist-packages/deluge/core/core.py", line 426, in get_torrents_status torrent_ids = self.filtermanager.filter_torrent_ids(filter_dict) File "/usr/lib/python2.7/dist-packages/deluge/core/filtermanager.py", line 173, in filter_torrent_ids if (not status[field] in values) and torrent_id in torrent_ids:
[ERROR ] 21:20:57 client:393 RPCError Message Received! -------------------------------------------------------------------------------- RPCRequest: core.enable_plugin(Execute) -------------------------------------------------------------------------------- File "/usr/lib/python2.7/dist-packages/deluge/core/rpcserver.py", line 298, in dispatch ret = self.factory.methods[method](*args, **kwargs) File "/usr/lib/python2.7/dist-packages/deluge/core/core.py", line 506, in enable_plugin self.pluginmanager.enable_plugin(plugin) File "/usr/lib/python2.7/dist-packages/deluge/core/pluginmanager.py", line 82, in enable_plugin super(PluginManager, self).enable_plugin(name) File "/usr/lib/python2.7/dist-packages/deluge/pluginmanagerbase.py", line 151, in enable_plugin component.start([instance.plugin._component_name]) File "/usr/lib/python2.7/dist-packages/deluge/component.py", line 278, in start if self.components[name]._component_depend: KeyError: CorePlugin.Execute --------------------------------------------------------------------------------
[ERROR ] 21:46:41 json_api:227 Error calling method `web.get_host_status` [ERROR ] 21:46:42 json_api:228 free variable 'host' referenced before assignment in enclosing scope Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/deluge/ui/web/json_api.py", line 219, in _handle_request result = self._exec_local(method, params, request) File "/usr/lib/python2.7/dist-packages/deluge/ui/web/json_api.py", line 186, in _exec_local return meth(*params) File "/usr/lib/python2.7/dist-packages/deluge/ui/web/json_api.py", line 750, in get_host_status return response(_("Offline")) File "/usr/lib/python2.7/dist-packages/deluge/ui/web/json_api.py", line 745, in response return host_id, host, port, status, info NameError: free variable 'host' referenced before assignment in enclosing scope
Le défi maintenant consisterait à isoler les bugs, les reproduire, et trouver le commit correspondant de façon à ce qu'ils soient réintégrés dans la version stable de Wheezy.