Code Monkey home page Code Monkey logo

docker-rtorrent-rutorrent's Introduction

Latest Version Build Status Docker Stars Docker Pulls
Become a sponsor Donate Paypal

About

rTorrent with ruTorrent Docker image.

Tip

Want to be notified of new releases? Check out ๐Ÿ”” Diun (Docker Image Update Notifier) project!


Features

  • Run as non-root user
  • Multi-platform image
  • Latest rTorrent and libTorrent from rTorrent stickz project.
    • Includes significant performance and stability improvements.
    • Includes compatibility with Link Time Optimizations.
  • Latest ruTorrent release
  • Domain name resolving enhancements with c-ares and UDNS for asynchronous DNS requests
  • Enhanced rTorrent config and bootstraping with a local config
  • XMLRPC through nginx over SCGI socket (basic auth optional)
  • WebDAV on completed downloads (basic auth optional)
  • Ability to add a custom ruTorrent plugin / theme
  • Allow persisting specific configuration for ruTorrent plugins
  • ruTorrent GeoIP2 plugin
  • mktorrent installed for ruTorrent create plugin
  • Traefik Docker image as reverse proxy and creation/renewal of Let's Encrypt certificates (see this template)
  • geoip-updater Docker image to download MaxMind's GeoIP2 databases on a time-based schedule for geolocation

Build locally

git clone https://github.com/crazy-max/docker-rtorrent-rutorrent.git
cd docker-rtorrent-rutorrent

# Build image and output to docker (default)
docker buildx bake

# Build image
docker buildx bake image

# Build multi-platform image
docker buildx bake image-all

Image

Registry Image
Docker Hub crazymax/rtorrent-rutorrent
GitHub Container Registry ghcr.io/crazy-max/rtorrent-rutorrent

Following platforms for this image are available:

$ docker run --rm mplatform/mquery crazymax/rtorrent-rutorrent:latest
Image: crazymax/rtorrent-rutorrent:latest
 * Manifest List: Yes
 * Supported platforms:
   - linux/amd64
   - linux/arm/v6
   - linux/arm/v7
   - linux/arm64

Environment variables

General

  • TZ: The timezone assigned to the container (default UTC)
  • PUID: rTorrent user id (default 1000)
  • PGID: rTorrent group id (default 1000)
  • WAN_IP: Public IP address reported to the tracker (auto if empty)
  • WAN_IP_CMD: Command to resolve the Public IP address
  • MEMORY_LIMIT: PHP memory limit (default 256M)
  • UPLOAD_MAX_SIZE: Upload max size (default 16M)
  • CLEAR_ENV: Clear environment in FPM workers (default yes)
  • OPCACHE_MEM_SIZE: PHP OpCache memory consumption (default 128)
  • MAX_FILE_UPLOADS: The maximum number of files allowed to be uploaded simultaneously (default 50)
  • AUTH_DELAY: The time in seconds to wait for Basic Auth (default 0s)
  • REAL_IP_FROM: Trusted addresses that are known to send correct replacement addresses (default 0.0.0.0/32)
  • REAL_IP_HEADER: Request header field whose value will be used to replace the client address (default X-Forwarded-For)
  • LOG_IP_VAR: Use another variable to retrieve the remote IP address for access log_format on Nginx. (default remote_addr)
  • LOG_ACCESS: Output access log (default true)
  • XMLRPC_AUTHBASIC_STRING: Message displayed during validation of XMLRPC Basic Auth (default rTorrent XMLRPC restricted access)
  • XMLRPC_PORT: XMLRPC port through nginx over SCGI socket (default 8000)
  • XMLRPC_SIZE_LIMIT: Maximum body size of XMLRPC calls (default 1M)
  • RUTORRENT_AUTHBASIC_STRING: Message displayed during validation of ruTorrent Basic Auth (default ruTorrent restricted access)
  • RUTORRENT_PORT: ruTorrent HTTP port (default 8080)
  • WEBDAV_AUTHBASIC_STRING: Message displayed during validation of WebDAV Basic Auth (default WebDAV restricted access)
  • WEBDAV_PORT: WebDAV port on completed downloads (default 9000)

rTorrent

  • RT_LOG_LEVEL: rTorrent log level (default info)
  • RT_LOG_EXECUTE: Log executed commands to /data/rtorrent/log/execute.log (default false)
  • RT_LOG_XMLRPC: Log XMLRPC queries to /data/rtorrent/log/xmlrpc.log (default false)
  • RT_SESSION_SAVE_SECONDS: Seconds between writing torrent information to disk (default 3600)
  • RT_TRACKER_DELAY_SCRAPE: Delay tracker announces at startup (default true)
  • RT_DHT_PORT: DHT UDP port (dht.port.set, default 6881)
  • RT_INC_PORT: Incoming connections (network.port_range.set, default 50000)
  • RT_SEND_BUFFER_SIZE: Sets default tcp wmem value (network.send_buffer.size.set, default 4M)
  • RT_RECEIVE_BUFFER_SIZE: Sets default tcp rmem value (network.receive_buffer.size.set, default 4M)

