|Added Docker Compose details|
Added new folder mappings to ensure atomic moves and Hard-linking
|Added fix for the missing downloads by editing the rtorrent.rc file||24/05/2021|
|Guide re-written and updated with DSM7 screenshots||01/08/2021|
In this guide I will take you through the steps to get ruTorrent up and running in Docker
In order for you to successfully use this guide please complete the two proceeding guides
Downloading the Container
In the majority of my guides I use the containers made by LinuxServer, these have very good documentation and are very well maintained so should any issues arise there is a group of people to ask.
Open up Docker within DSM and navigate to the ‘Registry’ section and search for ruTorrent in the search box. Right click and download the Linuxserver version.
When asked make sure you choose ‘Latest’ from the list of available versions
You can check the status of the download over on the ‘Image’ tab.
Setting up the Container
In Docker click on the ‘Image’ tab, in the list of your containers select the ‘Linuxserver ruTorrent’ image and click on ‘Launch’
You will now see the initial setup screen, if you want to you can change the name of the container to something else, or if you are using a number of services on a machine with a limited amount of memory or lower powered CPU you can also setup resource limitations, but this is generally not required.
Next up we are going to click on the ‘Advanced Settings’ button, this will take you to a new window with a number of tabs which we are going to work through.
On the first tab enable ‘Auto Restart’ this will ensure ruTorrent will automatically start up whenever you reboot your NAS.
Volumes / Mounts
We can now move onto the volume tab in which we will be specifying the directories where ruTorrent will store its configuration files and where to download to.
Click on Add Folder, click on the docker folder and create a new sub-folder called ‘rutorrent’ select this folder and click ‘select’
Click Add Folder again and this time select the ‘data/torrent’ folder and click Select.
Now we have added these we need to specify where they will be mounted inside the container. As per the screenshot/table below:
Leave the Network tab as is you do not need to change anything
As ruTorrent uses port 443 and port 80 by default we need to specify some new ports to access it, this is due to the default ports generally being in use by DSM.
I have used port 8889 for port 443 (SSL) and port 8888 for port 80 (NonSSL)
You do not need to setup anything on this tab.
Environment Variables (PGID, PUID and Timezone)
Next we are going to setup a couple of environment variables that docker will use to allow the container access to our files and folders and also to tell it where we live in the world.
Click the Add button, and fill in the following details as per the table/screenshot, you will need to do one at a time.
|PUID||The UID you obtained in the user setup guide|
|PGID||The GID you obtained in the user setup guide|
|TZ||Your timezone wikipedia.org/wiki/List_of_tz_database_time_zones|
You have now completed the setup of the container, click on Apply to move back to the initial settings screen and then click next, you will be shown an overall summary of the settings we have specified, this is a good time to double check everything is correct. Finally click on Done and the container should start to boot.
As we have changed the mount point for our downloads in the earlier section you will need to make sure you also change this to the correct place in ruTorrent webui and also in the rtorrents settings file.
ruTorrent will now be accessible via you NAS IP address on port 8888
Head into the settings go to ‘Downloads’ and change the default directory from ‘/downloads/incoming’ to /data/torrents/incoming
The last step involves editing the rtorrents settings file, in order to do this you need to stop the container in the DSM gui.
You can do this in a few different ways however we are going to do it via the text editor package.
Open up the package center and install ‘Text Editor’
Once installed open Text Editor and then open the rtorrent.rc file located in ‘/docker/rutorrent/rtorrent’ you will need to change the ‘File type’ to ‘All Files’
Once you have opened the file you will see a section called #Directories
You need to swap the following lines in the settings, once you have changed them click file and save.
|20||schedule2 = watch_directory_1,5,5,”load.start=/downloads/watched/*.torrent”||schedule2 = watch_directory_1,5,5,”load.start=/data/torrents/watched/*.torrent”|
|21||directory = /downloads/incoming||directory = /data/torrents/incoming|
|23||method.insert = d.get_finished_dir, simple, “cat=/downloads/completed/,$d.custom1=”||method.insert = d.get_finished_dir, simple, “cat=/data/torrents/completed/,$d.custom1=”|
# Directories # schedule2 = watch_directory_1,5,5,"load.start=/data/torrents/watched/*.torrent" directory = /data/torrents/incoming session = /config/rtorrent/rtorrent_sess method.insert = d.get_finished_dir, simple, "cat=/data/torrents/completed/,$d.custom1=" method.insert = d.data_path, simple, "if=(d.is_multi_file), (cat,(d.directory),/), (cat,(d.directory),/,(d.name))" 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="
Once you have done this save you are all set and can start the container back up and begin using ruTorrent.
You can use the below code saved as rutorrent.yml to do the entire process above in one quick command via SSH. Ensuring you change the variables to your own. (Note you will still need to do the Final Steps section)
version: "3.2" services: linuxserver-rutorrent: image: linuxserver/rutorrent:latest container_name: rutorrent environment: - PUID=YOURUID - PGID=YOURGID - TZ=YOUR/TIMEZONE volumes: - /volume1/docker/rutorrent:/config - /volume1/data/torrents:/data/torrents ports: - 8888:80/tcp - 8889:443/tcp restart: unless-stopped
sudo docker-compose -f /volume1/docker/rutorrent.yml up -d --remove-orphans
Throw me some bits
If you have found my site useful please consider pinging me a tip as it helps cover the cost of running the site, it could even buy me a beer 🙂
- Binance coin
- Bitcoin cash
Donate Bitcoin to this address
Scan the QR code or copy the address below into your wallet to send some Bitcoin
Donate Ethereum to this address
Scan the QR code or copy the address below into your wallet to send some Ethereum
Donate Tether to this address
Scan the QR code or copy the address below into your wallet to send some Tether
Donate Xrp to this address
Scan the QR code or copy the address below into your wallet to send some Xrp
Donate Polkadot to this address
Scan the QR code or copy the address below into your wallet to send some Polkadot
Donate Binance coin to this address
Scan the QR code or copy the address below into your wallet to send some Binance coin
Donate Litecoin to this address
Scan the QR code or copy the address below into your wallet to send some Litecoin
Donate Bitcoin cash to this address
Scan the QR code or copy the address below into your wallet to send some Bitcoin cash
Donate Dogecoin to this address
Scan the QR code or copy the address below into your wallet to send some Dogecoin
Donate Tron to this address
Scan the QR code or copy the address below into your wallet to send some Tron
Donate Monero to this address
Scan the QR code or copy the address below into your wallet to send some Monero
Donate Omisego to this address
Scan the QR code or copy the address below into your wallet to send some Omisego