build a torrent box on raspberry pi

Turn Your Raspberry Pi Into A Torrent Box (The 3 best apps)

If you already have a Raspberry Pi running 24/7, adding a torrent service on top of your existing project(s) is another great use for this device. I know, with the rise of streaming providers, torrents aren’t as popular as they used to be, but it’s still handy to have an app with a nice web interface to quickly download torrents when you need to.
How can you build this? Well, I have tested several solutions and will answer all your questions in this article.

Overall, qBittorrent is currently the most comprehensive application for building a torrent box on a Raspberry Pi. It’s available in the default repositories on Raspberry Pi OS and includes all the advanced features (speed limits, notifications, and a web interface).

I will show you everything in this article, like how to set it up, and also other alternatives you might consider. So, keep reading if that’s something you are interested in!

If you’re looking to quickly progress on Raspberry Pi, you can check out my e-book here. It’s a 30-day challenge where you learn one new thing every day until you become a Raspberry Pi expert. The first third of the book teaches you the basics, but the following chapters include projects you can try on your own.

1 – qBittorrent

qBittorrent Introduction

qBittorrent is an open-source project, created as an alternative to µTorrent and most other torrent clients. It’s available on any operating system (Windows, Linux, macOS, BSD), so you may have already used it on your computer before.

According to my tests on Raspberry Pi, qBittorrent is currently the most advanced solution to manage torrent downloads. All the features that you might need are built-in, you can add plugins, and having the web interface available from any device on your network is really great.

I will share all of the information I received after testing this app, so you can easily test it on your own. I will then give you two alternatives just in case qBittorrent is not a good fit, but for most of you, it should be precisely what you are looking for :-).

qBittorrent Installation on Raspberry Pi

As explained in the introduction, qBittorrent is available in the default Raspberry Pi OS repositories. The installation is pretty straightforward, there is only a minor difference if you use the command line, or if you need it to start automatically on boot.

Desktop installation

On Raspberry Pi OS with Desktop, you can use the add/remove software tool to install qBittorrent:

  • In the main menu, go to Preferences and open “Add/Remove software”.
  • In the search engine, type “qbittorent”.
  • Check the box corresponding to the first package.
  • Click “Apply” to install it on your system.

Once done, qBittorrent will be available in the main menu, under the “Internet” category. You can start it right away. I’ll give you further instructions later for the advanced configuration, but the basic use is pretty standard.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

Find a link to a torrent (or direct download the .torrent file), and use the qBittorrent interface to add it to your download list.

Command line installation

If your Raspberry Pi runs a minimal version of Raspberry Pi OS (or another server distribution), you can’t use the qBittorrent GUI, and you will need another package. It’s the third package listed on my previous screenshot: qbittorrent-nox.

Install it with APT, like for any other application:
sudo apt update
sudo apt install qbittorrent-nox

Once installed, you need to specify either the torrent file location or the direct link after the command.
Here is the basic syntax:
qbittorrent-nox <torrent-file>
qbittorrent-nox <torrent-url>

By default, this will start the download in the current folder, but there are many options that you can use in order to do exactly what you want. Use “–help” to see all the options:

Are you a bit lost in the Linux command line? Check this article first for the most important commands to remember and a free downloadable cheat sheet so you can have the commands at your fingertips.

qBittorrent Configuration

You are now set up with the basic app, but the power of qBittorrent is hidden in its settings. So, I recommend checking your settings to see if there is something useful for you.

On Desktop, you can open the configuration interface from the “Tools” submenu, and click on “Preferences”. With the command line, you can either select as many parameters as needed or create a configuration file with your preferences.

Enable the web interface

The web interface is one of the best features for qBittorrent, especially when installed on a Raspberry Pi that you can keep running, without any monitor or keyboard.
The web interface is not enabled by default, so to start it, go to the Preferences and Web UI. Then check the first box and define a login and password, it looks like this:

Depending on how you use your torrent box, you can choose to disable the authentication for clients on the same network or for specific IP addresses (your phone or your computer, for example). If you have other services using the port 8080 (like Domoticz), don’t forget to change it in this window too.

Once done, you can open your web browser on your computer, and have direct access to the web interface by typing:
http://<RASPBERRYPI_IP>:8080
Check this tutorial if you don’t know how to get your Raspberry Pi IP address.

The interface is almost the same as the desktop:

If you have a minimal distribution running on your Pi, you can still enable the web interface and then only use this to easily get access to all the other options without having to use the command line at all. Simply execute this command without any parameters:
qbittorrent-nox
You’ll need to accept the disclaimer, and you’ll then get the Web UI address.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

Other options

qBittorent includes all the basic configuration options you’ll find in any downloaded app, like the download path, speed limits, etc. But I also loved that they include advanced options. Here are a few examples:

  • Notifications: you can configure a mail server to send email notifications when a download is completed.
  • Run a script on completion: the same thing, when a download is completed, you can run your own script (or any program). If you have read my book about Python, you can for example create a push notification in Python, that you’ll get on your phone at the end of each download.
  • No-IP updater: If like me, you use a dynamic domain name like No-IP or DynDNS, you can configure your account into qBittorrent, it will automatically update your IP address when it changes.

Even if these options are not mandatory, it’s the main reason why I chose this app as my favorite. It goes farther than any other alternatives, and so it should be a good fit for almost everyone.

There is also a search engine included in qBittorrent (use the “Search” tab and install one of the plugins to use it). The official plugins are not excellent, but I’m pretty sure you’ll find one that fits your needs.

