BitTorrent Server on Raspberry Pi

Mar 03, 2015
Here is a really easy process to turn your [Raspberry Pi](// into a high performance [Bit-torrent](// server that can be used to download or upload Bit-torrent. Using Raspberry Pi as a BitTorrent can be good for users who are using more than one OS or hardware or prefer to download their stuff in the background while doing any other work. It can also be useful if you want to access all your BitTorrent in one place without changing hardware.

We would be using Transmission daemon as our BitTorrent client as it is very lightweight and comes with a really nice Web UI. We will be reverse proxy Transmission daemon using Nginx as it lets give performance benefits. This tutorial is for Debian based Linux distributions for Raspberry Pi like Raspbian or if you prefer minimal build I would recommend the Raspbian-UA-Netinst. Lets get started.


If you are <code class="highlighter-rouge">root user you don’t require to have <code class="highlighter-rouge">sudo before every command.

  • Updating local package database.

sudo apt-get update

  • Installing Transmission daemon.

sudo apt-get install transmission-daemon

  • Installing Nginx.

sudo apt-get install nginx-full

  • Stopping Transmission Daemon to write changes in <code class="highlighter-rouge">settings.json file.

service transmission-daemon stop

  • Editing <code class="highlighter-rouge">settings.json that is located in <code class="highlighter-rouge">/etc/transmission-daemon/settings.json.

nano /etc/transmission-daemon/settings.json

You configuration file should look something like this.

You can change the configuration as you prefer to suite your needs. It is a really simple ``JSON` document that can be edited really easily and can do many performance differences. I would recommend that you should change the `rpc-username`, `rpc-password` string and disable `rpc-whitelist-enabled` If you wan’t all `ip` address to access the Transmission Daemon. The most important thing to change is `rpc-bind-address`. change it from`
``` "rpc-bind-address": "", ```
``` "rpc-bind-address": "", ```
This will let Transmission daemon run on ``` instead of make it run on the external ip address and makes slow as it has needs to first known the IP and then run it. Next is reverse proxy it using NGINX. For that we can edit the `default` located in `/etc/nginx/site-enabled/default`. Replace the file content with this.`
``` server { listen 80; ``` location / { proxy_pass; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } ```


</div>Now start Nginx.

<div class="highlighter-rouge">```
service nginx start  
Lets start transmission daemon.
``` service transmission-daemon start ```
Now you have Transmission daemon running on port 80 of your Raspberry Pi address. Visit your Raspberry Pi IP address and you should have the Transmission Web UI waiting for you to add a new BitTorrent. The amount of BitTorrent you download also depends on the SD card size. It is recommended that you use an external HDD to serve storage purpose.

Thanks for reading. If you have any question feel free to leave a comment below.

If you like this content, please consider buying me a coffee.

Buy me a coffeeBuy me a coffee

You will get access to contributer exclusive resources and content.

Thank you!

Darryl Dias

I am a student, artist, and author currently living in Florida. My interests range from technology to arts. I am also interested in programming, writing

Analytics by GoSquared