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
ASSWORD 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...
/edit: removed unnecessary duplications.