Skip to content

jee-r/docker-deluge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-deluge

Docker Image Size (latest by date) GitHub Workflow Status (branch) Docker Pulls DockerHub ghcr.io

A docker image for the torrent client Deluge deluge's logo based on @emmercm libtorrent image.

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

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 \ # optional to sync time with the host
    --env UMASK_SET=022 \
    --env TZ=Europe/Paris \
    #--env LOGLEVEL=info \
    --publish 8112:8112 \
    --publish 58846:58846 \
    ghcr.io/jee-r/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 \
    --env TZ=Europe/Paris \
    #--env LOGLEVEL=info \
    --publish 8112:8112 \
    --publish 58846:58846 \
    ghcr.io/jee-r/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

  • LOGLEVEL: Set the log level: none, info, warning, error, debug (default: info)
  • TZ: To change the timezone of the container. 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: ghcr.io/jee-r/deluge:latest
    container_name: deluge
    restart: unless-stopped
    user: 1000:1000
    environment:
      - UMASK_SET=022
      - TZ=Europe/Paris
      #- LOGLEVEL=info
    ports:
      - 8112:8112
      - 58846:58846
    volumes:
      - ./config:/config
      - ./torrents:/torrents
      - /etc/localtime:/etc/localtime:ro

Contributing :

You are welcome to contribute to this project, but read this before please.

Issues

Found any issue or bug in the codebase? Have a great idea you want to propose ? You can help by submitting an issue to the Github repository.

Before opening a new issue, please check if the issue has not been already made by searching the issues

Questions

We would like to have discussions and general queries related to this repository. you can reach me on Libera irc server /query jee

Pull requests

Before submitting a pull request, ensure that you go through the following:

  • Ensure that there is no open or closed Pull Request corresponding to your submission to avoid duplication of effort.
  • Create a new branch on your forked repo based on the main branch (be sure that your fork is up to date with the upstream) and make the changes in it. Example:
    git clone https://your_fork
    git checkout -B patch-N main
  • Submit the pull request, provide informations (why/where/how) in the comments section

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 :