Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If you want to make some advanced settings you have to locate the file lobbercore.conf, it should be in $HOME/.config/deluge/ for the user that is running Deluge.

Code Block
titleStandard configuration file
{
  "file": 1, 
  "format": 1
}{
  "lobber_key": "YOUR SECRET KEY",
  "tracker_host": "https://dev.lobber.se"
  "feed_url": "https://dev.lobber.se/torrent/all.json", 
  "download_dir": "",
  "unique_path": false, 
  "proxy_port": 7001, 
  "minutes_delay": 15,
  "remove_data": false, 
  "monitor_torrents": false, 
  "torrent_evaluator": "total_seeders", 
  "min_seeders": 1, 
  "max_seeders": 2,
  "removed_torrents": [],
}

Setting

Value

Description

lobber_key

Key string

Your Lobber API key

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="2c0b9cf050e84116-a99c0777-4cb94f36-99d3ad83-30cb1e97fa6c3792dc43bffa"><ac:plain-text-body><![CDATA[

tracker_host

https://url[:port]

The URL to the Lobber tracker you want to use.

]]></ac:plain-text-body></ac:structured-macro>

feed_url

https://url/json-feed.json

The URL to the Lobber json feed you want to monitor for new torrents.

download_dir

Directory path

Path to the directory you want to save your downloaded data in. If this is empty ("") the standard Deluge setting will be used. Ending slash (/) is important.

unique_path

true/false

If set to true the download directory will be appended by a new directory with the torrents hash in which the data will be downloaded.

proxy_port

An unused local port

This is the port that will be used for the localhost proxy.

minutes_delay

Number of minutes

This is the delay between the plugins checks for new torrents.

remove_data

true/false

If set to true the torrents data will be removed if a torrent is removed by the plugin.

torrent_evaluator

Name of the torrent evaluator to use.

There is only one torrent evaluator right now, total_seeders. This evaluator will check how many seeders a torrent has every 15 minutes. If the torrent has more than min_seeders the torrent will be paused, equal or lower than min_seeders resumed and over or equal to max_seeders removed.

removed_torrents

List of removed torrents

This setting is used internally to remeber remember which torrents that should not be added again.

Anchor
lobberwebappstoragenode
lobberwebappstoragenode

Running a Lobber web app storage node

...

(Ubuntu)

If you set up Deluge to support the Lobber web application data http upload functionality you are probably want to run it headless.

Install deluged.

Code Block

sudo apt-get install deluged

Create a Deluge user:

Code Block

sudo adduser --disabled-password --system --home /var/lib/deluge/ --gecos "Deluge daemon" --group deluge

Create /etc/init.d/deluged with the following content.

Code Block
titledeluged

#!/bin/sh
### BEGIN INIT INFO
# Provides:          deluged
# 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: Start or stop the Deluge BitTorrent daemon.
# Description:       Start or stop the Deluge BitTorrent daemon.
### END INIT INFO

# Authors: Tanguy Ortolo <tanguy+debian@ortolo.eu>,
# Cristian Greco <cristian@regolo.cc>

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Deluge BitTorrent Daemon"
NAME="deluged"
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -c /var/lib/deluge/.config/deluge -l /var/log/deluged.log -L info"
USER=deluge
MASK=0027
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

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

ENABLE_DELUGED=1

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

# 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
# and status_of_proc is working.
. /lib/lsb/init-functions
#
# Function that starts the daemon/service
#
do_start()
{
  if [ $ENABLE_DELUGED != 1 ]; then
    log_progress_msg "Not starting ${DESC} ${NAME}, disabled in /etc/default/${NAME}"
  else
    # 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 $PIDFILE --exec $DAEMON \
      --chuid $USER --umask $MASK --test > /dev/null \
      || return 1

    start-stop-daemon --start --background --quiet --pidfile $PIDFILE --make-pidfile --exec $DAEMON \
      --chuid $USER --umask $MASK -- $DAEMON_ARGS \
      || return 2
  fi
}
#
# 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 --pidfile $PIDFILE
  RETVAL="$?"
  [ "$RETVAL" = "2" ] && return 2

  rm -f $PIDFILE
  return "$RETVAL"
}
case "$1" in
  start)
    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
    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" "$NAME"
    do_stop
    case "$?" in
      0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
      2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
  status)
    status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
    ;;
  restart|force-reload)
    log_daemon_msg "Restarting $DESC" "$NAME"
    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|status|restart|force-reload}" >&2
    exit 3
    ;;
esac

Create a log file.

Code Block

touch /var/log/deluged.log
chown deluge:deluge /var/log/deluged.log

Make deluged star on boot.

Code Block

sudo update-rc.d deluged defaults

Start deluged.

Code Block

sudo /etc/init.d/deluged start

Download LobberCore-0.1-py2.7.egg or LobberCore-0.1-py2.6.egg and put the egg-file in /var/lib/deluge/.config/deluge/plugins/.

Edit /var/lib/deluge/.config/deluge/core.conf to start the plugin.

Code Block

.
.
"enabled_plugins": [
    "LobberCore"
  ],
.
.

Restart deluged to load the plugin.

Code Block

sudo /etc/init.d/deluged restart

Last but not least edit the newly created file /var/lib/deluge/.config/deluge/lobbercore.conf so it looks like this.

Code Block
Web app storage node configuration file
Web app storage node configuration file

Sample configuration file

Code Block
{
  "file": 1, 
  "format": 1
}{
  "torrent_evaluator": "total_seeders", 
  "monitor_torrents": true, 
  "min_seeders": 1, 
  "download_dir": "/var/www/lobber/seeding/", 
  "proxy_port": 7001, 
  "removed_torrents": [], 
  "unique_path": true, 
  "feed_url": "https://dev.lobber.se/torrent/all.json", 
  "max_seeders": 2, 
  "remove_data": true, 
  "lobber_key": "", 
  "minutes_delay": 1, 
  "tracker_host": "https://dev.lobber.se"
}

download_dir should match the SEEDING_DIR in Lobbers Django settings.py.
Deluge should now seed any torrent until there is another client seeding it and then delete the torrent with data.