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 2: https://www.adafruit.com/products/2358
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)!
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
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:
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.
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
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)
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
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
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
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
sudo service bdd stop
sudo service bdd start
sudo service bdd restart
sudo su bd
step into your HDD folder
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:
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.
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 -
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
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.