Thin Client

  1. Deluge Daemon Setup
    1. Create Default Config
    2. Add User to the authentication file
    3. Enable Remote Connection
    4. Start Daemon
    5. Verify Server IP Address
  2. Client Setup
    1. Accessing deluged service with local UI Client
    2. GTK UI
    3. Console
    4. Web UI
  3. Create SSH Tunnel

Deluge can be setup in such a way that a Deluge daemon, deluged, can be setup on a central computer, server, which can then be accessed and controlled by other computers, clients, using one of Deluge's UIs.

  • From Deluge 1.2 onwards, all communication between the GTK UI and daemon is encrypted so SSH tunnelling is not a requirement.
  • Both the Deluge client and daemon need to be the same major versions, i.e. both 1.2.x or both 1.3.x.
  • Windows users should append .exe to Deluge commands, e.g. deluged.exe, deluge-console.exe

Deluge Daemon Setup

The Deluge daemon deluged should be installed on the central server that you want your other computers to connect to.

Follow the install instructions to install deluged and deluge-console as a minimum on the server.

To run deluged as a service so that it starts/stops on server boot/shutdown, see these guides. Replace any daemon start or stop commands below with the appropriate service commands.

If you have problems setting up deluged enable logging and check for errors.

Create Default Config

To create the config directory and populate with the default files, run and then stop deluged:

deluged
pkill deluged

Add User to the authentication file

The next step is to create a Deluge user for clients/UIs to access the daemon remotely by editing the authentication file, auth, located in your config directory.

The auth file should contain lines with only '<username>:<password>:<level>', replacing <username> and <password> with your choice and <level> with the desired authentication level.

You can use your favourite text editor to achieve this or can be done with a one-line echo command e.g.:

echo "alice:MyC0mpL3xPass:10" >> ~/.config/deluge/auth

Enable Remote Connection

We will use deluge-console to configure deluged to accept connections from computers other than localhost.

Note: For SSH Tunnelling you do not need to enable remote connections so this step can be skipped.

Run the Console UI in non-interactive mode to set then view the allow_remote option with these commands:

deluge-console "config -s allow_remote True"
deluge-console "config allow_remote"

If you are running deluged under another user you will need to temporarily login as that user to enable deluge-console to access that daemon's config:

su --shell /bin/bash --login deluge

As a last resort you can edit core.conf in the config and change "allow_remote" from false to true. Note that editing conf files can only be done with deluged stopped.

Start Daemon

deluged

Verify Server IP Address

You will need to know the server's IP address for setting up the client(s). If you do not know your server's private or public IP address use these commands:

  1. Private IP:
    hostname -I
    
  1. Public IP:
    curl ifconfig.me
    

Congratulations! The server is now setup for remote client access.


Client Setup

Accessing deluged service with local UI Client

If you are attempting to access a daemon deluged on the same machine but they are running as different users. e.g. your login user is user and the daemon is running as deluge they are likely using different config locations. This will prevent accessing the daemon because when both client and daemon are localhost, they attempt to automatically authorise using the config auth files, which are assumed to be at the same location. The workaround is to replace the localclient line in your user config auth file with the localclient line from the deluged config auth file .

GTK UI

The Deluge GTK UI setup require switching the GTK UI from Classic mode to Thin-client mode, then adding and connecting to the remote daemon on the server.

  1. In Preferences -> Interface and disable (untick) Classic Mode
  2. Restart deluge and you should now see the Connection Manager pop up.
  3. You can remove the localhost daemon, if it is not needed.
  4. Click "Add" and for 'Hostname' enter your server's IP.
    1. For SSH Tunnelling you must use 127.0.0.2 and follow Create SSH Tunnel below, before continuing
  5. Leave the Port as default, 58846
  6. Enter the Username and Password you added to the authentication file then finish by clicking 'Add'. If this was successful a green tick should now appear as the status for the daemon you just added.
  7. Optional step: Expand Options and select 'Automatically connect to selected host on startup' and 'Do not show this dialog on start-up'.
  8. Click on Connect and the Connection Manager should disappear.

Congratulations! You can now access the Deluge daemon, deluged, on the server via the GTK UI.

Console

If accessing a local deluged daemon run the following and it will connect automatically:

deluge-console

To connect to a remote daemon use the connect command in deluge-console:

connect <host>[:<port>] <user> <password>

or from the terminal:

deluge-console "connect <host>[:<port>] <user> <password>"

Web UI

The Web UI is slightly different as the client is a web server daemon deluge-web that connects to a running deluged.

  1. Install deluge-web and run it:
    deluge-web
    
    Note: To run it in the background as a daemon, use --fork option. You may also want to set it up as a service.

In your web browser, enter the url below where <server> is the IP address of the server:

http://<server>:8112
  • Default password is: deluge

Congratulations! You can now access deluge on the server via the Web UI.


Create SSH Tunnel

Open up a terminal and enter the following, replacing <server> with the public IP of your server.

ssh -fNL 127.0.0.2:58846:localhost:58846 <server>

We use 127.0.0.2 instead of localhost so that Deluge client knows that we are connecting to a remote daemon. You will encounter problems otherwise with file browsing at it will assume to be on local client machine rather than remote server.

If you get the error 'bind: Can't assign requested address', you need to add 127.0.0.2 as an alias for the loopback device:

sudo ifconfig lo0 add 127.0.0.2
Last modified 8 days ago Last modified on Aug 24, 2014, 6:29:25 PM