rTorrent is a BitTorrent client. More info
ruTorrent is a front-end for the popular Bittorrent client rtorrent. More info
This Dockerfile sets up rtorrent with rutorrent, it is based on Alpine Linux and uses Nginx and php-fpm
This image contains 2 volumes that you can override with host or data container volumes:
- /downloads : your downloads folder
- /rutorrent : rutorrent files
docker run -d --name rtorrent --hostname rtorrent -p 6881:6881 -p 6881:6881/udp -p 51413:51413 -p 51413:51413/udp -v /srv/configs/rutorrent:/rutorrent -v /srv/seedbox:/downloads vsense/rtorrent
The ports used above are defined in the rtorrent configuration file (.rtorrentrc) and are shown as an example.
Of course you can mount as many volumes as you want, the base volumes existing to ensure image compatibility.
Because rutorrent is often updated and saves your settings, it is possible to use git clone rutorrent locally on the host and mount it in the container, as in the example above. This will allow you to upgrade rtorrent with git pull (there is no auto-update for rutorrent) as well as to configure plugins and commit your modifications.
A sample .rtorrentrc
file is available in this repo as rtorrent.conf
It is also possible to override it by mounting the file from host:
docker run -d --name rtorrent --hostname rtorrent -p 6881:6881 -p 6881:6881/udp -p 51413:51413 -p 51413:51413/udp -v /srv/configs/rutorrent:/rutorrent -v /srv/seedbox:/downloads vsense/rtorrent -v /srv/config/rtorrent/rtorrent.conf:/.rtorrentrc
You can use docker with --always to ensure container restart:
docker run --restart=always -d --name rtorrent --hostname rtorrent --rm -p 6881:6881 -p 6881:6881/udp -p 51413:51413 -p 51413:51413/udp -v /srv/configs/rutorrent:/rutorrent -v /srv/seedbox:/downloads vsense/rtorrent
Or you can use a systemd unit:
# /etc/systemd/system/rtorrent.service
[Unit]
Description=rtorrent & rutorrent web UI
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/rm /srv/seedbox/sessions/rtorrent.lock
ExecStartPre=-/usr/bin/docker pull vsense/rtorrent
ExecStart=/usr/bin/docker run --name rtorrent --hostname rtorrent --rm -p 6881:6881 -p 6881:6881/udp -p 51413:51413 -p 51413:51413/udp -v /srv/configs/rutorrent:/rutorrent -v /srv/seedbox:/downloads vsense/rtorrent
ExecStop=/usr/bin/docker stop rtorrent
ExecReload=/usr/bin/docker restart rtorrent
RestartSec=5
[Install]
WantedBy=multi-user.target