Start qBittorrent on boot

One thing missing in the settings is a way to automatically start qBittorrent on boot. And this is an issue, as the web interface doesn’t work when the app is not open. I tried a few things, and the easiest way to avoid this issue is to create a crontab, to start the app on boot.

I know that the best practice (and the wiki) is to create a service for qBittorrent, but I find this a bit too complicated for an app like that. So, here is how to do the same thing faster:

  • First, you need the qBittorent-nox package, even on Desktop:
    sudo apt install qbittorent-nox
    (Or use the Add/Remove Software app to do the same thing).
  • Then, edit the crontab file:
    crontab -e
  • Finally, add this line at the end of the file, to automatically start qBittorent on boot:
    @reboot /usr/bin/qbittorrent-nox
  • Save and exit (CTRL+O, CTRL+X).

After the next reboot, you should get access to the web interface directly. It would have been nice to have this option directly in the GUI setting, but it’s not a big deal.

If the crontab is not your friend, you can find other ways to start something on boot in this tutorial. Pick the one you prefer, or create a service if you want to follow the best practices :-).

💰 Make Money Sharing Your Raspberry Pi Expertise!
Help others navigate the world of Raspberry Pi with your insights.
Become a RaspberryTips Contributor!

Going further with qBittorrent

You now know how to set up qBittorrent to create a torrent box on your Raspberry Pi. But you can go even further by testing other options in the settings or adding complementary projects to your system.

One example can be to install Samba on your Raspberry Pi and move the files to a specific shared folder on completion. This way, you can access the downloaded file easily from your computer, or even connect this folder to Kodi to watch the corresponding media on your TV.

Using a VPN on top of it can also be a good idea. I tested the best VPN solutions available on Raspberry Pi in this article if you don’t have one yet.

2 – Transmission

Transmission is another great app to download torrents on Raspberry Pi. qBittorrent is like the “do-it-all” when it comes to torrents, but maybe you need something more simple. If like me, you use a torrent client like once a month to download a Linux image, you just need the basics (click & download).

Transmission is a serious project, often included by default on other distributions (like Ubuntu, for example). It’s not preinstalled on Raspberry Pi OS, but you can easily add it with this command:
sudo apt install transmission
Or use the Add/Remove Software app to find it via the search engine.

Transmission also includes a web interface (port 9091 by default). You can enable it in the settings, under the “Remote” tab.
As you’ll see, there are fewer settings available, but the most important are included (speed limits, download paths, etc.).

Overall, the Transmission app is a great choice that should be sufficient in most cases, especially if you don’t need advanced options.

3 – Deluge

And the third suggestion I have for you is to use Deluge.

I tested it because I used it on PC for a long time, but after testing qBittorrent and Transmission, it seems less interesting. I like the advanced features with qBittorrent and the clean interface of Transmission, Deluge has none of that.

Anyway, it’s still a decent alternative, especially if you are already used to it on another device. You’ll find it in the default repository too, so you can install it with APT:
sudo apt install deluge
There are different packages if you need more advanced features, so make sure to install them if you need the command line, web interface, or daemon. Use this to get the list:
sudo apt search deluge

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

Final Thoughts

I did a survey on my YouTube channel before writing this article, and I now better understand the results:

I put the three options from the most popular to the less known for me, but it seems I wasn’t up-to-date with the latest trends :-).

qBittorent will generally do better than the other options, and in the long run will already include any advanced options you might need in the future, so I would recommend starting with it directly.

A torrent box with qBittorent is typically the kind of service I would put on my Raspberry Pi Zero running 24/7. And if you are interested in other small projects like that, you can find my current top projects for the Raspberry Pi Zero (1 or 2) here.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

🛠 This tutorial doesn't work anymore? Report the issue here, so that I can update it!

Reminder: Remember that all the members of my community get access to this website without ads, exclusive courses and much more. You can become part of this community for as little as $5 per month & get all the benefits immediately.

Video

Whenever you’re ready, here are other ways I can help you:

The RaspberryTips Community: If you want to hang out with me and other Raspberry Pi fans, you can join the community. I share exclusive tutorials and behind-the-scenes content there. Premium members can also visit the website without ads.

Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.

The Raspberry Pi Bootcamp: Understand everything about the Raspberry Pi, stop searching for help all the time, and finally enjoy completing your projects.

Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.

You can also find all my recommendations for tools and hardware on this page.

Similar Posts

2 Comments

  1. Great article (as always).

    I set up a torrent box just last week using Transmission which starts automatically at boot. It was very simple and if you got a VPN setup at your home network, you can connect to your Pi throught the VPN using VNC. This means that you can be at work and control your downloads from your mobile phone.

    There is one important issue I cannot resolve though. If you use an external VPN to hide your activity, you loose the above priviledge. There is no way to connect remotely to a device that is under an external VPN. At least not a way I know at this point.

    1. Yeah, good point.
      And no, I don’t think you can have a VPN in both way, or at least you can’t enable them at the same time.
      The goal of the external VPN is to hide your activity, so it seems logic that you can’t reach your pi when it’s enabled.

      It should work with a second Raspberry Pi though (one with WireGuard for example, and the other one with Transmission + NordVPN, or whatever option you use).
      Once connected to Wireguard from your phone, you can manage the download on the other Pi (using the local IP), and still hide your torrent activity.

      I never tested this setup, but I think it should work.

Comments are closed.