Make Your Own TorrentBox From a Pi

36K22414

Intro: Make Your Own TorrentBox From a Pi

Here you can read how to build a 24/7 running torrent server created a Raspberry Pi. All steps will be explained below. If you want a very low power-consumed server which can share your torrents by all day-and-night.

STEP 1: Parts for the Build

Here I'm writing what parts you can buy to create the server.


Raspberry Pi:
Raspberry Pi 2: https://www.adafruit.com/products/2358

OR

Raspberry Pi 3: https://www.adafruit.com/products/3055


Important that whatever device you'll choose you need a 5V 2.1A power supply for it, at least!

Power supply: https://www.adafruit.com/products/1995

And a SD card (min: 8GB, req: 16GB)!

http://www.ebay.com/sch/8GB-Micro-SD-Cards/96991/b...

Case: (optional)

You can choose a case for it just to make it all-together, but it's not required.
here is mine: https://www.wdc.com/en-ie/products/wdlabs/wd-pidr...
It's a 6x6 enclosure case, because I wanted to put the HDD with the pi together in one case.
But you can find a lot of cases here: https://www.adafruit.com/categories/395

Drive:

314GB: https://www.wdc.com/en-ie/products/wdlabs/wd-pidr...

1TB: https://www.wdc.com/en-ie/products/wdlabs/wd-pidr...

You can use any 2.5" HDD the higher RPM is better for torrent.


All of the parts can be found on eBay also!

STEP 2: Prepair Every Parts You Have

After everything is here let's put all things together, setup the server, before start to install the torrent program and the necessary apps.

Note: After you put together the case with the Pi and the HDD, you have to install an OS, I prefer Raspbian. It's a modified Debian Linux for Raspberry Pi.

You can find the installation steps here if haven't used raspberry before:
Windows: https://www.raspberrypi.org/documentation/install...

Linux: https://www.raspberrypi.org/documentation/install...

Mac: https://www.raspberrypi.org/documentation/install...

STEP 3: Put Your Pi Into the Case First

As you can see on the top-right part you can put the raspberry with screws to hold onto it.

Maybe you noticed that I put heatsinks onto the pi - on the CPU and RAM - because it will run on 24/7 and always downloads and uploads so it'll work a lot. That's the point why I wanted to use heatsink, but it's just an advice.

STEP 4: Put the HDD Next to the Pi

Here I put the HDD next to the Pi and of course I used screws to hold, all screws parts of the package of the case.

If stuck someway, you can check the guide for the case: https://www.wdc.com/content/dam/wdc/website/downl...

STEP 5: And the Server Is Done, Let's Install

After you set the OS on the Pi we can start the installation of the TorrentBox.
First we need these programs:

- Transmission: it's a torrent client program that will run your torrents on your raspberry pi.

- Barracuda: (optional) it's a file server program I use it because I share folders with other computers and I can use it with Webdav or FTP.

- Bittorrent Sync (or Resilio Sync): (optional) Just a synchronize program that is used to sync files amoung computers.

Now you need a computer or if you want to work on the device directly connect a Monitor, a mouse and the keyboard!

STEP 6: Format Your HDD

First you need to format you HDD at least to ext3, I recommend ext4 for linux.
On the terminal typer: sudo fdisk to see which is the connected HDD drive, in my case it was /dev/sda. So type sudofdisk /dev/sda.

Type p to verify the partition if you have.
"Disk /dev/sda: xxx GB, xxx bytes"

Now, use "d" command to delete the partition, then "p" to verify the delete. Use "n" to create a new partition, "p" for primary, then hit "Enter" to default 1, "Enter" select first sector, "Enter" select last sector for the whole disk.

Now use "p" to see your new partition.

Device Boot Start End Blocks Id System
/dev/sda1 2048 234441647 117219800 83 Linux

Then to apply the changes type "w". And run "fdisk -l" to see you /dev/sda1 has been created.

Now, make your filesystem like ext3 or ext4.
"mkfs.ext4 /dev/sda" // Now the superblocks are created.

