Skip to content

rTorrent and ruTorrent Docker based image.

License

Notifications You must be signed in to change notification settings

XxAcielxX/docker-rutorrent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Repo stars GitHub release (latest by date) GitHub Workflow Status Docker Pulls Docker Image Size (tag)

rtorrent is a popular bittorrent client & rutorrent Web-UI based front-end for it.

This is a clone of the crazy-max/docker-rtorrent-rutorrent image with the following modifications:

  • Stop creation of /downloads{/completed,/temp} directories
  • Disabled Healthchecks
  • Changed Default Downloads directory to /downloads
  • Disabled move of completed torrents
  • Tuned off PEX & system.umask.set (in .rtorrent.rc) during bootstrapping
  • Set TopDirectory in rutorrent config.php to /downloads, to prevent access to root directory inside the container

Supported Architectures

These images support multiple architectures such as x86-64, armhf and arm64 using Docker manifest.

When you pull xxacielxx/rutorrent or ghcr.io/xxacielxx/rutorrent, you will get the arch for your system.

The supported architectures are:

Architecture Tag
x86-64 amd64-latest
armhf arm32v7-latest
arm64 arm64v8-latest

Usage

Here are some example snippets to help you get started creating a container.

docker-compose (recommended)

Compatible with docker-compose v2 schemas.

---
version: "2.1"
services:
  rutorrent:
    image: xxacielxx/rutorrent:latest
    container_name: rutorrent
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - </path/to/rutorrent/data>:/data
      - </path/to/rutorrent/passwd>:/passwd
      - </path/to/downloads>:/downloads
    ports:
      - 6881:6881/udp
      - 8000:8000
      - 8080:8080
      - 9000:9000
      - 50000:50000
    restart: unless-stopped

docker cli

mkdir data downloads passwd
chown 1000:1000 data downloads passwd

docker run -d \
  --name rutorrent \
  --ulimit nproc=65535 \
  --ulimit nofile=32000:40000 \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 6881:6881/udp \
  -p 8000:8000 \
  -p 8080:8080 \
  -p 9000:9000 \
  -p 50000:50000 \
  -v </path/to/rutorrent/data>:/data \
  -v </path/to/rutorrent/passwd>:/passwd \
  -v </path/to/downloads>:/downloads \
  --restart unless-stopped \
  xxacielxx/rutorrent:latest

Volumes

  • /data: rTorrent / ruTorrent config, session files, log, ...
  • /passwd: Contains htpasswd files for basic auth (web-ui, rpc & webdav)
  • /downloads: Downloads directory

⚠️ Note that the volumes should be owned by the user/group with the specified PUID and PGID. If you don't give the volumes correct permissions, the container may not start or function properly.

Ports

  • 6881 (or RT_DHT_PORT): DHT UDP port (dht.port.set)
  • 8000 (or XMLRPC_PORT): XMLRPC port through nginx over SCGI socket
  • 8080 (or RUTORRENT_PORT): ruTorrent HTTP port
  • 9000 (or WEBDAV_PORT): WebDAV port on /downloads
  • 50000 (or RT_INC_PORT): Incoming connections (network.port_range.set)

Updating

Via Docker Compose

  • Update all images: docker-compose pull
    • or update a single image: docker-compose pull rutorrent
  • Let compose update all containers as necessary: docker-compose up -d
    • or update a single container: docker-compose up -d rutorrent
  • You can also remove the old dangling images: docker image prune

Via Docker CLI

  • Update image: docker pull xxacielxx/rutorrent
  • Stop the running container: docker stop rutorrent
  • Delete the container: docker rm rutorrent
  • Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to host folders, your /data, /passwd, /downloads folders and settings will be preserved)
    • You can also remove the old dangling images: docker image prune

For full configurations and details, kindly visit crazy-max/docker-rtorrent-rutorrent.