Previously I did a post on how to turn your Raspberry Pi into a NAS which is awesome. But whats even better is when you install Transmission on Raspberry Pi with the NAS feature. This means you can have the Raspberry Pi handle downloading your much loved “legal” media & then put it on the external HDD you are using for your NAS. You can also set it up so that you can access Transmission on Raspberry Pi from anywhere in the world with a internet connection. This means when your friend is telling you about this amazing TV show that you must start watching, you can just log right in to Transmission on the spot with your smart phone & start the download. Then when you get home you can jump on the couch start watching it right away!

Ok, have I convinced you that this is a awesome combo yet? If not… this probably isn’t the blog for you. 😛

Before you start: Make sure your Pi is up to date.

Lets install Transmission

sudo apt-get update
sudo apt-get install transmission-daemon

Now create some directories on your NAS Hard Drive for the incomplete & completed downloads to be stored.

sudo mkdir -p /media/NASHDD/download_inprogress
sudo mkdir -p /media/NASHDD/download_complete

Set permissions so that we don’t have any problems & everything runs smooth. (adding the default debian-transmission user to the pi user group)

sudo usermod -a -G pi debian-transmission

The final step is to setup the configuration file for Transmission. (we will be using Nano for this. If you aren’t familar with Nano check out their User Guide)

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

Most of the parameters in the conf file are self explanatory but I have included a copy of mine for you to use as an example below. (I have highlighted the important changes you need to make)

{
“alt-speed-down”: 50,
“alt-speed-enabled”: false,
“alt-speed-time-begin”: 540,
“alt-speed-time-day”: 127,
“alt-speed-time-enabled”: false,
“alt-speed-time-end”: 1020,
“alt-speed-up”: 50,
“bind-address-ipv4”: “0.0.0.0”,
“bind-address-ipv6”: “::”,
“blocklist-enabled”: false,
“blocklist-url”: “http://www.example.com/blocklist”,
“cache-size-mb”: 4,
“dht-enabled”: true,
“download-dir”: “/media/NASHDD/download_complete”,
“download-limit”: 100,
“download-limit-enabled”: 0,
“download-queue-enabled”: true,
“download-queue-size”: 5,
“encryption”: 1,
“idle-seeding-limit”: 30,
“idle-seeding-limit-enabled”: false,
“incomplete-dir”: “/media/NASHDD/download_inprogress”,
“incomplete-dir-enabled”: false,
“lpd-enabled”: false,
“max-peers-global”: 200,
“message-level”: 2,
“peer-congestion-algorithm”: “”,
“peer-limit-global”: 240,
“peer-limit-per-torrent”: 60,
“peer-port”: 51413,
“peer-port-random-high”: 65535,
“peer-port-random-low”: 49152,
“peer-port-random-on-start”: false,
“peer-socket-tos”: “default”,
“pex-enabled”: true,
“port-forwarding-enabled”: false,
“preallocation”: 1,
“prefetch-enabled”: 1,
“queue-stalled-enabled”: true,
“queue-stalled-minutes”: 30,
“ratio-limit”: 2,
“ratio-limit-enabled”: false,
“rename-partial-files”: true,
“rpc-authentication-required”: true,
“rpc-bind-address”: “0.0.0.0”,
“rpc-enabled”: true,
“rpc-password”: “*************”,
“rpc-port”: 9091,
“rpc-url”: “/transmission/”,
“rpc-username”: “sammit.net”,
“rpc-whitelist”: “127.0.0.1”,
“rpc-whitelist-enabled”: false,
“scrape-paused-torrents-enabled”: true,
“script-torrent-done-enabled”: false,
“script-torrent-done-filename”: “”,
“seed-queue-enabled”: false,
“seed-queue-size”: 10,
“speed-limit-down”: 100,
“speed-limit-down-enabled”: false,
“speed-limit-up”: 5,
“speed-limit-up-enabled”: true,
“start-added-torrents”: true,
“trash-original-torrent-files”: false,
“umask”: 0,
“upload-limit”: 100,
“upload-limit-enabled”: 0,
“upload-slots-per-torrent”: 14,
“utp-enabled”: true
}

Once you have done this restart the Transmission service.

sudo service transmission-daemon reload

Now you can open your web browser & go to http://ipaddressofthepi:9091 login with the username & PW you set in the config file & you are good to go!

Have fun & enjoy 🙂