ruTorrent

  • RU_REMOVE_CORE_PLUGINS: Comma separated list of core plugins to remove ; set to false to disable removal
  • RU_HTTP_USER_AGENT: ruTorrent HTTP user agent (default Mozilla/5.0 (Windows NT 6.0; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0)
  • RU_HTTP_TIME_OUT: ruTorrent HTTP timeout in seconds (default 30)
  • RU_HTTP_USE_GZIP: Use HTTP Gzip compression (default true)
  • RU_RPC_TIME_OUT: ruTorrent RPC timeout in seconds (default 5)
  • RU_LOG_RPC_CALLS: Log ruTorrent RPC calls (default false)
  • RU_LOG_RPC_FAULTS: Log ruTorrent RPC faults (default true)
  • RU_PHP_USE_GZIP: Use PHP Gzip compression (default false)
  • RU_PHP_GZIP_LEVEL: PHP Gzip compression level (default 2)
  • RU_SCHEDULE_RAND: Rand for schedulers start, +0..X seconds (default 10)
  • RU_LOG_FILE: ruTorrent log file path for errors messages (default /data/rutorrent/rutorrent.log)
  • RU_DO_DIAGNOSTIC: ruTorrent diagnostics like permission checking (default true)
  • RU_CACHED_PLUGIN_LOADING: Set to true to enable rapid cached loading of ruTorrent plugins (default false)
  • RU_SAVE_UPLOADED_TORRENTS: Save torrents files added wia ruTorrent in /data/rutorrent/share/torrents (default true)
  • RU_OVERWRITE_UPLOADED_TORRENTS: Existing .torrent files will be overwritten (default false)
  • RU_FORBID_USER_SETTINGS: If true, allows for single user style configuration, even with webauth (default false)
  • RU_LOCALE: Set default locale for ruTorrent (default UTF8)

Volumes

  • /data: rTorrent / ruTorrent config, session files, log, ...
  • /downloads: Downloaded files
  • /passwd: Contains htpasswd files for basic auth

โš ๏ธ 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.

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 completed downloads
  • 50000 (or RT_INC_PORT): Incoming connections (network.port_range.set)

โš ๏ธ Port p+1 defined for XMLRPC_PORT, RUTORRENT_PORT and WEBDAV_PORT will also be reserved for healthcheck. (e.g. if you define RUTORRENT_PORT=8080, port 8081 will be reserved)

Usage

Docker Compose

Docker compose is the recommended way to run this image. Copy the content of folder examples/compose in /var/rtorrent-rutorrent/ on your host for example. Edit the compose file with your preferences and run the following command:

mkdir data downloads passwd
chown ${PUID}:${PGID} data downloads passwd
docker compose up -d
docker compose logs -f

Command line

You can also use the following minimal command:

mkdir data downloads passwd
chown ${PUID}:${PGID} data downloads passwd
docker run -d --name rtorrent_rutorrent \
  --ulimit nproc=65535 \
  --ulimit nofile=32000:40000 \
  -p 6881:6881/udp \
  -p 8000:8000 \
  -p 8080:8080 \
  -p 9000:9000 \
  -p 50000:50000 \
  -v $(pwd)/data:/data \
  -v $(pwd)/downloads:/downloads \
  -v $(pwd)/passwd:/passwd \
  crazymax/rtorrent-rutorrent:latest

Notes

XMLRPC through nginx

rTorrent 0.9.7+ has a built-in daemon mode disabling the user interface, so you can only control it via XMLRPC. Nginx will route XMLRPC requests to rtorrent through port 8000. These requests can be secured with basic authentication through the /passwd/rpc.htpasswd file in which you will need to add a username with his password. See below to populate this file with a user / password.

WebDAV

WebDAV allows you to retrieve your completed torrent files in /downloads/complete on port 9000. Like XMLRPC, these requests can be secured with basic authentication through the /passwd/webdav.htpasswd file in which you will need to add a username with his password. See below to populate this file with a user / password.

Populate .htpasswd files

For ruTorrent basic auth, XMLRPC through nginx and WebDAV on completed downloads, you can populate .htpasswd files with the following command:

docker run --rm -it httpd:2.4-alpine htpasswd -Bbn <username> <password> >> $(pwd)/passwd/webdav.htpasswd

Htpasswd files used:

  • rpc.htpasswd: XMLRPC through nginx
  • rutorrent.htpasswd: ruTorrent basic auth
  • webdav.htpasswd: WebDAV on completed downloads

Bootstrap config .rtlocal.rc

When rTorrent is started the bootstrap config /etc/rtorrent/.rtlocal.rc is imported. This configuration cannot be changed unless you rebuild the image or overwrite these elements in your .rtorrent.rc. Here are the particular properties of this file:

  • system.daemon.set = true: Launcher rTorrent as a daemon
  • A config layout for the rTorrent's instance you can use in your .rtorrent.rc:
    • cfg.basedir: Home directory of rtorrent (/data/rtorrent/)
    • cfg.download: Download directory (/downloads/)
    • cfg.download_complete: Completed downloads (/downloads/complete/)
    • cfg.download_temp: Downloads in progress (/downloads/temp/)
    • cfg.logs: Logs directory (/data/rtorrent/log/)
    • cfg.session: Session directory (/data/rtorrent/.session/)
    • cfg.watch: Watch directory for torrents (/data/rtorrent/watch/)
    • cfg.rundir: Runtime data of rtorrent (/var/run/rtorrent/)
  • d.data_path: Config var to get the full path of data of a torrent (workaround for the possibly empty d.base_path attribute)
  • directory.default.set: Default directory to save the downloaded torrents (cfg.download_temp)
  • session.path.set: Default session directory (cfg.session)
  • PID file to /var/run/rtorrent/rtorrent.pid
  • network.scgi.open_local: SCGI local socket and make it group-writable and secure
  • network.port_range.set: Listening port for incoming peer traffic (50000-50000)
  • dht.port.set: UDP port to use for DHT (6881)
  • log.open_file: Default logging to /data/rtorrent/log/rtorrent.log
    • Log level can be modified with the environment variable RT_LOG_LEVEL
    • rpc_events are logged be default
    • To log executed commands, add the environment variable RT_LOG_EXECUTE
    • To log XMLRPC queries, add the environment variable RT_LOG_XMLRPC

Override or add a ruTorrent plugin/theme

You can add a plugin for ruTorrent in /data/rutorrent/plugins/. If you add a plugin that already exists in ruTorrent, it will be removed from ruTorrent core plugins and yours will be used. And you can also add a theme in /data/rutorrent/themes/. The same principle as for plugins will be used if you want to override one.

โš ๏ธ Container has to be restarted to propagate changes

Edit a ruTorrent plugin configuration

As you probably know, plugin configuration is not outsourced in ruTorrent. Loading the configuration of a plugin is done via a conf.php file placed at the root of the plugin folder. To solve this issue with Docker, a special folder has been created in /data/rutorrent/plugins-conf to allow you to configure plugins. For example to configure the diskspace plugin, you will need to create the /data/rutorrent/plugins-conf/diskspace.php file with your configuration:

<?php

$diskUpdateInterval = 10;	// in seconds
$notifySpaceLimit = 512;	// in Mb
$partitionDirectory = null;	// if null, then we will check rtorrent download directory (or $topDirectory if rtorrent is unavailable)
				// otherwise, set this to the absolute path for checked partition. 

โš ๏ธ Container has to be restarted to propagate changes

Increase Docker timeout to allow rTorrent to shutdown gracefully

After issuing a shutdown command, Docker waits 10 seconds for the container to exit before it is killed. If you are a seeding many torrents, rTorrent may be unable to gracefully close within that time period. As a result, rTorrent is closed forcefully and the lockfile isn't removed. This stale lockfile will prevent rTorrent from restarting until the lockfile is removed manually.

The timeout period can be extended by either adding the parameter -t XX to the docker command or stop_grace_period: XXs in compose.yml, where XX is the number of seconds to wait for a graceful shutdown.

WAN IP address

WAN_IP is the public IP address sent to the tracker. In the majority of cases you don't need to set it as it will be automatically determined by the tracker.

But it can be sometimes required to enforce the public IP address when you are behind a VPN where an erroneous IP is sometimes reported.

You can also use the WAN_IP_CMD environment variable to specify a command to resolve your public IP address. Here are some commands you can use:

  • dig +short myip.opendns.com @resolver1.opendns.com
  • curl -s ifconfig.me
  • curl -s ident.me

Configure rTorrent session saving

RT_SESSION_SAVE_SECONDS is the seconds between writing torrent information to disk. The default is 3600 seconds which equals 1 hour. rTorrent has a bad default of 20 minutes. Twenty minutes is bad for the lifespan of SSDs and greatly reduces torrent throughput.

It is no longer possible to lose torrents added through ruTorrent on this docker container. Only torrent statistics are lost during a crash. (Ratio, Total Uploaded & Downloaded etc.)

Higher values will reduce disk usage, at the cost of minor stat loss during a crash. Consider increasing to 10800 seconds (3 hours) if running thousands of torrents.

rTorrent tracker scrape patch

RT_TRACKER_DELAY_SCRAPE specifies whether to delay tracker announces at rTorrent startup. The default value is true. There are two main benefits to keeping this feature enabled:

  1. Software Stability: rTorrent will not crash or time-out with tens of thousands of trackers.
  2. Immediate Access: ruTorrent can be accessed immediately after rTorrent is started.

rTorrent send receive buffers

Overriding the default TCP rmem and wmem values for rTorrent improves torrent throughput.

  • RT_SEND_BUFFER_SIZE: Sets default tcp wmem value for the socket.
  • RT_RECEIVE_BUFFER_SIZE: Sets default tcp rmem value for the socket.

Recommended values:

  • 2GB of less system memory: Reduce to 1M send and 1M receive regardless of speed.
  • 4GB to 16GB of system memory: Keep at default values of 4M send and 4M receive.
  • 16GB to 32GB of system memory: Increase to 8M send for 500Mbps speeds.
  • 32GB to 64GB of system memory: Increase to 16M send for 1G speeds.
  • 64GB to 128GB of system memory: Increase to 32M send for 2.5G speeds.
  • 128GB to 256GB of system memory: Increase to 64M send for 10G speeds.

Memory is better spent elsewhere except under limited circumstances for high memory and speed conditions. The default values should not be increased, unless both the memory and speed requirements are met. These values of system memory are also recommended based on the port speed for rTorrent to reduce disk usage.

Upgrade

To upgrade, pull the newer image and launch the container:

docker compose pull
docker compose up -d

Contributing

Want to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. You can also support this project by becoming a sponsor on GitHub or by making a PayPal donation to ensure this journey continues indefinitely!

Thanks again for your support, it is much appreciated! ๐Ÿ™

License

MIT. See LICENSE for more details.

docker-rtorrent-rutorrent's People

Contributors

ac1dburnz avatar blueberryapple avatar cactushydrocodone avatar carlzoo avatar crazy-max avatar cryptik-rick avatar darthpyranus avatar daschiller avatar dependabot[bot] avatar djerfy avatar jeff47 avatar jnsn avatar mhriemers avatar ntv1000 avatar rasmusbe avatar seijikun avatar stickz avatar sunred avatar xxacielxx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-rtorrent-rutorrent's Issues

add more than 20 torrents at a time

Cannot add more than 20 torrents at a time as the "max_file_uploads = 20" is set in php. Could we please get a facility to edit this variable? thanks!

Modifying Your Image Help

Hello again Crazy-max,

I hope it is allowed to make a modified container/image based on your docker-rtorrent-rutorrent with credits given ofcourse.

I did below patch to stop creation of /downloads{completed,temp} & changed default downloads location to /downloads in .rtorrent.rc.

RUN \
 echo "**** apply patches for /downloads ****" && \
 sed -ie '96s/themes [*\]/themes/' '/etc/cont-init.d/03-config.sh' && \
 sed -i '97,98d;310,311d' '/etc/cont-init.d/03-config.sh' && \
 sed -ie '5,23s/[*/]complete//' '/tpls/etc/nginx/conf.d/webdav.conf'

.rtorrent.rc

# Default download directory for torrents
directory.default.set = (cat,(cfg.download))

# Move finished (no need Autotools/Automove plugin on ruTorrent)
#method.insert = d.get_finished_dir, simple, "cat=$cfg.download_complete=,$d.custom1="
#method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session="
#method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.get_finished_dir="

Everything works, but I can't figure out why {completed,temp} are still being created. I hope you can guide me on this.

Another thing I have noticed is that in /var/www/rutorrent/conf/config.php, you have set $topDirectory = '/';. Don't you think this is a security issue as user can navigate up to root directory of the container in rutorrent web-ui.

You can see my changes at xxacielxx/docker-rutorrent.

Regards

All torents from magnet links are paused

This looks like a really well done docker container, thank you. :)

