Difference between revisions of "Deluge"

From ArchWiki
Jump to: navigation, search
(Troubleshooting)
m (Daemon Setup)
(31 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
[[ko:Deluge]]
 
[[ko:Deluge]]
 
[[Category:Internet Applications]]
 
[[Category:Internet Applications]]
[http://deluge-torrent.org/ Deluge] is a full-featured  BitTorrent client for Linux, OS X, Unix and Windows. It uses libtorrent in its backend and features multiple user-interfaces including: GTK+, web and console. It has been designed using the client server model with a daemon process that handles all the bittorrent activity. The Deluge daemon is able to run on headless machines with the user-interfaces being able to connect remotely from any platform. Deluge is not designed for any one desktop environment and will work just fine in GNOME, KDE, XFCE and others. Deluge is  Free Software and is licensed under the  GNU General Public License.
+
{{Article summary start}}
 +
{{Article summary text|Deluge is a lightweight, BitTorrent client written in python that offers users a powerful client/server architectureOnce a headless daemon has been setup, user can interact with it in three ways including a WebUI, GTK-UI, and console interface.}}
 +
{{Article summary heading|Related Articles}}
 +
{{Article summary wiki|PeerGuardian Linux}}
 +
{{Article summary wiki|Ufw}}
 +
{{Article summary heading|External Links}}
 +
{{Article summary wiki|http://dev.deluge-torrent.org/wiki Official Deluge Wiki}}
 +
{{Article summary end}}
  
==Install==
+
==Installation==
[[pacman| Install]] {{Pkg|deluge}} from the [[official repositories]].
+
{{Pkg|deluge}} is available from the [[official repositories]].
 +
# pacman -S deluge
  
==Configuration==
+
The gtk UI requires additional dependencies as does the webui.  Inspect the pacman output to determine which are right for the intended application.
If you want to run Deluge as user just run:
+
  python2-notify: libnotify notifications
  # deluge -u [gtk|web|console]
+
pygtk: needed for gtk ui
 +
librsvg: needed for gtk ui
 +
python2-mako: needed for web ui
  
===daemon===
+
==Daemon Setup==  
Please note, deluge works perfectly fine without its daemon running. The default user for the Deluge daemon, is '''deluge''', which is created upon package installation. You can change this in {{ic|/etc/conf.d/deluged}}. Of course, the user needs to exist.
+
Deluge can run as a system daemon which is accessible to any system user or it can run in a non-daemon mode. The focus of this article is on the daemon mode of operation.  Users wishing a more simplistic setup, i.e. running {{ic|/usr/bin/deluged}} as them-self should be able to read on and simply substitute the systemctl commands for the live files on the system.
  
The rest of this guide will assume you use the default '''deluge''' user. This is that user's default home directory and therefore its configuration location is in {{ic|/srv/deluge}}. This should be fine under most circumstances. Note that this is NOT the default download location, it only holds its configuration and ssl certificates. You will be able to change all other options later on once you get a client working.
+
{{Note|Advanced users are free to edit the configuration files in the deluge daemon home directory {{ic|/srv/deluge/.config/}} manually or from {{ic|/usr/bin/deluge-console}}. The rest of this guide is written using the gtk client to do this from convenience of a GUI.}}
  
Next, start the [[daemon]] to generate its default configuration in its home directory:
+
Start the deluge backend daemon like any other systemd service:
 +
# systemctl start deluged
  
==Graphical Clients==
+
=== Create a User ===
 +
To allow interaction with the daemon, create a user:password:level in {{ic|/srv/deluge/.config/deluge/auth}}. 
 +
For example:
 +
# echo "delugeuser:p422WoRd:10" >> /srv/deluge/.config/deluge/auth
 +
{{Note|The user/password created does not have to match any system users... and to maintain good security practices it should NOT!}}
  
===GTK UI===
+
The number '''10''' corresponds to a level of 'Admin.'  Refer to the following table for additional values:
The GTK UI needs to have {{Pkg|pygtk}} and {{Pkg|librsvg}} installed on the clients.
+
If the deluge daemon is running stop it.
+
  
In order to connect remotely via the GTK UI, there should be something like this in {{ic|/srv/deluge/.config/deluge/core.conf}}:
+
{| class="wikitable" align="center"
"allow_remote": true,
+
|-
 +
! Level Name !! Level Value
 +
|-
 +
| None || 0
 +
|-
 +
|Read Only || 1
 +
|-
 +
| Normal || 5
 +
|-
 +
| Admin || 10
 +
|}
  
Now add yourself to the authentification file:
+
{{Note|In Deluge 1.35, these values have no effect, but multiuser options are under development.}}
# echo "yourusername:yourpassword:10" >> /srv/deluge/.config/deluge/auth
+
  
The authentification level is not used at this time. Read [http://dev.deluge-torrent.org/wiki/UserGuide/Authentication more] about that.
+
=== Define Options ===
 +
#Load the gtk client {{ic|/usr/bin/deluge-gtk}}
 +
#Disable '''classic mode''' from the Edit>Preferences>Interface.
  
Start the Deluge daemon again.
+
A restart of the client is required for these changes to take effect.  Exit the client and reload it.
  
Now start the GTK UI. If you prefer, you can edit the preferences in {{ic|~/.config/deluge/gtkui.conf}}, but there's also a nice configuration tool in the UI.
+
#Setup the client to point to the daemon from Edit>Connection Manager.
 +
#Delete the dummy server by hightlighting it and clicking the "Remove" button.
 +
#Create an entry to the daemon via the "Add" button populating the resulting dialog with either the IP address or the word "localhost" as the hostname. Populate the "Username" and "Password" fields with the username and password used in the daemons setup. and then click the "+ Add" button.
  
Look for '''classic mode''' and disable it. Then go to Edit -> Connection Manager and add your daemon.
+
Hostname: localhost
 +
Username: delugeuser
 +
Password: p422WoRd:10
  
===Web UI===
+
If the correct credentials were populated, a green light should appear options for interaction  adjacent to the name of the server.  To connect, hit the "Connect" button.
The web UI daemon runs on the server and the clients only need a web browser. You need to install {{Pkg|python2-mako}} on the server.
+
  
First, start the web UI [[daemon]], named ''deluge-web'', and login at {{ic|http://''ip-address'':8112}}. Where ''ip-address'' is the name of your Deluge server or its private or public IP address. When asked for a password, enter "deluge" as it is the default password.
+
Users can now configure their server from the GUI.  Most of the options are self explanatory and intuitive.  More details are available on the official [http://dev.deluge-torrent.org/wiki/UserGuide/BandwidthTweaking Deluge wiki] for details.
  
The preferences in the web UI should be rather self explanatory and the first obvious thing to do is to change your password.
+
{{Note|When defining paths under Preferences>Downloads make sure that the the '''deluge''' user has read/write access to whatever is defined.  Remember that the daemon is running as system user '''deluge''' in system group '''deluge'''!}}
 +
{{Note|If the expectation exists to allow access from other machines, be sure to enable Preferences>Daemon>Connections>Allow Remote Connections.}}
  
====Automatically Connect To Daemon====
+
== Interacting with the Daemon ==
If you want to avoid clicking "connect" everytime you start the Deluge web UI, edit the {{ic|web.conf}} file in your configuration directory (usually {{ic|/srv/deluge/.config/deluge}}). 
+
As previously mentioned, users have three options to connect to the daemon:
It should have a line like this towards the bottom:
+
#Deluge-GTK
'''
+
#Deluge-Web
"default_daemon": ""
+
#Deluge-console
  
Change it to:
+
=== Deluge-Gtk ===
  '''
+
The gtk client has already been covered in the previous section. Users should now have a fully functional client.
"default_daemon": "127.0.0.1:58846"
+
  
This assumes that your Deluge port is the default 58846.
+
===Deluge-Web (Optional) ===
 
+
{{Warning|Running the web client without encryption can be a bad idea. It is therefore recommended that users enable https.}}
====SSL====
+
To enable encrypted connections to/from the daemon, simply edit the '''https''' variable in {{ic|/srv/deluge/.config/deluge/web.conf}} changing the default value of '''false''' to '''true''' as shown:
In case you want SSL for the web UI, you need to generate a new cert/key set. To do this, first stop the web UI daemon and then append to {{ic|/srv/deluge/.config/deluge/ssl/}}:
+
 
+
# openssl req -new -x509 -nodes -out deluge.cert.pem -keyout deluge.key.pem
+
 
+
Next you need to edit {{ic|/srv/deluge/.config/deluge/web.conf}} and change the '''pkey''' and '''cert''' configuration directives to use your new self-signed certificates and also enable SSL:
+
...
+
"pkey": "ssl/deluge.key.pem",
+
...
+
"cert": "ssl/deluge.cert.pem",
+
...
+
 
  "https": true,
 
  "https": true,
  
Afterwards just start the web UI daemon again.
+
Take note of the doublequotes and the trailing comma!
  
====Apache configuration====
+
Users wishing to regenerate self-signed certificates can refer to [http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#selfcert this link].
  
As of this writing, it is possible to use ProxyPass and ProxyPassReverse with Apache to run your Deluge web UI with a web server. To do so, add the following lines to your {{ic|httpd.conf}}.
+
To run the web ui, simply start the web-daemon:
 +
# systemctl start deluge-web
  
Uncomment the Virtual Hosts line:
+
Point a browser to {{ic|https://localhost:8112}}.  Substitute the word '''localhost''' with an IP address if the server is elsewhere.
 +
When asked for a password, enter "deluge" as it is the default password.
  
  Include conf/extra/httpd-vhosts.conf
+
The preferences in the web UI is ''highly'' similar to the gtk UI.  As explained in the previous section, edit the connection manager and define an entry to the daemon using the same credentials used in the setup step. Once finished, users are free to remove the dummy server entry.
  
That is all the editing that needs to be done for the {{ic|httpd.conf}}. Next, navigate to the {{ic|extra/}} folder and edit the {{ic|httpd-vhosts.conf}} file. Append to the file, the following:
+
Hostname: localhost
 +
Username: delugeuser
 +
Password: p422WoRd:10
  
{{bc|<VirtualHost *:80>
+
=== Deluge-Console (Optional) ===
    ServerAlias subdomain.example.com
+
The CLI client {{ic|/usr/bin/deluge-consle}} can also be used to connect to a running daemon. Invoke it from a shell. To connect, simply type:
    ProxyRequests off
+
connect localhost delugeuser p422WoRd:10
    ProxyPass / http://127.0.0.1:8112/
+
    ProxyPassReverse / http://127.0.0.1:8112/
+
</VirtualHost>
+
}}
+
  
 
==Troubleshooting==
 
==Troubleshooting==
 +
=== Magnet Links Are Broken with Chromium ===
 +
The following command should return "deluge.desktop":
 +
$ xdg-mime query default "x-scheme-handler/magnet"
  
=== Downloads don't start ===
+
If it returns a null, run this command:
As of libtorrent-rasterbar version 0.16, Deluge will not download torrents that are added by a magnet link.
+
$ xdg-mime default deluge.desktop application/x-bittorrent x-scheme-handler/magnet
* https://bugs.archlinux.org/task/29414
+
* https://bbs.archlinux.org/viewtopic.php?id=151249
+
 
+
=== Web UI doesn't store settings ===
+
For some yet unknown reason, the web interface with Deluge 1.3.3 refuses to properly store the incoming (listen) ports configuration. This can manually be edited in core.conf. The Deluge bugtracker mentions this is fixed, it is not in 1.3.3.
+
 
+
{{hc|/srv/deluge/.config/deluge/core.conf|...
+
"enc_prefer_rc4": true,
+
"listen_ports": [
+
  49160,
+
  49249
+
],
+
"dht": false,
+
...}}
+
  
=== Daemon won't start on fresh install ===
+
Reference: https://bugs.archlinux.org/task/28011
There seems to be an issue creating a folder with the correct permissions when the package installs, try:
+
# chmod u+x /srv/deluge
+

Revision as of 11:04, 13 January 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary heading Template:Article summary wiki Template:Article summary end

Installation

deluge is available from the official repositories.

# pacman -S deluge

The gtk UI requires additional dependencies as does the webui. Inspect the pacman output to determine which are right for the intended application.

python2-notify: libnotify notifications
pygtk: needed for gtk ui
librsvg: needed for gtk ui
python2-mako: needed for web ui

Daemon Setup

Deluge can run as a system daemon which is accessible to any system user or it can run in a non-daemon mode. The focus of this article is on the daemon mode of operation. Users wishing a more simplistic setup, i.e. running /usr/bin/deluged as them-self should be able to read on and simply substitute the systemctl commands for the live files on the system.

Note: Advanced users are free to edit the configuration files in the deluge daemon home directory /srv/deluge/.config/ manually or from /usr/bin/deluge-console. The rest of this guide is written using the gtk client to do this from convenience of a GUI.

Start the deluge backend daemon like any other systemd service:

# systemctl start deluged

Create a User

To allow interaction with the daemon, create a user:password:level in /srv/deluge/.config/deluge/auth. For example:

# echo "delugeuser:p422WoRd:10" >> /srv/deluge/.config/deluge/auth
Note: The user/password created does not have to match any system users... and to maintain good security practices it should NOT!

The number 10 corresponds to a level of 'Admin.' Refer to the following table for additional values:

Level Name Level Value
None 0
Read Only 1
Normal 5
Admin 10
Note: In Deluge 1.35, these values have no effect, but multiuser options are under development.

Define Options

  1. Load the gtk client /usr/bin/deluge-gtk
  2. Disable classic mode from the Edit>Preferences>Interface.

A restart of the client is required for these changes to take effect. Exit the client and reload it.

  1. Setup the client to point to the daemon from Edit>Connection Manager.
  2. Delete the dummy server by hightlighting it and clicking the "Remove" button.
  3. Create an entry to the daemon via the "Add" button populating the resulting dialog with either the IP address or the word "localhost" as the hostname. Populate the "Username" and "Password" fields with the username and password used in the daemons setup. and then click the "+ Add" button.
Hostname: localhost
Username: delugeuser
Password: p422WoRd:10

If the correct credentials were populated, a green light should appear options for interaction adjacent to the name of the server. To connect, hit the "Connect" button.

Users can now configure their server from the GUI. Most of the options are self explanatory and intuitive. More details are available on the official Deluge wiki for details.

Note: When defining paths under Preferences>Downloads make sure that the the deluge user has read/write access to whatever is defined. Remember that the daemon is running as system user deluge in system group deluge!
Note: If the expectation exists to allow access from other machines, be sure to enable Preferences>Daemon>Connections>Allow Remote Connections.

Interacting with the Daemon

As previously mentioned, users have three options to connect to the daemon:

  1. Deluge-GTK
  2. Deluge-Web
  3. Deluge-console

Deluge-Gtk

The gtk client has already been covered in the previous section. Users should now have a fully functional client.

Deluge-Web (Optional)

Warning: Running the web client without encryption can be a bad idea. It is therefore recommended that users enable https.

To enable encrypted connections to/from the daemon, simply edit the https variable in /srv/deluge/.config/deluge/web.conf changing the default value of false to true as shown:

"https": true,

Take note of the doublequotes and the trailing comma!

Users wishing to regenerate self-signed certificates can refer to this link.

To run the web ui, simply start the web-daemon:

# systemctl start deluge-web

Point a browser to https://localhost:8112. Substitute the word localhost with an IP address if the server is elsewhere. When asked for a password, enter "deluge" as it is the default password.

The preferences in the web UI is highly similar to the gtk UI. As explained in the previous section, edit the connection manager and define an entry to the daemon using the same credentials used in the setup step. Once finished, users are free to remove the dummy server entry.

Hostname: localhost
Username: delugeuser
Password: p422WoRd:10

Deluge-Console (Optional)

The CLI client /usr/bin/deluge-consle can also be used to connect to a running daemon. Invoke it from a shell. To connect, simply type:

connect localhost delugeuser p422WoRd:10

Troubleshooting

Magnet Links Are Broken with Chromium

The following command should return "deluge.desktop":

$ xdg-mime query default "x-scheme-handler/magnet"

If it returns a null, run this command:

$ xdg-mime default deluge.desktop application/x-bittorrent x-scheme-handler/magnet

Reference: https://bugs.archlinux.org/task/28011