Deluge
Deluge is a fully-featured, high performance cross-platform BitTorrent client.
Initial Setup
Installing Deluge is easy. Simply issue the following command from SSH:
sudo box install deluge
This command will configure Deluge and the associated web interface "Deluge-Web" for use with your user.
After installation, if there will be two 2 new packages installed: libtorrent, and deluge-common. Due to potential packaging conflicts with your distribution's repository, the package deluge-common
has been held by apt and will not be marked for upgrade. You may see apt issue a warning regarding the held deluge-common
package. This is completely normal and it means the apt mark is working as expected. The package name for libtorrent
does not interfere with any apt packages and should not issue any upgrade warnings.
Deluge Version
- Repo: performs an
apt-get install deluged deluge-console deluge-web
and pulls whatever is available from your operating system's repository. To check versions, you can use the Debian Package Tracker or the Ubuntu Package Tracker. - Deluge 1.3.15: pulls the current head of the
1.3-stable
branch from Deluge and usesfpm
to package it as a .deb for easy installation and removal withdpkg
. - Deluge 2: pulls the current head of the
master
branch from Deluge and usesfpm
to package it as a .deb for easy installation and removal withdpkg
.
If you intend to use the thin client with your installation, your local version of Deluge must be reasonably similar to your remote version of Deluge. For instance, you're unable to use the thin client for Deluge v2 if your local version is 1.3.15.
Unattended variables
When installing Deluge, you may specify the variable DELUGE_VERSION
to bypass the version popup. Accepted values are:
repo
-- Will install Deluge from your OS repository1.3-stable
-- Will compile Deluge from the head of the 1.3-stable branch (1.3.15)2.0.x
-- Will compile Deluge from the 2.0.x branch.master
-- Will compile Deluge from the head of the master branch (2.1)
Libtorrent Patching
If you would like to patch the settings pack of libtorrent (or any other aspect for that matter), the libtorrent compile will check if /root/libtorrent-{RC_1_1,RC_1_2}.patch
exists. If it does, then the installer will automatically patch the libtorrent source with this patch before libtorrent is compiled. This may be of note since the ltconfig plugin does not exist for qBittorent, thus if you are interested in changing certain settings pack settings for qBittorrent settings which are not currently exposed through the WebUI, then this is the only way to change those settings without manually compiling libtorrent.
RC_1_1
is used when compiling libtorrent 1.1.* (e.g. Deluge 1.3.15 and qBittorrent 4.1.*)
RC_1_2
is used when compiling libtorrent 1.2.* (e.g. Deluge 2.0 and qBittorrent >= 4.2)
You must supply your own patch!
Specifying Libtorrent Version
If you would like to swap the version of libtorrent that the client is compiled with, you can export a variable to control the branch or tag being used. export libtorrent_github_tag=RC_1_2
if you want to checkout the development branch instead of the most recent tagged release.
Upgrading and Recompiling
If you decide you'd like to change the version of Deluge/libtorrent you've installed, or you would like to rebuild your current versions against the most recent source, you can recompile and upgrade deluge at any time with the command:
sudo box upgrade deluge
This command will start the Deluge upgrade script. The installer will ask which version of Deluge you'd like to install and will then work on installing it.
How to Access
Thin Client (recommended)
The GTK thin client uses a secure connection to your slot to display the remote contents in the local client. Generally speaking, the thin client is capable of handling more torrents and simply offers better performance than the alternative Web UI. However, in order to use the Thin client, you must have a version of Deluge installed locally on the computer you wish to access your remote client from. Thus the argument of Thin vs Web is generally a choice between "Performance" and "Convenience". Further, the Thin client supports a broader range of plugins -- many plugins have no interface for the Web UI at all.
In order to use the Thin client, you must have a recent version of Deluge installed locally on your computer. Below are instructions for popular operating systems:
- Windows
- macOS
- Debian/Ubuntu
- OpenSUSE
- Fedora
- Arch Linux
Grab the most recent version from here and save it to a common location (i.e. Downloads). Run the installer and follow the prompts.
You can grab a pre-2.0 version of deluge here, or install it via brew
like so
# For version 1.x
brew install --cask deluge
# For python-based deluge
brew install pygobject3 gtk+3 adwaita-icon-theme
brew install libtorrent-rasterbar
brew link gettext --force
pip3 install deluge
Deluge is available from the distribution repositories. Simply open a terminal and issue the command:
sudo apt update
sudo apt install deluge
Deluge is available from the distribution repositories. Simply open a terminal and issue the command:
sudo zypper install deluge
Deluge is available from the distribution repositories. Simply open a terminal and issue the command:
sudo dnf install deluge
Deluge is available from the distribution repositories. Simply open a terminal and issue the command:
sudo pacman -S deluge
Now that Deluge is installed on your machine, you need to configure it to connect to your slot.
First, we must prevent Deluge from starting in "Classic" mode. To do this, open Deluge. In the menu, go to Preferences > Interface
and un-tick the box which states "Classic Mode".
Deluge will prompt you to restart. Click "Ok" and re-open Deluge.
You'll notice when you re-open the application that a new connection dialog box will open. Hit the "Add" button and use the following details:
Hostname: <the hostname of your server>
Username: <your username>
Password: <your password>
Port: <the daemon port of your instance>
During the configuration of Deluge on your slot, the setup output both your Daemon and Web ports. If you've forgotten your daemon port, you can find it with the following command:
cat ~/.config/deluge/core.conf | grep daemon_port
SSH Tunneling for Thin Client
For those that do not have a domain name or wish to keep ports closed, an alternative secure method for connecting Thin Client to remote client would be to create an SSH Tunnel. Run the following command on the local client:
ssh -fNL 127.0.0.2:<port on local client>:localhost:<the daemon port of your instance> <your username>@<the ip of your server>
In the Thin Client, use 127.0.0.2
as the hostname and <port on local client>
as the port instead.
Once you click okay, you'll be taken back to the connection dialog. Your new connection will be listed and if everything is okay, you'll see a green check box next to it. When you click connect, you'll be taken to your client.
Web UI
The web UI is significantly easier to access, which is why many prefer it. You can access deluge-web from https://yourhost.ltd/deluge
.
If you are not currently logged in, you will first receive a basic authentication dialog from the webserver. Once authenticated, you'll receive a dialog box from Deluge-Web. This password is the same as the one you just entered.
This second password authentication layer cannot be fully removed due to restrictions in Deluge. However, you can increase the length of time that the cookie is stored locally by your browser to one year (from one hour):
sudo systemctl stop deluge-web@<username>
sed -i 's/"session_timeout": 3600,/"session_timeout": 31536000,/g' ~/.config/deluge/web.conf
sudo systemctl start deluge-web@<username>
deluge-console
Getting Started
You can access the command line version of the deluge console by using the command:
deluge-console
Connecting to Your Daemon
Once loaded, you'll need to specify your daemon port to connect to:
connect 127.0.0.1:<daemon port>
Available Commands
Once you have successfully connected to the daemon, you can get started with the following commands:
>>> help
add - Add a torrent
cache - Show information about the disk cache
config - Show and set configuration values
connect - Connect to a new deluge server.
debug - Enable and disable debugging
del - Remove a torrent
exit - Exit from the client.
halt - Shutdown the deluge server.
help - displays help on other commands
info - Show information about the torrents
pause - Pause a torrent
plugin - Manage plugins with this command
quit - Exit from the client.
reannounce - Update tracker for torrent(s)
recheck - Forces a recheck of the torrent data
resume - Resume a torrent
rm - Remove a torrent
update-tracker - Update tracker for torrent(s)
For help on a specific command, use "<command> --help"
Configuration
Most of the settings in the preferences should be left alone; however, you're welcome to alter settings such as Download location
. That said, you should leave the majority of Connection Settings
and ltConfig
settings alone, as the settings have already been optimized for use on your slot.
Default Download Location
Files downloaded by Deluge will be placed in ~/torrents/deluge
by default. You can change this behavior by change the preference: Download to
in the Deluge download preferences.
Web Download Location
Similarly, any files in the default download directory (~/torrents/deluge
) will be available for browsing via the web server at the location: https://<yourhostname.ltd>/deluge.downloads
Plugins
There are a wide array of plugins available for Deluge. You can find a list of them in the Deluge wiki, here.
Not all plugins have a web-ui component. You will likely need to install and manage the options for most of the plugins on the prior page with the thin client.
Connect to other clients
The following variables can be used as a general guide to help you find information you'll need to know in order to connect other clients to Deluge.
Transdroid
Use these settings when connecting your transdroid client to your Deluge instance:
Server type: Deluge 1.2+
IP or Hostname: <yourhostname.ltd>
User name: <your username>
Password: <your password>
Deluge web password: <your password again>
Advanced Settings:
Port Number: 443
Folder: /deluge
Use SSL: On
Accept all SSL certificates: yes (optional with a valid ssl certificate)
Other Local Clients
Settings for connecting another local client (i.e. Sonarr), to your Deluge instance:
- Host:
127.0.0.1
- Daemon port:
cat ~/.config/deluge/core.conf | grep daemon_port
- Web port:
cat ~/.config/deluge/web.conf | grep port
- URL base:
/deluge
(only if accessing viahttps
)
Connecting to a remote client (i.e. Sonarr)
By default, the web interface of Deluge is bound to 127.0.0.1
. In other words, the interface isn't directly accessible from a remote connection. If you want to connect Deluge-web to a remote instance of an application (for instance, Sonarr running from home), you'll need to enable remote connections.
SSH into your slot and issue the following commands:
sudo systemctl stop deluge-web@<user>
sed -i 's/127.0.0.1/0.0.0.0/g' ~/.config/deluge/web.conf
sudo systemctl start deluge-web@<user>
You can now connect to your Deluge-web instance through http://hostname.ltd:<delugeport>