Behaviour

.torrent files are fine. All torrents added from magnet links are paused. Hit "play" and 7 seconds later it's paused again

Steps to reproduce this issue

  1. Hit globe icon, enter magnet link
  2. Watch hash get resolved to torrent name, then get paused
  3. Hit play on paused torrent, it goes back to paused

Expected behaviour

Torrent should stay downloading

Actual behaviour

Torrent always paused

Configuration

  • Docker version (type docker --version) : Docker version 20.10.3, build 48d30b5b32

  • Docker compose version if applicable (type docker-compose --version) : docker-compose version 1.28.2, build unknown

  • Platform (Debian 9, Ubuntu 18.04, ...) : Arch Linux

  • System info (type uname -a) : Linux corwin 5.10.11-arch1-1 #1 SMP PREEMPT Wed, 27 Jan 2021 13:53:16 +0000 x86_64 GNU/Linux

  • Include all necessary configuration files : docker-compose.yml, .env, ...
    rtorrent-rutorrent.env: stock other than TZ=America/Denver
    geoip-updater seems to be happy
    geoip-updater:
    image: ghcr.io/crazy-max/geoip-updater:latest
    container_name: geoip
    restart: unless-stopped
    volumes:
    - "./crazy-max-data/geoip:/data"
    env_file:
    - "./geoip-updater.env"

    rtorrent-rutorrent:
    image: crazymax/rtorrent-rutorrent:latest
    container_name: rtorrent
    restart: always
    #ports:
    #- target: 6881
    # published: 6881
    # protocol: udp
    #- target: 50000
    # published: 50000
    # protocol: tcp
    env_file:
    - "./rtorrent-rutorrent.env"
    volumes:
    - "./crazy-max-data:/data"
    - "/file/torrent/crazy-max:/downloads"
    - "./crazy-max-passwd:/passwd"
    ulimits:
    nproc: 65535
    nofile:
    soft: 32000
    hard: 40000
    network_mode: service:vpn
    depends_on:
    - vpn

Docker info

โ•ฐโ”€โ—‹ docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.5.1-tp-docker)

Server:
 Containers: 5
  Running: 5
  Paused: 0
  Stopped: 0
 Images: 12
 Server Version: 20.10.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 269548fa27e0089a8b8278fc4fc781d7f65a939b.m
 runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 5.10.11-arch1-1
 Operating System: Linux
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 31.31GiB
 Name: corwin
 ID: NBOD:6YY6:TIFA:DGBI:56LL:KNKK:65U4:XDQK:JMUB:F4XI:SGQF:O36Y
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No blkio weight support
WARNING: No blkio weight_device support

Logs

