Skip to content

ruTorrent in Docker on a Synology NAS

UpdateDate
Added Docker Compose details
Added new folder mappings to ensure atomic moves and Hard-linking
03/05/2021
Added fix for the missing downloads by editing the rtorrent.rc file24/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:

File/FolderMount path
docker/rutorrent/config
data/torrent/data/torrent

Network

Leave the Network tab as is you do not need to change anything

Port Settings

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)

Links

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.

variableValue
PUIDThe UID you obtained in the user setup guide
PGIDThe GID you obtained in the user setup guide
TZYour timezone wikipedia.org/wiki/List_of_tz_database_time_zones

Almost done

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.

Final steps

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

e.g 192.168.0.40: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.

LineFromTo
20schedule2 = watch_directory_1,5,5,”load.start=/downloads/watched/*.torrent”schedule2 = watch_directory_1,5,5,”load.start=/data/torrents/watched/*.torrent”
21directory = /downloads/incomingdirectory = /data/torrents/incoming
23method.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.

Docker Compose

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 🙂

  • Bitcoin
  • Ethereum
  • Tether
  • Xrp
  • Polkadot
  • Binance coin
  • Litecoin
  • Bitcoin cash
  • Dogecoin
  • Tron
  • Monero
  • Omisego
Scan to Donate Bitcoin to bc1qfznx5kxad9k9z5t9y79mkm9ukfexan9a6wrzl0

Donate Bitcoin to this address

Scan the QR code or copy the address below into your wallet to send some Bitcoin

Scan to Donate Ethereum to 0x162fc7781D3C6c6f27197A3A92567b5DAF258f19

Donate Ethereum to this address

Scan the QR code or copy the address below into your wallet to send some Ethereum

Scan to Donate Tether to 0x162fc7781D3C6c6f27197A3A92567b5DAF258f19

Donate Tether to this address

Scan the QR code or copy the address below into your wallet to send some Tether

Scan to Donate Xrp to rKGpNHetksTn4dgwgpiTkg8JM4uJ3J6pam

Donate Xrp to this address

Scan the QR code or copy the address below into your wallet to send some Xrp

Scan to Donate Polkadot to 153iRH61nXQZUXMveZxCmYyzjf1cWYVnxpHpfifoNchQuXbY

Donate Polkadot to this address

Scan the QR code or copy the address below into your wallet to send some Polkadot

Scan to Donate Binance coin to bnb14ye5rju74u5ythneaum2rjvp8eqep6wq8flghx

Donate Binance coin to this address

Scan the QR code or copy the address below into your wallet to send some Binance coin

Scan to Donate Litecoin to LfNfer3aSqLx4p8KfbbkT96ArXLXLDPxoD

Donate Litecoin to this address

Scan the QR code or copy the address below into your wallet to send some Litecoin

Scan to Donate Bitcoin cash to qrc7scd2drzsd7kywpsjfklvkmm26fqc2vd7uyvdx9

Donate Bitcoin cash to this address

Scan the QR code or copy the address below into your wallet to send some Bitcoin cash

Scan to Donate Dogecoin to DCwbNzfYHx22MDSyEVLWgfjxziYHtcgwAM

Donate Dogecoin to this address

Scan the QR code or copy the address below into your wallet to send some Dogecoin

Scan to Donate Tron to TL1Q3vY9mHnDMedHRyU8ERUAY8SzJ4FXiV

Donate Tron to this address

Scan the QR code or copy the address below into your wallet to send some Tron

Scan to Donate Monero to 45qwFr42XiA8egC5z2HdSQ2FzzP9VR1MvD5Sicg4EhGvdvTutx9GsF6DeU8DHAsTZy2ShBERjCB5rdy8iQ9CFnFu9Z6Adgw

Donate Monero to this address

Scan the QR code or copy the address below into your wallet to send some Monero

Scan to Donate Omisego to 0x162fc7781D3C6c6f27197A3A92567b5DAF258f19

Donate Omisego to this address

Scan the QR code or copy the address below into your wallet to send some Omisego

Published inDockerSynology

69 Comments

  1. SynologyNewbee SynologyNewbee

    Hi, I’ve followed your guide exactly and I was able to install ruTorrent and download a file. But I’m not able to find where the downloads are saved on the disk. I have a shared folder called Downloads and added the moun path ‘/media/downloads/. But after downloading a file, the Downloads shared folder is still empty. Where do I find the downloaded files?

    • Dr_Frankenstein Dr_Frankenstein

      Hey, did you do the final part of the guide ‘In the settings go to ‘Downloads’ and change the default directory to /media/downloads/incoming’

      It may be that your download is within the container and not to the directory mounted to

      • SynologyNewbee SynologyNewbee

        I did. Now that I look again, however, I see that the path has been reset to default. Whenever I restart the ruTorrent container, the settings reset… I gave the user that is associated to the PUID in ruTorrent read/write access to both the docker and the Downloads shared folder. I confirmed that the PUID and PGID are correct.

        • Dr_Frankenstein Dr_Frankenstein

          Have you ensured the docker user you are using has write permissions to both your /docker and /downloads shares. As this sounds like a permissions issue if the settings reset on a container restart.

          • SynologyNewbee SynologyNewbee

            That’s what I thought as well, but I’m sure that the ruTorrent user has all the permissions it needs: https://i.imgur.com/UweySuJ.png.

            Thank you for replying so quickly btw, really appreciate it!

          • Dr_Frankenstein Dr_Frankenstein

            Can you ping me a screenshot of your various settings. Or export the container settings file. drfranky@drfrankenstein.co.uk

        • Dr_Frankenstein Dr_Frankenstein

          Thanks for emailing, looks like we fixed it I have updated the guide with the additional steps required in order to ensure the file paths work.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.