Could somebody help me setup Deluge in Ubuntu (with web interface)

Soldato
Joined
1 Dec 2004
Posts
22,704
Location
S.Wales
Im really at a loss with this one and getting slightly stressed over it (something which has turned me back to windows when attempting anything linux) in the past.

Iv just installed Deluge the latest version on my Ubuntu 9.04 server, I installed it through putty.

sudo apt-get install deluge-torrent

however im finding it very difficult to find any guides on the web on how to get this set-up properly and set-up the web interface.

Could anyone please help me or point me in the right direction to some guides?

If not them im going to ditch Deluge and try and different torrent client, but it must come with a WebUI and be ok to set-up for a linux noob :)

Thank you please
 
Haven't used Deluge but I have used Torrentflux for a couple of years and that's great. It requires hardly any setting up either. Simply do sudo apt-get install torrentflux, load the web UI and change the settings to whatever you want.
 
I need something I can use remotely and would rather a web GUI, im still struggling with trying setup torrentflux, keeps throwing up php errors when trying to install and setup with passwords :(

I can hear windows calling, its doing my head in now.

Shame really as I do like the feel of command line but just havnt got loads of hours to waste sorting it out and trying to go back if something goes wrong.
 
Iv just installed Deluge the latest version on my Ubuntu 9.04 server, I installed it through putty.

sudo apt-get install deluge-torrent

however im finding it very difficult to find any guides on the web on how to get this set-up properly and set-up the web interface.

Could anyone please help me or point me in the right direction to some guides?
OK, as luck would have it I've just done exactly this (set up Deluge on an Ubuntu headless server) and, yes, it's an absolute pig the first time you do it. The documentation is all over the place, and it showcases Linux at its miserably user-unfriendly worst to a Windows refugee. It's probably worth doing though, as IMO Deluge is the best of the native Linux torrenting apps.

Here are the instructions copy and pasted into one place, with a couple of rather critical additions and corrections where necessary. This will allow you to administer Deluge either via the web interface or (rather more usefully IMO) by installing Deluge itself on the client PC and using it as a "thin client" to control the daemon on the server.



1) sudo apt-get install deluge

Rather crucially (although not initially obvious from the documentation, such as it is), you also need

2) sudo apt-get install deluge-console

and

3) sudo apt-get install deluge-webui

Then you need to allow remote connections:

4) Run the deluge daemon: (as normal user, not sudo) deluged

5) Run the console program: sudo deluge -u console (you'll see "Error backing up old config", ignore this), then enter
>>> config -s allow_remote True (you should see "Configuration value successfully updated")

6) Quit the console program: exit

7) Kill the Deluge daemon: killall deluged

8) Edit the authentication file: nano ~/.config/deluge/auth. Add a single line under the "localclient" entry in the format USERNAME:PASSWORD which you will use to connect remotely via the GTK client (can be anything, doesn't have to be your Linux username/password). Save (ctrl+o), exit (ctrl+x).

9) Restart the daemon: deluged

10) Run the Deluge web UI: deluge -u web

You should now be able to connect to your server at http://yourserver:8112 (the default password is "deluge"). You might want to change the web template to the nicer "classic" or "ajax" via the config menu.

You'll want the everything to run automatically at startup (it doesn't by default), so you'll need an initscript - kill the web UI if it's running (ctrl+c) and create the following:

11) sudo nano /etc/default/deluge-daemon. Copy and paste the following into it:

# Configuration for /etc/init.d/deluge-daemon

# The init.d script will only run if this variable non-empty.
DELUGED_USER="<username>" # !!!CHANGE THIS!!!!

# Should we run at startup?
RUN_AT_STARTUP="YES"

Change the DELUGED_USER to your own Ubuntu logon name (keep the quotes). Save (ctrl+o), exit (ctrl+x).

and then:

12) sudo nano /etc/init.d/deluge-daemon. Copy and paste the following into it:

#!/bin/sh
### BEGIN INIT INFO
# Provides: deluge-daemon
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Daemonized version of deluge and webui.
# Description: Starts the deluge daemon with the user specified in
# /etc/default/deluge-daemon.
### END INIT INFO

# Author: Adolfo R. Brandes

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Deluge Daemon"
NAME1="deluged"
NAME2="deluge"
DAEMON1=/usr/bin/deluged
DAEMON1_ARGS="-d"
DAEMON2=/usr/bin/deluge
DAEMON2_ARGS="-u web"
PIDFILE1=/var/run/$NAME1.pid
PIDFILE2=/var/run/$NAME2.pid
PKGNAME=deluge-daemon
SCRIPTNAME=/etc/init.d/$PKGNAME

# Exit if the package is not installed
[ -x "$DAEMON1" -a -x "$DAEMON2" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME

# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

if [ -z "$RUN_AT_STARTUP" -o "$RUN_AT_STARTUP" != "YES" ]
then
log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it."
exit 0
fi

if [ -z "$DELUGED_USER" ]
then
log_warning_msg "Not starting $PKGNAME, DELUGED_USER not set in /etc/default/$PKGNAME."
exit 0
fi

#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \
--chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null
RETVAL1="$?"
start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \
--chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null
RETVAL2="$?"
[ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 1

start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \
--chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON1_ARGS
RETVAL1="$?"
sleep 2
start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \
--chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON2_ARGS
RETVAL2="$?"
[ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred

start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE2
RETVAL2="$?"
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE1
RETVAL1="$?"
[ "$RETVAL1" = "2" -o "$RETVAL2" = "2" ] && return 2

rm -f $PIDFILE1 $PIDFILE2

[ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] && return 0 || return 1
}

case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME1"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME1"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME1"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac

:

Save the file (ctrl+o), exit (ctrl+x).

13) Make the script executable by root: sudo chmod 755 /etc/init.d/deluge-daemon

14) Run the script on startup: sudo update-rc.d deluge-daemon defaults