โ•ฐโ”€โ—‹ cat crazy-max-data/rtorrent/log/rtorrent.log                                                                                                                                                                                                               
1613528292 I listen port 50000 opened with backlog set to 128                                                                                                                                                                                                  
1613528292 D input history file read (path:/data/rtorrent/.session/rtorrent.input_history)                                                                                                                                                                     
1613528292 N rtorrent scgi: Starting thread.                                                                                                                                                                                                                   
1613528292 N rtorrent main: Starting thread.                                                                                   
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:0 url:udp://tracker.coppersurfer.tk:6969/announce)
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:1 url:udp://tracker.coppersurfer.tk:1337/announce)
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:2 url:udp://9.rarbg.to:2780/announce) 
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:3 url:udp://9.rarbg.me:2770/announce)                                                                                                                                
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:4 url:udp://tracker.leechers-paradise.org:6969/announce)                                                                                                             
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:5 url:udp://p4p.arenabg.com:1337/announce)                                                                                                                           
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:6 url:udp://tracker.opentrackr.org:1337/announce)                                                                                                                    
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:7 url:udp://tracker.openbittorrent.com:80/announce)                                                                                                                  
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:8 url:udp://eddie4.nl:6969/announce)                                                                                                                                 
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:9 url:udp://explodie.org:6969/announce)                                                                                                                              
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:10 url:udp://tracker.zer0day.to:1337/announce)                                                                                                                       
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:11 url:udp://ipv4.tracker.harry.lu:80/announce)
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:12 url:udp://tracker.pirateparty.gr:6969/announce)
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:13 url:udp://tracker.pirateparty.gr:1337/announce)
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:14 url:udp://tracker.zer0day.to:1337/announce)
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:15 url:udp://tracker.leechers-paradise.org:6969/announce)                                                                                                            
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:16 url:udp://coppersurfer.tk:6969/announce)                                                                                                                          
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:17 url:dht://)                                                                                                                                                       
1613528335 I Upload unchoked slots adjust; currently:0 adjust:0                            
1613528335 I Upload unchoked slots adjust; currently:0 adjust:0                                                                                                                                                                                                
1613528335 I Download unchoked slots adjust; currently:0 adjust:0
1613528335 I Download unchoked slots adjust; currently:0 adjust:0
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Closing download directly.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Inserting download.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Resuming download: flags:0.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Pausing download: flags:0.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Resuming download: flags:0.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Opening download.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Opening torrent: flags:0.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Opening.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->chunk_list: Resizing: from:0 to:1.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Checking hash: allocated:0 try_quick:1.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Start: position:0 size:1 try_quick:1.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Completed (normal): position:1 try_quick:1.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Confirm checked.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Hash done.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Resuming download: flags:0.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Starting torrent: flags:0.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Opening.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Called enable with 18 trackers.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Setting new baseline on start: uploaded:0 completed:0.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Sending started event.
1613528335 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:0 url:udp://tracker.coppersurfer.tk:6969/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:1 url:udp://tracker.coppersurfer.tk:1337/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:2 url:udp://9.rarbg.to:2780/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:3 url:udp://9.rarbg.me:2770/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:4 url:udp://tracker.leechers-paradise.org:6969/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:5 url:udp://p4p.arenabg.com:1337/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:6 url:udp://tracker.opentrackr.org:1337/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:7 url:udp://tracker.openbittorrent.com:80/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:8 url:udp://eddie4.nl:6969/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:9 url:udp://explodie.org:6969/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:10 url:udp://tracker.zer0day.to:1337/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:11 url:udp://ipv4.tracker.harry.lu:80/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:12 url:udp://tracker.pirateparty.gr:6969/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:13 url:udp://tracker.pirateparty.gr:1337/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:14 url:udp://tracker.zer0day.to:1337/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:15 url:udp://tracker.leechers-paradise.org:6969/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:16 url:udp://coppersurfer.tk:6969/announce)
1613528338 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:17 url:dht://)
1613528339 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 1 peers (url:udp://explodie.org:6969/announce)
1613528339 I handshake_manager->41.244.225.105: Adding outcoming connection: encryption:13 message:3.
1613528340 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 7 peers (url:udp://9.rarbg.me:2770/announce)
1613528340 I handshake_manager->212.102.47.87: Adding outcoming connection: encryption:13 message:3.
1613528340 I handshake_manager->172.58.139.216: Adding outcoming connection: encryption:13 message:3.
1613528340 I handshake_manager->103.216.56.121: Adding outcoming connection: encryption:13 message:3.
1613528340 I handshake_manager->202.51.68.216: Adding outcoming connection: encryption:13 message:3.
1613528340 I handshake_manager->80.71.37.82: Adding outcoming connection: encryption:13 message:3.
1613528340 I handshake_manager->79.246.219.183: Adding outcoming connection: encryption:13 message:3.
1613528340 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 7 peers (url:udp://9.rarbg.to:2780/announce)
1613528340 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 3 peers (url:udp://ipv4.tracker.harry.lu:80/announce)
1613528340 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 2 peers (url:udp://tracker.openbittorrent.com:80/announce)
1613528340 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 6 peers (url:udp://tracker.opentrackr.org:1337/announce)
1613528340 I handshake_manager->103.216.56.121: Received error: message:7 network error.
1613528340 I handshake_manager->79.246.219.183: Received error: message:7 network error.
1613528340 I handshake_manager->79.246.219.183: Retrying plaintext.
1613528340 I handshake_manager->79.246.219.183: Adding outcoming connection: encryption:81 message:2.
1613528340 I handshake_manager->80.71.37.82: Handshake success. 
1613528340 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Resetting torrent size: size:26505.
1613528340 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Closing.
1613528340 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Opening.
1613528341 I handshake_manager->79.246.219.183: Handshake success.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Received finished.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Hash queue.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Pausing download: flags:1.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Stopping torrent: flags:1.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: failed to connect to tracker (url:dht:// msg:DHT search unsuccessful.)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Called disable with 18 trackers.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Closing torrent: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Clear.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Closing.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->chunk_list: Clearing.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Opening download.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Opening torrent: flags:ffffffff.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Opening.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->chunk_list: Resizing: from:0 to:1.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Checking hash: allocated:0 try_quick:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Start: position:0 size:1 try_quick:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Completed (normal): position:1 try_quick:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Confirm checked.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Hash done.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Processing meta download.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Pausing download: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Closing download with throw.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Pausing download: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Closing torrent: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Clear.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Closing.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->chunk_list: Clearing.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Erasing download.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Closing download with throw.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Pausing download: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Clear.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Clear.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->chunk_list: Clearing.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:0 url:udp://tracker.coppersurfer.tk:6969/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:1 url:udp://tracker.coppersurfer.tk:1337/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:2 url:udp://9.rarbg.to:2780/announce) 
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:3 url:udp://9.rarbg.me:2770/announce) 
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:4 url:udp://tracker.leechers-paradise.org:6969/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:5 url:udp://p4p.arenabg.com:1337/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:6 url:udp://tracker.opentrackr.org:1337/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:7 url:udp://tracker.openbittorrent.com:80/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:8 url:udp://eddie4.nl:6969/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:9 url:udp://explodie.org:6969/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:10 url:udp://tracker.zer0day.to:1337/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:11 url:udp://ipv4.tracker.harry.lu:80/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:12 url:udp://tracker.pirateparty.gr:6969/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:13 url:udp://tracker.pirateparty.gr:1337/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:14 url:udp://tracker.zer0day.to:1337/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:15 url:udp://tracker.leechers-paradise.org:6969/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:16 url:udp://coppersurfer.tk:6969/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: added tracker (group:17 url:dht://)
1613528341 I Upload unchoked slots adjust; currently:0 adjust:0 
1613528341 I Upload unchoked slots adjust; currently:0 adjust:0 
1613528341 I Download unchoked slots adjust; currently:0 adjust:0
1613528341 I Download unchoked slots adjust; currently:0 adjust:0
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Closing download directly.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Inserting download.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Resuming download: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Pausing download: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Resuming download: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Opening download.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Opening torrent: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Opening.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->chunk_list: Resizing: from:0 to:1296.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Checking hash: allocated:0 try_quick:1.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Start: position:0 size:1296 try_quick:1.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Completed (normal): position:1296 try_quick:1.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->hash_torrent: Confirm checked.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Hash done.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Resuming download: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Starting torrent: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Opening.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Called enable with 18 trackers.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Setting new baseline on start: uploaded:0 completed:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Sending started event.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:0 url:udp://tracker.coppersurfer.tk:6969/announce)
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Pausing download: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Stopping torrent: flags:0.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Sending stopped event.
1613528341 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Called disable with 18 trackers.
1613528358 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Opening download.
1613528358 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Resuming download: flags:0.
1613528358 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Starting torrent: flags:0.
1613528358 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->file_list: Opening.
1613528358 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Called enable with 18 trackers.
1613528358 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Setting new baseline on start: uploaded:0 completed:0.
1613528358 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Sending started event.
1613528358 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:0 url:udp://tracker.coppersurfer.tk:6969/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:1 url:udp://tracker.coppersurfer.tk:1337/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:2 url:udp://9.rarbg.to:2780/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:3 url:udp://9.rarbg.me:2770/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:4 url:udp://tracker.leechers-paradise.org:6969/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:5 url:udp://p4p.arenabg.com:1337/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:6 url:udp://tracker.opentrackr.org:1337/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:7 url:udp://tracker.openbittorrent.com:80/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:8 url:udp://eddie4.nl:6969/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:9 url:udp://explodie.org:6969/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:10 url:udp://tracker.zer0day.to:1337/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:11 url:udp://ipv4.tracker.harry.lu:80/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:12 url:udp://tracker.pirateparty.gr:6969/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:13 url:udp://tracker.pirateparty.gr:1337/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:14 url:udp://tracker.zer0day.to:1337/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:15 url:udp://tracker.leechers-paradise.org:6969/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:16 url:udp://coppersurfer.tk:6969/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'started (group:17 url:dht://)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 2 peers (url:udp://explodie.org:6969/announce)
1613528361 I handshake_manager->212.102.47.87: Adding outcoming connection: encryption:13 message:3.
1613528361 I handshake_manager->41.244.225.105: Adding outcoming connection: encryption:13 message:3.
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 7 peers (url:udp://9.rarbg.me:2770/announce)
1613528361 I handshake_manager->202.51.68.216: Adding outcoming connection: encryption:13 message:3.
1613528361 I handshake_manager->79.246.219.183: Adding outcoming connection: encryption:13 message:3.
1613528361 I handshake_manager->103.216.56.121: Adding outcoming connection: encryption:13 message:3.
1613528361 I handshake_manager->172.58.139.216: Adding outcoming connection: encryption:13 message:3.
1613528361 I handshake_manager->80.71.37.82: Adding outcoming connection: encryption:13 message:3.
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 7 peers (url:udp://9.rarbg.to:2780/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 4 peers (url:udp://ipv4.tracker.harry.lu:80/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 6 peers (url:udp://tracker.opentrackr.org:1337/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 2 peers (url:udp://tracker.openbittorrent.com:80/announce)
1613528361 I handshake_manager->103.216.56.121: Received error: message:7 network error.
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download_list: Pausing download: flags:0.
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->download: Stopping torrent: flags:0.
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Sending stopped event.
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: failed to connect to tracker (url:dht:// msg:DHT search unsuccessful.)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'stopped (group:0 url:udp://tracker.coppersurfer.tk:6969/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'stopped (group:2 url:udp://9.rarbg.to:2780/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'stopped (group:3 url:udp://9.rarbg.me:2770/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'stopped (group:6 url:udp://tracker.opentrackr.org:1337/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'stopped (group:7 url:udp://tracker.openbittorrent.com:80/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'stopped (group:9 url:udp://explodie.org:6969/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: sending 'stopped (group:11 url:udp://ipv4.tracker.harry.lu:80/announce)
1613528361 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_controller: Called disable with 18 trackers.
1613528362 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 2 peers (url:udp://explodie.org:6969/announce)
1613528362 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 0 peers (url:udp://9.rarbg.to:2780/announce)
1613528362 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 0 peers (url:udp://9.rarbg.me:2770/announce)
1613528362 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 4 peers (url:udp://ipv4.tracker.harry.lu:80/announce)
1613528362 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 0 peers (url:udp://tracker.openbittorrent.com:80/announce)
1613528362 I 8E400EE4356B589BAEEEB4D6A0986C6F6174307D->tracker_list: received 0 peers (url:udp://tracker.opentrackr.org:1337/announce)

Auto dl irssi and XML-RPC socket

Hi I'm trying to use autodl irssi on the host machine (without the rutorrent plugin for now) and the add to rtorrent action uses the XML-RPC socket (8000) I've modified my docker-compose to publish the XML-RPC port and configured autodl to send to 127.0.0.1:8000, however I get the following error from autodl when it tries to add to rtorrent:

error: XmlRpc::_onDataReceived: Invalid XML-RPC response (not XML)

Any idea why this is? Thanks.

Edit: Is it related the nginx basic auth? The contents of the files in the passwd directory are currently empty - I have not configured any auth. But perhaps whatever is being sent over port 8000 is not what autodl is expecting. If someone could help me understand the issue I'd be grateful.

Podman support

Hi thanks a loot for this docker i use only podman for differents reasons and want to use your docker without compose ( that is not supported for now in podman)

Behaviour

I want to use the docker with podman because of the ability of rootless container and the use of Cgroups2 ( and i'm on fedora)

Steps to reproduce this issue

  1. Root starting
mkdir data passwd
sudo podman run -it --name rtorrent_rutorrent \
  --ulimit nproc=65535 \
  --ulimit nofile=32000:40000 \
  -p 6881:6881/udp \
  -p 8000:8000 \
  -p 8080:8080 \
  -p 9000:9000 \
  -p 50000:50000 \
  -v $(pwd)/data:/data:Z \
  -v $(pwd)/passwd:/passwd:Z \
  crazymax/rtorrent-rutorrent:latest

I obtain a loop on this

rtorrent: option requires an argument: i
rtorrent: Invalid/unknown option flag "-i". See rtorrent -h for more information.
  1. Try a rootless starting

mkdir data passwd
podman run -it  --name rtorrent_rutorrent \
  --ulimit nproc=65535 \
  --ulimit nofile=32000:40000 \
  -p 6881:6881/udp \
  -p 8000:8000 \
  -p 8080:8080 \
  -p 9000:9000 \
  -p 50000:50000 \
  -v $(pwd)/data:/data:Z \
  -v $(pwd)/passwd:/passwd:Z \
  crazymax/rtorrent-rutorrent:latest
Error: setrlimit `RLIMIT_NPROC`: Operation not permitted: OCI runtime permission denied error
  1. I remove the ulimit command because of rootless run
mkdir data passwd
podman run -it  --name rtorrent_rutorrent \
  -p 6881:6881/udp \
  -p 8000:8000 \
  -p 8080:8080 \
  -p 9000:9000 \
  -p 50000:50000 \
  -v $(pwd)/data:/data:Z \
  -v $(pwd)/passwd:/passwd:Z \
  crazymax/rtorrent-rutorrent:latest
And it seem to run great 
With some selinux problems in the logs 
mv: setting attribute 'security.selinux' for 'security.selinux': Permission denied

Expected behaviour

Have some documentation to support podman with this great docker

Configuration

  • Docker version (type docker --version) : podman version 1.8.2
  • Platform (Debian 9, Ubuntu 18.04, ...) : Fedora 31 and 32
  • System info (type uname -a) : Linux 5.6.3-300.fc32.x86_64 #1 SMP Wed Apr 8 15:32:32 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Docker info

 yodatak@XX ๎‚ฐ ~/rtorrent ๎‚ฐ podman info
host:
  BuildahVersion: 1.14.3
  CgroupVersion: v2
  Conmon:
    package: conmon-2.0.15-1.fc32.x86_64
    path: /usr/bin/conmon
    version: 'conmon version 2.0.15, commit: 33da5ef83bf2abc7965fc37980a49d02fdb71826'
  Distribution:
    distribution: fedora
    version: "32"
  IDMappings:
    gidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
    uidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
  MemFree: 548360192
  MemTotal: 8193265664
  OCIRuntime:
    name: crun
    package: crun-0.13-1.fc32.x86_64
    path: /usr/bin/crun
    version: |-
      crun version 0.13
      commit: e79e4de4ac16da0ce48777afb72c6241de870525
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
  SwapFree: 7916220416
  SwapTotal: 8350855168
  arch: amd64
  cpus: 8
  eventlogger: journald
  hostname: X
  kernel: 5.6.3-300.fc32.x86_64
  os: linux
  rootless: true
  slirp4netns:
    Executable: /usr/bin/slirp4netns
    Package: slirp4netns-1.0.0-1.fc32.x86_64
    Version: |-
      slirp4netns version 1.0.0
      commit: a3be729152a33e692cd28b52f664defbf2e7810a
      libslirp: 4.2.0
  uptime: 151h 42m 17.43s (Approximately 6.29 days)
registries:
  search:
  - registry.fedoraproject.org
  - registry.access.redhat.com
  - registry.centos.org
  - docker.io
store:
  ConfigFile: /home/yodatak/.config/containers/storage.conf
  ContainerStore:
    number: 1
  GraphDriverName: overlay
  GraphOptions:
    overlay.mount_program:
      Executable: /usr/bin/fuse-overlayfs
      Package: fuse-overlayfs-0.7.8-1.fc32.x86_64
      Version: |-
        fusermount3 version: 3.9.1
        fuse-overlayfs: version 0.7.8
        FUSE library version 3.9.1
        using FUSE kernel interface version 7.31
  GraphRoot: /home/yodatak/.local/share/containers/storage
  GraphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
    Using metacopy: "false"
  ImageStore:
    number: 1
  RunRoot: /run/user/1000/containers
  VolumePath: /home/yodatak/.local/share/containers/storage/volumes

Logs

> Container logs (set LOG_LEVEL to debug if applicable)

Separate download volume from config (data) volume

IMHO, it would better better to separate the downloads (with a new volume) from data volume (containing the configs)

Why... because, in my case, i want to mount this downloads volume in other containers (medusa,radarr or whatever)..
For example... I would like /files in my, let's say, radaar instance which would contains

    /files/downloads (where rtorrent would store the downloads)
    /files/media (where radarr would store the renamed torrent & so on)

I need to mount in my radarr the common root /files because i want to use hardlink (i don't want symlink and even less file copy..), which is not possible between docker volumes.
And in rtorrent container, i would mount /files/downloads as let say /downloads...

To let you know, thru my compose file, i already did that:

volumes:
      - /home/grut/rtorrent/data:/data
      - /home/grut/rtorrent/passwd:/passwd
      - /home/grut/files/downloads:/downloads

But there are some side effects like webdav not pointing to this /downloads directory, need to overload the default in rtorrent.rc etc...

Add "Remove and Delete Data" option?

I apologize if this is out of your scope, but I couldn't find how to add the option to remove data along with torrent. Please see this screenshot: https://imgur.com/a/cH8HjuQ for reference.

If you know how to add this option, please consider it in the future versions.

Thank you for your work. This is by far the best rtorrent-rutorrent Docker image.

Enhancement : add a variable to customize the download folder

Behaviour

The download foler is /downloads and can't be modified.

I can of course mount my folder where ever if want, but then there will be some inconsistency with what the container expect.

You can override the cfg.download & co in the .rtorrent.rc but then the webdav server won't point in the good place anymore.
So it would be good to have a variable (eg DOWNLOAD_DIR?), templatize the .rtorrent.local and nginx webdav.conf then do some sed in 03-config.sh :)

By the way why... ebcause i have many containers using this same directory (rtorrent, medusa, whatever) and when they talk together it's easier to have uniform paths :)

Thanks!

PS: i would help if ever i'd know to to make a push request...^^

Steps to reproduce this issue

  1. It's not really a bug

Expected behaviour

to be able to customize the download directory thru a variable

Move on complete escaping slash

Hello,

I am facing the issue that moving after download finished is escaping the slash inside my path.
For example, I am downloading using this dir "temp/MOVIES/TV". Download in the tmp dir is fine. After he finished the download he is moving it to "complete/MOVIES%2FTV".

Any ideas what could be the issue here?

I am using the default config for moving finished torrents.

# Move finished (no need Autotools/Automove plugin on ruTorrent)
method.insert = d.get_finished_dir, simple, "cat=$cfg.download_complete=,$d.custom1="
method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session="
method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.get_finished_dir="

arm64 tag, testing you image, but unable to start container

Hello,

I'm trying to set the container using this cli command:

docker run -d \
  --name cm_rutorrent \
  --ulimit nproc=65535 \
  --ulimit nofile=32000:40000 \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Karachi \
  -p 6881:6881/udp \
  -p 8000:8000 \
  -p 8080:8080 \
  -p 9000:9000 \
  -p 50000:50000 \
  -v /media/docker/crazymax/rutorrent:/data \
  -v /media/docker/crazymax/torrents:/downloads \
  -v /media/docker/crazymax/passwd:/passwd \
  crazymax/rtorrent-rutorrent:latest

I'm getting this error in the logs:

s6-init] making user provided files available at /var/run/s6/etc...exited 0.
s6-svscan: warning: unable to iopause: Invalid argument
s6-svscan: warning: executing into .s6-svscan/crash
[s6-init] ensuring user provided files have correct perms...s6-svscan panicked! Dropping to a root shell.
/bin/sh: can't access tty; job control turned off
/run/s6/services # 

All the 3 directories are made using 1000:1000, not sure what's wrong here.

Regards~

ruTorrent webinterface shows older version

ruTorrent webinterface shows up as version 3.9 where it should be 3.10 instead. I tried :latest, :edge and: 3.10-0.9.8-0.13.8 images, but the webinterface still reports ruTorrent as 3.9
Can't understand whether I'm doing something wrong or is it a bug.

Question: How to override tracklabels pictures repository

Hi @crazy-max ,

I'm going through your image, create work you did!
While testing it, I just remember that all my current LSIO images have theses volumes mounted.
It's a template folder I made with all "original" labels and trackers icons which I have enriched over years.

      - /volume1/docker/rutorrent-template/tracklabels/labels:/app/rutorrent/plugins/tracklabels/labels:ro
      - /volume1/docker/rutorrent-template/tracklabels/trackers:/app/rutorrent/plugins/tracklabels/trackers:ro

I've identified in your image the location /var/www/rutorrent/plugins/tracklabels/labels|trackers which is the same one but I'm wondering if there is a better way to override these folders using your plugin override system (without touching the plugin itself)
If not, I will just mount the following

      - /volume1/docker/rutorrent-template/tracklabels/labels:/var/www/rutorrent/plugins/tracklabels/labels:ro
      - /volume1/docker/rutorrent-template/tracklabels/trackers:/var/www/rutorrent/plugins/tracklabels/trackers:ro

Thanks for your feedback

50000: port is closed

On rutorrent web UI, at the bottom I am seeing this:

Steps to reproduce this issue

image
When I hover over it I see '50000: port is closed.

  • Docker version (type docker --version) :
    Client: Docker Engine - Community
    Version: 20.10.2
    API version: 1.41
    Go version: go1.13.15
    Git commit: 2291f61
    Built: Mon Dec 28 16:17:43 2020
    OS/Arch: linux/amd64
    Context: default
    Experimental: true

  • Docker compose version if applicable (type docker-compose --version) :
    docker-compose version 1.27.4, build 40524192
    docker-py version: 4.3.1
    CPython version: 3.7.7
    OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019

Platform (Debian 9, Ubuntu 18.04, ...) : Ubuntu 20.04 Focal Server

System info (type uname -a) :
Linux Ubuntu-2004-Server 5.4.0-60-generic #67-Ubuntu SMP Tue Jan 5 18:31:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Include all necessary configuration files : docker-compose.yml, .env, ...

rtorrent-rutorrent:
image: crazymax/rtorrent-rutorrent:latest
container_name: rtorrent-rutorrent
environment:
- PUID=1000
- PGID=1000
- WAN_IP=
env_file:
- rtorrent-rutorrent.env
volumes:
- /.config/rutorrent/config:/data
- /local/Downloads:/downloads
- /.config/passwd:/passwd
ports:
- 9000:9000
- 6881:6881
- 6262:8080
- 50000:50000
- 5000:5000
ulimits:
nproc: 65535
nofile:
soft: 32000
hard: 40000
restart: unless-stopped

rtorrent-rutorrent.env
MEMORY_LIMIT=256M
UPLOAD_MAX_SIZE=16M
OPCACHE_MEM_SIZE=128
MAX_FILE_UPLOADS=50
REAL_IP_FROM=0.0.0.0/32
REAL_IP_HEADER=X-Forwarded-For
LOG_IP_VAR=remote_addr

XMLRPC_AUTHBASIC_STRING=rTorrent XMLRPC restricted access
RUTORRENT_AUTHBASIC_STRING=ruTorrent restricted access
WEBDAV_AUTHBASIC_STRING=WebDAV restricted access

RT_LOG_LEVEL=info
RT_LOG_EXECUTE=false
RT_LOG_XMLRPC=false

RU_REMOVE_CORE_PLUGINS=erasedata,httprpc
RU_HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.0; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
RU_HTTP_TIME_OUT=30
RU_HTTP_USE_GZIP=true
RU_RPC_TIME_OUT=5
RU_LOG_RPC_CALLS=false
RU_LOG_RPC_FAULTS=true
RU_PHP_USE_GZIP=false
RU_PHP_GZIP_LEVEL=2
RU_SCHEDULE_RAND=10
RU_LOG_FILE=/data/rutorrent/rutorrent.log
RU_DO_DIAGNOSTIC=true
RU_SAVE_UPLOADED_TORRENTS=true
RU_OVERWRITE_UPLOADED_TORRENTS=false
RU_FORBID_USER_SETTINGS=false
RU_LOCALE=UTF8

Dont think this is a bug its something that im doing wrong

Support unRAID container format

Good morning,

I use a piece of software called unRAID for my server. It is an OS that provides docker support. It is very popular.

I was wondering if maybe you could contribute your dockers to the official forum? https://forums.unraid.net/forum/47-docker-containers/

They also have a community plug-in for dockers called "Community Applications" that makes it a lot easier to set things up.

Thanks!

urbanracer34

Wrong permission on new folders

Behaviour

Steps to reproduce this issue

Try to create a new folder through volume mount for several purpose (watch folder for autotools, post downloads scripts, ...)

Expected behaviour

The folder should be accessible from inside the container

Actual behaviour

The folder is not accessible because the permission remains the one from the user running the container and not the user inside the container. I didn't had this issue with the lsio's one or even this one in the past

Configuration

  • Docker version: 20.10.6
  • Docker compose version if applicable: 1.29.1
  • Platform (Debian 9, Ubuntu 18.04, ...) : Debian 10

Logs

image

Start rutorrent plugins with rtorrent without start webui first

I found this on Novik rutorrent wiki but as I tried to add it to .rtorrent.rc, it is not working.

execute2 = {sh,-c,/usr/bin/php /var/www/ruTorrent/php/initplugins.php username &}

There is some plugins like seedingtime, throttle, it will not work if I don't open webui of rutorrent for it to init first.
For example 1: seedingtime add 2 columns "Added" and "Finished", if webui don't start first, it will not write any data to these 2 columns.
For example 2: I'm using Set channel to limit download or upload speed of a single torrent, after the container restart, these limit is not apply until webui start.

Can you take a look into this?

Thank you.

Custom port not working

Behaviour

The objective is to have 2 rutorrent instances on the same bridge network.

Steps to reproduce this issue

  1. I have a container with the ports by default
  2. I add a container with "custom" ports
  3. Container with modified ports not working

Expected behaviour

2 rutorrent instances on the same bridge network.

Actual behaviour

Container with modified ports not working
The logs indicates that the container tries to communicate with the ports by default, and does not take custom ports

Configuration

  • Docker version (type docker --version) : 18.09.8
  • Docker compose version if applicable (type docker-compose --version) : 1.24.0
  • Platform (Debian 9, Ubuntu 18.04, ...) : DSM 6.2.3
  • System info (type uname -a) : Linux 4.4.59+ #25426 SMP PREEMPT Tue Nov 24 17:18:27 CST 2020 x86_64 GNU/Linux synology_apollolake_918+
  • Include all necessary configuration files : docker-compose.yml, .env, ...

Docker info

Container with modified ports >
2021-04-12 23_13_32-Portainer

Logs

Container with modified ports >
_rutorrent_logs.txt

Docker-compose

Could someone share their docker-compose file for this docker? All of the linuxserver dockers include a respective docker-compose which I find very useful.

Question: Why removing EraseData plugin by default?

Hi @crazy-max,
Your feature to be able to remove any plugins from the image is a create idea, nevertheless I don't get the point of removing EraseData plugin.
Adding the removal of files on the "Remove" option instead is creating a lack of feature.
It's not possible anymore to remove a torrent while keeping the file.
Thanks for your feedback, I really don't want to rebuild a custom image for that purpose.
Best

How can i see the rtorrent process on cli

I've entered the running container via
sudo docker exec -it name /bin/sh (ash bash is not there..)

It seems that rtorrent is not running via screen or tmux.
How can i see rtorrent CLI view?

Thx

When I tried to edit .rtorrent.rc, the container give me error because it can't load .rtorrent.rc

Behaviour

I want to define .rtorrent.rc myself but got into trouble. I can edit the content of .rtorrent.rc after start the container for 1st time (edit while conatiner still runing). Then if I modified it again, it won't start and give error.

Steps to reproduce this issue

  1. Mapped the /data to my folder
  2. Start the container to get the /data content
  3. Tried to edit some lines inside /data/rtorrent/.rtorrent.rc
    For example I want to change this:

1 # base path
2 method.insert = cfg.watch, private|const|string, (cat,"/downloads/files/")

  1. Stop the container
  2. Tried to edit the config again, it failed

Expected behaviour

It should load normally with edited .rtorrent.rc

Actual behaviour

It give an error like this
rtorrent: Error in option file: ~/.rtorrent.rc:2: Invalid key.

Configuration

  • Docker version (type docker --version) : 18.09.8, build bfed4f5
  • Platform (Debian 9, Ubuntu 18.04, ...) : Synology DSM
  • System info (type uname -a) : Linux Synology 4.4.59+ #25426 SMP PREEMPT Tue May 12 04:54:55 CST 2020 x86_64 GNU/Linux synology_apollolake_918+

Question: want to setup Htpasswd but having issues with it

Hi,
Want to setup Htpasswd but having issues with it

If i edit the files with an note editor and add username password then rutorrent is asking for a username and password but then it fails.

When using the command: docker run --rm -it httpd:2.4-alpine htpasswd -Bbn >> $(pwd)/passwd/webdav.htpasswd
Then get the reply -ash: syntax error near unexpected token `<'
If change the line for test test then it tells me no such file or directory.

Im running docker from my synology nas and ssh into the nas to perform this action

How to execute custom bash scripts inside the container?

Hi @crazy-max ,
On my previous r/rutorrent image, I was using several custom scripts like:

method.set_key = event.download.finished,push_me,"execute=/scripts/pushover.sh,$d.name="
or
method.set_key = event.download.erased,remove_from_radarr,"execute=/scripts/remove_from_radarr.sh,$d.name=,$d.custom1="

but it seems that bash is not part of the build?
Is there an alternative way to do so?

Thanks! ๐Ÿš€

[Request] support jesec/flood UI in rtorrent

I moved to this image and I want to setup flood to use with mobile device. But it is not fully support flood and cause a lot of bugs. flood is mean to work with rtorrent fully. Can you take a look into this issue? Here is my docker-compose. Flood connect to rtorrent use the scgi.socket. I'm not sure if I missing something else here because with this setup, it works with linuxserver image but this image is obsolete and abandoned.

rt:
  image: crazymax/rtorrent-rutorrent:latest
  container_name: rt
  volumes:
     - /volume1/docker/rt/data:/data
     - /volume1/docker/rt/passwd:/passwd
     - /volume1/docker/rt/rsock:/var/run/rtorrent
     - /volume3/tor:/downloads
     - /volume2/tor2:/downloads2
  env_file:
     - /volume1/docker/rt/rtorrent-rutorrent.env
  ports:
     - 30000:6881/udp
     - 5580:8080
     - 9000:9000
     - 8000:8000
  restart: always

floodru:
  image: jesec/flood:latest
  container_name: floodru
  user: PUID:PGID
  restart: always
  command: --port 3000 --rundir /config/floodjc
  volumes:
     - /volume1/docker/rt/data/:/config
     - /volume1/docker/rt/rsock:/media
     - /volume2/tor2:/downloads2
     - /volume3/tor:/downloads
  ports:
     - 3001:3000

Question: Is it possible to override the default download folder

Hi,

Currently the default download folder is /downloads/temp and then files are moved to /downloads/complete.
I'm preparing my migration from another image to this one and it's not working as expected, I'm not able to copy paste the session folder... all torrent resume path are automatically changed to /temp so I'm trying now to do my migration based on rutorrent autowatch recursive strategy. It works but stick to /downloads/temp but I would like to import them in /downloads/complete as they are already there and not to be downloaded.
I have folder and subfolders to seed my packs and episodes of my packs so I can't just update the path afterward, it will take hours, file per file.

directory = /downloads/complete in the rtorrent.rc file is not working neither.

Any advices?

Thanks

I tried to install filemanager plugins but it fails with error "FILE MANAGER: Failed to get directory contents"

When using rutorrent, I want to install some third-party plugins and filemanger is the main package for other thing to work. But in alpine linux it caused error above in rutorrent log.

Fix at the moment I found in nelu/rutorrent-thirdparty-plugins#10 (comment)
by running this line in bash apk add --no-cache findutils
Atm, to save time when restart container, I bind /etc/cont-init.d/ to a location and add that line to 03-config.sh.

Settings won't save

Hi,
Thanks for your project,I have problem with saving settings, when I stop container or reboot host, every settings that changed through ruTorrent will get back to default.

Behaviour

Settings that changed through ruTorrent will get back to default after host reboot or stopping container.

Steps to reproduce this issue

  1. Starting container
$ chown ${PUID}:${PGID} data downloads passwd
$ docker run -d --name rtorrent_rutorrent \
  --ulimit nproc=65535 \
  --ulimit nofile=32000:40000 \
  -p 6881:6881/udp \
  -p 8000:8000 \
  -p 8080:8080 \
  -p 9000:9000 \
  -p 50000:50000 \
  -v $(pwd)/data:/data \
  -v $(pwd)/downloads:/downloads \
  -v $(pwd)/passwd:/passwd \
  crazymax/rtorrent-rutorrent:latest
  1. Stopping container
  2. Starting container

Expected behaviour

Settings should be saved.

Actual behaviour

Settings don't save.

Configuration

Docker version 19.03.12, build 48a66213fe
docker-compose version 1.27.2, build 18f557f9
Ubuntu 18.04
Linux poorya 4.15.0-117-generic #118-Ubuntu SMP Fri Sep 4 20:02:41 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Docker info

Client:
 Debug Mode: false

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 1
 Server Version: 19.03.12
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 4.15.0-117-generic
 Operating System: Ubuntu 18.04.5 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 3.852GiB
 Name: poorya
 ID: 2MZ7:SDG6:5KRN:6SMR:LYSU:LJQU:45LC:K3WU:ZPFE:JUVS:26MR:MY7M
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support

Logs

> Container logs (set LOG_LEVEL to debug if applicable)

rtorrent .rtlocal.rc forcing temp and complete folder inside download directory

These 3 lines force us to have a complete and temp folders inside our download dir.

method.insert = cfg.download_complete, private|const|string, (cat,(cfg.download),"complete/")
method.insert = cfg.download_temp, private|const|string, (cat,(cfg.download),"temp/")

directory.default.set = (cat,(cfg.download_temp))

I've tried removing them but every time I restart the container they are back. If I delete the folders the container crashes.

I don't really want to have these 2 random folders in my download directory.

What can I do to get right of them without having to custom build the container?

Thanks!

Question: How to customize SCGI port

Hi @crazy-max
I would like to run 2 of your containers next to each other behind a VPN and it seems the SCGI port start conflicting (ofc).
In your port mapping, I can see you are using the standard one 9000, is there any way to change it inside the container?
I need this because as it's behind a VPN container, it's not the outside port which cause the issue but the internal one.
Thanks for your feedback
Best
TLF

connect through mod.scgi

Not a bug or issue really. Could you please show how to connect to rtorrent through mod.scgi instead of RPC thereby i can remove both httprpc and rpc plugins? can rutorrent do this? i mean connect to the socket directly or through port 8000. also why is port 80 exposed? could not find it in your readme. thanks for an awesome container. very lean and mean!

Torrents with subdirectories dont finish

Behaviour

Torrents with subdirectories, do not finish the download. They either stop or go to paused state.

Steps to reproduce this issue

  1. Add torrent with subdirectories in it
  2. Torrents finish every file execpt the subdirectory
    e.g.
    image

Expected behaviour

Finish the download to 100%

Actual behaviour

Stops at ~95 - 99% - dependend on the size of the torrent.

add. info what i've tested and found on the net

  • independent of the chunksize
  • double checked with torrents without subdirectories in it
  • checked if the user owner of the parent directory
  • umask is 022 so create subdirectories should work?!
  • This user seems to have the same problem Link
  • The user seems to have a simliar symptom (but that issue indicated to sonarr), but the last sentence is exactly my problem Link to Github issue

Configuration

  • Docker version (type docker --version) : 18.09.0-0506
  • Docker compose version if applicable (type docker-compose --version) :
  • Platform (Debian 9, Ubuntu 18.04, ...) : Synology DSM
  • Include all necessary configuration files : docker-compose.yml, .env, ...

Docker info

sudo docker info
Password:
Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 5
Server Version: 18.09.6
Storage Driver: btrfs
Logging Driver: db
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs db fluentd gcplogs gelf journald json-file local logentries splunk                                                                                                              syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 0cf16177dbb234350dc27dd2bbd1d7cebd098108
runc version: 6cc9d3f2cd512eeb3d548e2f6b75bcdebc779d4d
init version: e01de58 (expected: fec3683)
Security Options:
 apparmor
Kernel Version: 4.4.59+
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 11.55GiB
Name: monster
ID: VBXU:TKSU:VHCL:TNTK:MXSQ:OU7Z:MXDH:ESL7:3UTR:MNBG:QNDG:D4AL
Docker Root Dir: /volume1/@docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No kernel memory limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support

Logs

1578046192 E F934DC88ED19C62A5B675FF922FBECFABF227089->file_list: Failed to prepare file '/Sample/.sample.mkv': Could not open file: No such file or directory
1578046192 E Could not resume download: Could not open file: No such file or directory

moving torrents

dunno if it's a config conflict between rtorrent amd rutorrent but when I save to another directory a completed torrent, it 1) redownloads it right away even with the Move data files and Fast resume checkbox set, and 2 ) reput it in the completed folder once done
Commenting those lines in .rtorrent.rc and restarting rtorrent solved the issue 2 but I couldn't figure out how to solve one.

method.insert = d.get_finished_dir, simple, "cat=$cfg.download_complete=,$d.custom1="
method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session="
method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.get_finished_dir="

Allow to change the "$topDirectory" variable in rutorrent

Hey,

Could you add a variable to change the "$topdirectory" variable in rutorrent?
I want to save torrents to a folder which is on /archive.
But the default value for "$topDirectory" is "/data", so i cannot save anything under "/archive"

Add a webroot environment variable

First thank you for your great image. The only one up-to-date allowing rtorrent.rc scripting, i.e moving torrent without problem. Maybe due to compliling everything rather than using the rtorrent from apk.. well, thank you :)

Would it be possible to add an environment variable (and the according process) to set rutorrent web root, so i can be reached thru something like http://xxxx/mywebroot

Why?
Because with traefik, i'd rather use URLs than subdomain.
And even if i achevied, with traefik config, routing the request correctly to the container using a custom webroot , rutorrent won't consider this "webroot", so all the following needed resources requested by rutorrent (JS, CSS & so on) won't load (since they won't contain the webroot).
I don't really know if 'im clear...

plugins directory aren't protected by password!

When i enter to IP:8080/plugins/httprpc/action.php nginx doesn't ask me for user & password, but when i enter to IP:8080 i must enter login and password.
So... Authentication in rutorrent doesn't work fully. It is really security vulnerable for people who has rutorrent on vps,or other external service. Plugins folder are open for all unauthorized people from the web!

Are u fix this?

Watch folder is not working as expected

Hi @crazy-max

I have a folder mapping for the watch folder:
- /volume1/docker/rutorrent-main/watched:/downloads/watched

AutoWatch/AutoLabel are configured like:
image

Inside the container the permission looks good
image

The folder tv contains 93 items but they are not added to my download location /tv folder...

Do you have any hints? Is there a scan frequency? Can we configure it?

Thanks

Feature request: ports customization

Hi @crazy-max. It would be really helpful if it allows to change ports with environment variables. I wish I could run rtorrent with "--network host" to avoid docker NAT performance loss but some ports are already in use. Adding this feature would also make it easier to run multiple instances with the host network. Thank you very much!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.