You can mount the drive with: "mount /dev/sda1 /MY_DISK_FOLDER"

Use "df" to verify you mounted drive.

STEP 7: The Mighty "Transmission"

That's the main part of a torrent server. Let's install the Transmission on your Pi.

On terminal:

1. Updates:

sudo apt-get update

sudo apt-get upgrade

2. download the program

sudo apt-get install transmission-daemon

3. recommended to create folders on your HDD like completed and inprogress

sudo mkdir -p /media/NASHDD1/torrent-inprogress
sudo mkdir -p /media/NASHDD1/torrent-complete

4. now need to make a few changes in the settings.json file of the transmission

sudo nano /etc/transmission-daemon/settings.json

5. Here some changes but there are a lot, these are the most important ones

"incomplete-dir": "/media/NASHDD1/torrent-inprogress",

"incomplete-dir-enabled": true,

"download-dir": "/media/NASHDD1/torrent_complete",

"rpc-password": "Your_Password",

"rpc-username": "Your_Username",

"rpc-whitelist": "192.168.*.*",

You can find the whole settings here.

6. Save your changes and restart transmission by

sudo service transmission-daemon reload

7. You will need to update some places and permisssions so stop transmission service now

sudo service transmission-daemon stop

8. Edit the daemon to use the user that starts the service

check sour directory "ls -l /your_directory/download_dir"

sudo nano /etc/init.d/transmission-daemon

9. Edit the user that runs the service and owns the directory for the stored downloads (your USERNAME instead of debian-tranmission)

USER=YOURUSERNAME

10. Because of the user change we need to modify permissions for files

sudo chown -R youruser:youruser /etc/transmission-daemon

sudo chown -R youruser:youruser /etc/init.d/transmission-daemon

sudo chown -R youruser:youruser /var/lib/transmission-daemon

11. To avoid error on relaunching the service type this

sudo nano /etc/systemd/system/multi-user.target.wants/transmission-daemon.service

12. change the user for yours

user=YOURUSERNAME

13. reload the systemctl file

sudo systemctl daemon-reload

14. Next we need to create the directory where the setting.json file will be accessed by the transmission-daemon. Then we need to create a symbolic link (ln) back to the settings file we have already edited, update "username" with the relevant username. (If don’t do this then transmission will create a default file in its place)

sudo mkdir -p /home/username/.config/transmission-daemon/

sudo ln -s /etc/transmission-daemon/settings.json /home/username/.config/transmission-daemon/

sudo chown -R username:username /home/username/.config/transmission-daemon/

15. restart service

sudo service tranmission-daemon start

16. Now you can check the webui on your localhost

your_pi_address= 192.168.*.* or localhost

http://your_pi_address:9091

Do not set the user to root for transmission as this will involve a lot of security issues!

STEP 8: The Next Few Steps Are for the BarracudaDrive and Sync - Just Optional

BarracudaDrive

First type this in terminal:

"The following text box contains all required commands for installing or upgrading FuguHub (BD). Click the text box below, copy (CTRL-C), and paste into your SSH window."

pushd /tmp/;rm -f install.sh;wget FuguHub.com/releases/raspberrypi/install.sh;chmod +x install.sh;sudo ./install.sh;popd

Configuring:
sudo service bdd stop
sudo service bdd start
sudo service bdd restart

Use su-
sudo su bd

step into your HDD folder

cd /YOUHDDFOLDER/

create a folder for BarracudaDrive

sudo mkdir BD_FOLDER

make your permission changes for bd user

sudo chown bd:daemon /YOURHDDFOLDER/BD_FOLDER

need to create a soft link in the BD directory

pi@raspberrypi ~ $ sudo su bd

bd@raspberrypi /home/pi $ cd /home/bd/disk/

bd@raspberrypi ~/disk $ rm HDD_FOLDER

bd@raspberrypi ~/disk $ ln -s /HDD_FOLDER/BD_FOLDER /HDD_FOLDER


Right now you can map your drive folder in Windows, Mac and Linux as Webdav folder.

Example how to map for Windows and Mac:

To check your file server: go to web browser and type it:

