Instal rutorrent in docker with rtorrent
This is probably the easiest way to set up a rutorrent with torrent in docker. The Project is managed in the following repository. Rutorrent is the most popular BitTorrent client to run on the web.
https://github.com/mondediefr/
and is actively developed.
Our special Thanks to Magicalex for actively maintaining and updating it.
I believe it would be beneficial to clarify that a pre-existing docker environment is necessary for the task.
Important points to know about this rutorrent installation
Docker Properties
- Cross-platform image: linux/amd64, linux/arm64
- Docker container based on Alpine Linux.
- Provides a solid, out-of-the-box configuration by default.
- No root process.
- The ability for custom rtorrent and rutorrent configurations.
- You can add your plugins and themes.
- Filebot is included, and create symlinks in /data/media (choose the filebot tag).
Tag available
- latest (Dockerfile)
- filebot (Dockerfile)
Build Docker image
Build arguments
Argument | Type | Default value | Description |
---|---|---|---|
FILEBOT | optional | False | Build with filebot |
FILEBOT_VER | Optional | 4.9.1 | Filebot version |
CHROMAPRINT_VER | Optional | 1.4.3 | Chromaprint version |
Build
docker build --tag mondedie/rutorrent:latest https://github.com/mondediefr/docker-rutorrent.git
Build with arguments
docker build --tag mondedie/rutorrent:filebot --build-arg FILEBOT=true https://github.com/mondediefr/docker-rutorrent.git
Setup values for rutorrent docker
Environment variables without FileBot
Variable | Type | Default value | Description |
---|---|---|---|
UID | optional | 991 | UID to launch rtorrent |
GID | optional | 991 | GID to launch rtorrent |
PORT_RTORRENT | optional | 45000 | Port for rtorrent |
DHT_RTORRENT | optional | Off | Option for DHT in rtorrent.rc file |
CHECK_PERM_DATA | optional | true | Check permissions in the downloads folder |
HTTP_AUTH | optional | true | Enable HTTP authentication |
Environment Variables for FileBot
Variable | Type | Default value | Description |
---|---|---|---|
FILEBOT_LICENSE | required | None | License File Path |
FILEBOT_RENAME_METHOD | optional | Symlink | Media Renaming Method |
FILEBOT_LANG | optional | fr | Set your language |
FILEBOT_CONFLICT | optional | Skip | Conflict Management |
Volumes
- /data: Folder for downloading torrents
- /config: Folder for rtorrent/rutorrent configurations
Folder tree
- /data/.watch: watch directory for rtorrent
- /data/.session: rtorrent backup
- /data/downloads: rtorrent download here
- /data/media: Organize your media and create a symbolic link with Filebot
- /config/rtorrent: path to .rtorrent.rc
- /config/rutorrent/conf: global configuration for rutorrent
- /config/rutorrent/share: Rutorrent user configuration and cache
- /config/custom_plugins: add your plugins here
- /config/custom_themes: Add your themes here
- /config/filebot: folder for the FileBot license file
- /config/filebot/args_amc.txt : configuration of fn:amc script of filebot
- /config/filebot/postdl: Adjust the postdl script, examples here
Ports
- 8080
- PORT_RTORRENT ( default : 45000 )
That’s it for the moment we’ve seen the technical part. It is important to read it to understand the folder tree.
Uses
Simple launch
docker run --name rutorrent -dt \
-e UID=1000 \
-e GID=1000 \
-p 8080:8080 \
-p 45000:45000 \
-v /mnt/docker/rutorrent/config:/config \
-v /mnt/docker/rutorrent/data:/data \
mondedie/rutorrent:latest
with docker-compose you can choose the version of rutorrent:
version: "3.8"
services:
rutorrent:
image: mondedie/rutorrent:latest
container_name: rutorrent
environment:
- UID=1000
- GID=1000
volumes:
- /path/to/rutorrent/config:/config
- /path/to/rutorrent/data:/data
ports:
- 8080:8080
- 45000:45000
restart: unless-stopped
URL: http://xx.xx.yy.zz:8080
remember to adapt with your tree structure and the UID and GID with your users./mnt/docker/rutorrent/*
Advanced Launch with FileBot
docker run --name rutorrent -dt \
-e UID=1000 \
-e GID=1000 \
-e DHT_RTORRENT=on \
-e PORT_RTORRENT=6881 \
-e FILEBOT_LICENSE=/config/filebot/FileBot_License_XXXXXXXXX.psm \
-e FILEBOT_RENAME_METHOD=move \
-p 9080:8080 \
-p 6881:6881 \
-p 6881:6881/udp \
-v /mnt/docker/rutorrent/config:/config \
-v /mnt/docker/rutorrent/data:/data \
mondedie/rutorrent:filebot
with docker-compose:
version: "3.8"
services:
rutorrent:
image: mondedie/rutorrent:filebot
container_name: rutorrent
environment:
- UID=1000
- GID=1000
- DHT_RTORRENT=on
- PORT_RTORRENT=6881
- FILEBOT_LICENSE=/config/filebot/FileBot_License_XXXXXXXXX.psm
- FILEBOT_RENAME_METHOD=move
volumes:
- /path/to/rutorrent/config:/config
- /path/to/rutorrent/data:/data
ports:
- 9080:8080
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
Example of a more in-depth launch by @Aerya
docker run -dt \
--name=rutorrentseries \
--restart always \
-e HTTP_AUTH=true \
-e CHECK_PERM_DATA=false \
-p 9202:8080 \
-p 47918:45000 \
-v /home/aerya/docker/rutorrentseries:/config \
-v /home/aerya/mnt/PreSeries:/data/downloads \
-v /home/aerya/mnt/sourcetorrents/PreSeries:/data/.watch \
-v /home/aerya/docker/rutorrentseries/session:/data/.session \
--label=com.centurylinklabs.watchtower.enable=true \
mondedie/rutorrent:latest
Add custom plugin to rutorrent docker:
mkdir -p /mnt/docker/rutorrent/config/custom_plugins
git clone https://github.com/Gyran/rutorrent-ratiocolor.git /mnt/docker/rutorrent/config/custom_plugins
Add HTTP authentication
docker run --name rutorrent -dt \
-e UID=1000 \
-e GID=1000 \
-e PORT_RTORRENT=46000 \
-e HTTP_AUTH=true \
-p 8080:8080 \
-p 46000:46000 \
-v /mnt/docker/rutorrent/config:/config \
-v /mnt/docker/rutorrent/data:/data \
mondedie/rutorrent:latest
Generate your password:
docker exec -it rutorrent gen-http-passwd
Username: torrent
Password:
Verifying - Password:
Password was generated for the http user: torrent
Open your browser and type: http://xx.xx.xx.xx:8080
That’s it, I think I’ve covered how to install and use the mondedie image.
Thank you @Magicalex for allowing me to take over his Github README.
Head of Operations Evoseedbox
About Tim Michels
Tim Michels is a DevOps Engineer with a Master's degree in Computer Science from Vilnius University. Holding a Certified Kubernetes Administrator (CKA) certification, Tim brings deep expertise in Linux, scripting, server management, and digital privacy.
Tim focuses on empowering tech enthusiasts and privacy advocates with step-by-step tutorials that promote self-reliance in the digital world. His work has been featured in popular publications like TorrentFreak, Grey Coder, [invalid URL removed], [invalid URL removed], and his own project, PassVault.me. Tim also actively contributes to respected open-source projects such as Vaultwarden, RuTorrent, GetKuma, RTorrent, and Syncthing.
Outside of technology, Tim enjoys managing media centers, collecting video games, strategy gaming, and even a bit of gardening. His current passion project is AirVault.io, aimed at providing affordable access to open-source digital privacy tools.