15) Take a deep breath, reboot your computer and hope everything works: sudo reboot


To run Deluge in "thin client" mode, install it on your client PC (the Windows version also installs the required GTK runtime), then:

1) Run Deluge.
2) Go to "Preferences -> Interface" and untick "Enable" under "Classic Mode".
3) Restart deluge. You should now see a connection manager box pop up.
4) Remove the localhost daemon.
5) Click "Add" and enter your server's ip.
6) Leave the port as default.
7) Enter the username & password you added to the authentication file.
8) Click "Add" to add your server's daemon. You should now see a green tick as the status for the host you just added.
9) (Optional) Expand "Options" and select "Automatically connect to selected host on startup" and "Do not show this dialog on start-up".
10) Click "Connect" and the connection manager pop up box should disappear.

You should now be able to connect to the Deluge daemon via the GTK client UI (incidentally, for some as yet undetermined reason I haven't been able to get the latest version 1.20 to connect to the daemon, although 1.19 works fine).

Best of British... :D

/edit: removed unnecessary duplications.
 
Last edited:
Thanks for this, I shall give Deluge another go.

Im going to do this all from the Ubuntu UI as I was trying to do everything over putty on a remote machine. Think having direct access to Ubuntu's desktop will be better for me.
 
To be honest I don't think you can really achieve much without using the command line in any case, so you might as well just SSH into the server as before.

BTW, I've edited my above post again for a small-but-showstopping detail which I stupidly overlooked - you need to run the Deluge console as root to change the config, so it's actually "sudo deluge -u console" at step 5 (another little gem helpfully omitted in the Deluge wiki).

It really should work now, honest.... :)
 
cool, I shall give this procedure a go :)

Thanks very much for your effort, its truly appriciated :)

I shall let you know how it goes, will be attempting today.
 
I got to step 5 and it says

"The core proxy is invalid"

after entering

Code:
>>> config -s allow_remote True

I didnt enter >>> before you ask ;)
 
OK iv got to step 10, try to login but keep getting "password invalid" when trying to login via webui.

Iv edited that file, iv tried
Code:
darren:passwordhere
and also
Code:
USERNAME:passwordhere
?? :)
 
Sorry, that's my fault, I probably didn't make it as clear as I might have - the username and password in the authentication file are for connecting to the daemon when you're actually running Deluge itself on the client PC.

For the web interface, the default password is simply "deluge".

I'd have a go at using Deluge proper as a thin client though - you get the program's full functionality, it's just that the action happens on the server rather than locally. You can also just click on a torrent link and load it automatically if it's the default torrent app on the client PC, unlike the web GUI where you have to save the .torrent file and browse to it, or copy and paste the link. Not a big deal I suppose, but it's these little things that make life easier. :)
 
hello peeps,

Just thought I would resurrect this thread.

I'm in the midst of setting up a headless ubuntu file-server/download box. When I go to run deluge with the switch to run the web UI (deluge -u web) i get the following error message:

Code:
 deluge -u web
/usr/lib/pymodules/python2.6/deluge/ui/webui/lib/webpy022/utils.py:138: DeprecationWarning: the sets module is deprecated
  from sets import Set
/usr/lib/pymodules/python2.6/deluge/ui/webui/utils.py:45: DeprecationWarning: the md5 module is deprecated; use hashlib instead
  from md5 import md5
[ERROR   ] 22:40:06 client:158 Socket or XMLRPC error: [Errno 111] Connection refused
I have google'd the problem, but I dont seem to be able to find a solution, (deluge's website is down which doesnt help) things seem to be pointing to a problem with Python (in the script utils.py) . I have the [python] version that comes with ubuntu 9.10 (2.6?) I have not aded the build essentials package. Has anybody seen or better still fixed this problem? Cookies are available for the fix that gets this up and running!

Thanks.
 
I have just setup this after been recommended by someone on here. Im running it on a headless server. Quite complex but a nice interface.

Torrentflux-B4RT - http://tf-b4rt.berlios.de/

Usenet/HTTP/FTP/Torrents + Web Based

Nice setup guide here http://server-servers.com/install-torrentflux-b4rt-on-ubuntu/

Hey thanks for that, but i'm not really all that keen on setting up a mini LAMP server, does anybody know any other torrent clients that are (more) stand alone?
 
erm... utorrent in wine?

Have you actually managed to get this working? I tried less than 2 days ago and it wouldn't even complete the install. I settled with Deluge that the OP mentioned and it seems fine. Didn't have to do much setting up.

I will check out rtorrent mentioned above as a command line only tool is really what I am after so I can just ssh in and leave torrents going with screen.

Cheers
 
Back
Top Bottom