/docker-utorrent

Docker image to run the utorrent server

Primary LanguageShellMIT LicenseMIT

docker-utorrent

Docker Pulls Docker Stars Docker Image Version (latest semver) Docker Image Size (latest semver) Docker Cloud Automated build Docker Cloud Build Status

Docker image to run the utorrent server.

NOTE: Image has been refactored. You should update your configs. Or you can use ekho/utorrent:legacy image instead of ekho/utorrent:latest

Run

Run via Docker CLI client

To run the utorrent container you can execute:

docker run                                            \
    --name utorrent                                   \
    -v /path/to/data/dir:/data                        \
    -p 8080:8080                                      \
    -p 6881:6881                                      \
    -p 6881:6881/udp                                  \
    ekho/utorrent:<tag>

Open a browser and point your to http://docker-host:8080/gui

Settings persistence

Dir on host machine

docker run                                            \
    --name utorrent                                   \
    -v /path/to/data/dir:/data                        \
    -v /path/to/setting/dir:/utorrent/settings        \
    -p 8080:8080                                      \
    -p 6881:6881                                      \
    -p 6881:6881/udp                                  \
    ekho/utorrent:<tag>

Named volume

docker volume create utorrent-settings

docker run                                            \
    --name utorrent                                   \
    -v /path/to/data/dir:/data                        \
    -v utorrent-settings:/utorrent/settings           \
    -p 8080:8080                                      \
    -p 6881:6881                                      \
    -p 6881:6881/udp                                  \
    ekho/utorrent:<tag>

Configure

All available settings you can find in example config. Almost all of these settings can be changed except:

  • bind_ip - set as 0.0.0.0
  • dir_active, dir_completed - /data
  • dir_torrent_files - /utorrent/torrents
  • dir_temp_files - /utorrent/temp
  • dir_autoload - /utorrent/autoload
  • dir_request - /utorrent/request
  • dir_root - /data
  • preferred_interface - empty
  • ut_webui_dir - controlled by webui var
  • randomize_bind_port - false

You can specify list of download dirs using dir_download var.

docker run                                            \
    --name utorrent                                   \
    -v /path/to/data/dir:/data                        \
    -v /path/to/data/dir2:/abs-path-dir               \
    -e dir_autoload_delete=true                       \
    -e dir_download=subdir1,/abs-path-dir             \
    -p 8080:8080                                      \
    -p 6881:6881                                      \
    -p 6881:6881/udp                                  \
    ekho/utorrent:<tag>

Custom UID/GID

By default container tries to use uid/gid of owner of /data volume. But you can specify custom UID/GID by environment variables.

docker run                                            \
    --name utorrent                                   \
    -v /path/to/data/dir:/data                        \
    -e UID=1000 -e GID=1000                           \
    -p 8080:8080                                      \
    -p 6881:6881                                      \
    -p 6881:6881/udp                                  \
    ekho/utorrent:<tag>

Alternative UI

Already bundled. You can activate it with env var webui=<ng|ut>.

docker run                                            \
    --name utorrent                                   \
    -v /path/to/data/dir:/data                        \
    -e webui=ng                                       \
    -p 8080:8080                                      \
    -p 6881:6881                                      \
    -p 6881:6881/udp                                  \
    ekho/utorrent:<tag>

Run via Docker Compose

You can also run the utorrent container by using Docker Compose.

Create your Docker Compose file (docker-compose.yml) using the following YAML snippet:

version: '3.7'
services:
  utorrent:
    image: ekho/utorrent:<tag>
    volumes:
      - utorrent-settings:/utorrent/settings
      - /path/to/data/dir:/data
      - /path/to/data/dir2:/abs-path-dir
    environment:
      UID: 1000
      GID: 1000
      webui: ng
      dir_autoload_delete: true
      dir_download: subdir1,/abs-path-dir
    ports:
      - 8080:8080
      - 6881:6881
      - 6881:6881/udp
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

volumes:
  utorrent-settings:

Changes

  • 2020-04-15 totally refactored; incompatible with previous setup
  • 2020-04-08 minor build refactoring
  • 2020-04-07 added alternative ui - utorrent-ui
  • 2019-08-05 added alternative ui - psychowood/ng-torrent-ui
  • 2018-01-03 added host uid/gid usage
  • 2017-12-24 changed directories layout