/docker-deluge

Yet Another Deluge's docker image 🌊

Primary LanguageDockerfileGNU General Public License v3.0GPL-3.0

docker-deluge

Drone (cloud) Docker Image Size (latest by date) MicroBadger Layers Docker Pulls DockerHub

A docker image for Deluge deluge's logo

Supported tags

Tags Alpine Deluge LibTorrent Size Layers
latest 3.12 2.0.4dev38 (build) 1.2.11 (build) MicroBadger Layers (tag)
dev 3.12 2.0.4dev38 (build) 1.2.11 (build) MicroBadger Layers (tag)

What is Deluge?

From deluge.org:

Deluge is a fully-featured cross-platform ​BitTorrent client. It is ​Free Software, licensed under the ​GNU GPLv3+ and adheres to ​freedesktop standards enabling it to work across many desktop environments.

How to use these images

These images are built with qbittorrent-nox (no X server), a version of qBittorrent with the GUI disabled that is controlled via its built-in web UI.

The images do not require any external Docker networks, volumes, environment variables, or arguments and can be run with just:

docker run \
    --detach \
    --interactive \
    --name deluge \
    --user $(id -u):$(id -g)
    --volume /etc/localtime:/etc/localtime:ro
    --env UMASK_SET=022 \
    --publish 8112:8112 \
    --publish 58846:58846 \
    j33r/deluge:latest

And accessed through the web UI at http://localhost:8112 with the default username localclient and password deluge.

You can also access through the Gtk client on localhost port 58846 for this you will need to set allow_remote to true in the config/core.conf file and add a new user myuser:mypassword:10 in the config/auth file.

Always stop the container before modify your config files otherwise they will not be saved

Volume mounts

Due to the ephemeral nature of Docker containers these images provide a number of optional volume mounts to persist data outside of the container:

  • /config: the Deluge config directory containing core.conf
  • /torrents/seed: the default download location
  • /torrents/leech: the default incomplete download location
  • /torrents/.watch: the default autoadd torrent location
docker run \
    --detach \
    --interactive \
    --name deluge \
    --user $(id -u):$(id -g)
    --volume ${HOME}/deluge/torrents:/torrents \
    --volume ${HOME}/deluge/config:/config
    --volume /etc/localtime:/etc/localtime:ro
    --env UMASK_SET=022 \
    --publish 8112:8112 \
    --publish 58846:58846 \
    j33r/deluge:latest

You should create directory before run the container otherwise directories are created by the docker deamon and owned by the root user

Environment variables

To change the timezone of the container set the TZ environment variable. The full list of available options can be found on Wikipedia.

Docker Compose

docker-compose can help with defining the docker run config in a repeatable way rather than ensuring you always pass the same CLI arguments.

Here's an example docker-compose.yml config:

version: "3"
services:
  deluge:
    image: deluge:latest
    container_name: deluge
    restart: unless-stopped
    user: 1000:1000
    environment:
      - UMASK_SET=022
      - TZ=Europe/Paris
    ports:
      - 8112:8112
      - 58846:58846
    volumes:
      - ./config:/config
      - ./torrents:/torrents
      - /etc/localtime:/etc/localtime:ro

License

This project is under the GNU Generic Public License v3 to allow free use while ensuring it stays open.

Credit

This image is largely inspired by Christian Emmer's great work :