http://RASPBERRY_PI_ADDRESS/fs

Now, you have the BarracudaDrive on your Raspberry Pi. More info about BarracudaDrive here.

STEP 9: Only Thing's Left Is the Sync

Resilio Sync (Bittorrent Sync)

To synchronize your files with other persons or just to sync a folder with another device use Sync.
Installation:

if you haven't done this a while the do: sudo apt-get update && sudo apt-get upgrade

1. sudo nano /etc/apt/sources.list.d/btsync.list

2. put these into the file:

deb http://debian.yeasoft.net/btsync wheezy main contrib non-free

deb-src http://debian.yeasoft.net/btsync wheezy main contrib non-free

3. import the key:

sudo gpg --keyserver pgp.mit.edu --recv-keys 6BF18B15

sudo gpg -armor --export 6BF18B15 | sudo apt-key add -

4. install

sudo apt-get update

sudo apt-get install btsync

During the installation you will have to choose your options, here are some of you may need:

default port: you can choose whatever you like: e.g.: 88024 all other things except password you can leave as the installer says.

Note: if somethings happen: sudo dpkg-reconfigure btsync you can reconfigure your btsync.

5. to use: browser

http://YOUR_PI_ADDRESS:Port

You can choose what devices you want to connect with or you can create a 3 days link for sharing.

More information about Sync here.

STEP 10: Enjoy Your TorrentBox With a Lot of Extras :)

14 Comments

Please Provide The Clone of Your SD Card.Change Your Credentials Before Uploading. Its Taking Too much Time to Make my Own.

What do you mean that is taking too much time? What is the problem with the SD card?

I'm Trying to install Open VPN. its Taking too much time to Generate Keys. It would be Great if anybody Can Provide Completed Disk Image of the Torrent Box.

I did probably the same but using pc. And lot of hdds (20+tb). + i upgraded transmission client for using it like home theatre. If someone need webui - i can share

(1. Added link extracted from source url tracker.
2. On "abaut torrent" tab added iframe with autoload tracker page
3. On files tab added direct link to file. File accesible via apache http local server
4. On files tab added link to php script player. Work like youtube on local storage. For striming used vlc plagin
5.+ php script)

hi prototype

plz i need webui can you help me and send to me all steps , video tutorial or send me steps by email xfivepointzer0@hotmail.com

thx

On included screenshots what was modified. On zip archive webUI + php file

for this work youll need

Basic

1. unzip and replace your standart webUI

2. will work url to tracker and iframe(note that some trackers blok iframe)

Advanced

3. Install APACHE web server

4. Create symlink on your www folder to disk folders. when you'll enter in browser http://your_server_ip/disk you\ll get contest of disk

5.3.png urls from file tab will work

5.1 in this step using VLC (videolan.org) player you can directly watch your moovies via http

Advanced 2

6. add php support to apache

7. Place index.php to www folder

8. test and have fan

How did you add power to the hard drive?

I used a WD PiDrive cable which supplies the power both for the HDD and the Pi.
The cable managed to distrubute the power, it connects with SATA to the HDD and connects USB to the Pi and the output made for micro USB that you can connect any 5V adapter.
You can find it here: http://wdlabs.wd.com/products/cable-pidrive/

erm this is just an enquiry, what exactly does a torrentbox do, but what puzzles me is what are the possibilities that this device offers.

and also very nice project :)

it will give a chance to make your raspberry as a torrent server which can run 24/7 and of course with web UI for transmission. With Barracuda you get a file server and with Sync you can synchronize files between other devices. I use it when it downloads something after the Sync share those files with another computer.
And thanks :)

oh so essentially it is like a simple remote storage system for all files which i store on it and i can use it later.

i built a pirate box for my class so me and all my friends can share music movies and pictures by connecting to it ,without internet.but only for a certain area.

is it something like that ,as you said can be accessed from anywhere, i really wish i had something like that for myself so i don't depend on cloud services.

Thanks :)

Exactly :) that pirate box should be nice.

Your welcome :)

Great Job!!! Definitely gonna try this :)

Thanks :)