Welcome back to Part 4 of the series “How-to setup a fully automated Media Portal“. Next up we will Install a torrent client (Transmission) and the Media Library CouchPotato. After the Installation you will be able to manage your Movies via the Web-Interface of CouchPotato and also automatically schedule downloads through CouchPotato. Transmission will then complete the downloads and in the post Processing activities CouchPotato will rename and move the new Movies into your dedicated Movie File-Structure.
- Install Transmission
- configure transmission
- Install CouchPotato
- configure Post-Processing
Transmission
Transmission is a completely free open-source application for Linux platforms and ideal for Servers with minimal recourses. The transmission web interface is a thin client featured-rich interface with a pleasant design.
Easy: Transmission is designed for easy, powerful use. We’ve set the defaults to “Just Work” and it only takes a few clicks to configure advanced features like watch directories, bad peer blocklists, and the web interface. When Ubuntu chose Transmission as its default BitTorrent client, one of the most-cited reasons was its easy learning curve.
Lean: In separate benchmarks, Linux Format and Lacrocivious both found Transmission to use less CPU than any other GUI client. It even used less CPU than some non-GUI clients. Transmission also has the lowest memory footprint of any major BitTorrent client.
Native: Unlike many cross-platform applications, Transmission integrates seamlessly with your operating system. The Mac OS X interface is written in Objective-C and uses Growl notifications and dock badging to keep you informed. The GTK+ interface has been carefully written to follow the GNOME Human Interface Guidelines. If your desktop supports popup notifications, desktop sounds, and a system tray, the GTK+ interface will make use of them.
Powerful: Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, µTP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more.
Step 1: Install dependencies
first we need to install a couple of dependencies. Go ahead and execute the following command:
|
1 |
sudo aptitude -y install software-properties-common |
Step 2: add transmission to your repository
Transmission is ready available in Ubuntu repository. However, Ubuntu repository is usually a bit slow on updating versions. Therefore we going to add the PPA repository as described below. Execute the following command:
|
1 |
sudo add-apt-repository ppa:transmissionbt/ppa |
and that looks like this:

Step 3: Install transmission
now lets update the package list and Install transmission with the following commands:
|
1 2 |
sudo apt-get update sudo apt-get install transmission-cli transmission-common transmission-daemon |
Step 4: setup permissions
transmission has the characteristic to own files with its own user called (debian-transmission). There is many ways how to handle this but I want to make it as easy as possible for the start. So for now we just add our own user to the debian-transmission group. And all future appz will run under that same user so they can access the files. If you want you can create them comfortable via the webmin GUI (under System -> Users and Groups -> local Groups) or just execute the below commands:
|
1 |
sudo usermod -a -G debian-transmission frontrow |
Next change the Ownership of our download folder to reflect the above changes:
|
1 2 |
sudo chown -R debian-transmission:debian-transmission ~/downloads sudo chmod -R 775 ~/downloads |
your download folder should now have the permissions as below:

Step 5: moving the config file
The transmission config file. is located by default in /etc/transmission-daemon/settings.json. However we are going to move this file to our home-directory because if you restart the transmission-daemon all your saved settings will fall back to default which gets pretty annoying. In order to protect your settings from being accidentally re-written we will store the file in a safe location and creating a symbolic link to it inside /etc/transmission-daemon – This way, even if Transmission accidentally overwrites settings.json all you have to do is re-create the symbolic link.
First create a new directory in called .config and copy the file over
|
1 2 3 4 5 |
mkdir ~/.config mkdir ~/.config/transmission-daemon sudo cp -a /etc/transmission-daemon/settings.json ~/.config/transmission-daemon/ sudo chgrp -R debian-transmission ~/.config/transmission-daemon sudo chmod -R 770 ~/.config/transmission-daemon |
Next remove /etc/transmission-daemon/settings.json and create a symbolic link in the /etc/transmission-daemon folder:
|
1 2 3 4 5 |
cd /etc/transmission-daemon sudo rm settings.json sudo ln -s ~/.config/transmission-daemon/settings.json settings.json sudo chgrp -R debian-transmission /etc/transmission-daemon/settings.json sudo chmod -R 770 /etc/transmission-daemon/settings.json |
Step 6: Configure transmission
Now we will edit the config file via ~/.config/transmission-daemon/settings.json. First lets make a Backup.
|
1 2 |
cd ~/.config/transmission-daemon sudo cp ~/.config/transmission-daemon/settings.json settings.json.orig |
Edit the file with your favourite editor
|
1 |
sudo nano ~/.config/transmission-daemon/settings.json |
The default rpc-username and password is “transmission”.
Change it to whatever you want (any password will work). After next restart the password will be rewritten in SHA1 encrypted format for security reasons. Change the following entries: (change the user “frontrow” to whatever user you configured).
|
1 2 3 4 5 6 7 |
“download-dir”: “/home/frontrow/downloads/completed/movies”, “incomplete-dir”: “/home/frontrow/downloads/incomplete”, “incomplete-dir-enabled”: true, “rpc-authentication-required”: false, "rpc-whitelist": "127.0.0.1,*.*.*.*", "rpc-whitelist-enabled": true, "umask": 2, |
When done add the following for the watch-folder at the end of the file:
|
1 2 |
“watch-dir": "/home/frontrow/downloads/tor", "watch-dir-enabled": true |
Reminder: don’t place a comma at the end of the file.

When completed editing save the file and reload the daemon.
|
1 |
sudo service transmission-daemon reload |
Example settings.json file.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
{ "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": "/home/frontrow/downloads/completed/movies", "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": "/home/frontrow/downloads/incomplete", "incomplete-dir-enabled": true, "lpd-enabled": false, "max-peers-global": 200, "message-level": 2, "peer-congestion-algorithm": "", "peer-id-ttl-hours": 6, "peer-limit-global": 200, "peer-limit-per-torrent": 50, "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": "frontrow", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "admin", "rpc-whitelist": "127.0.0.1,*.*.*.*", "rpc-whitelist-enabled": true, "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": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": false, "umask": 2, "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14, "utp-enabled": true, "watch-dir": "/home/frontrow/downloads/tor", "watch-dir-enabled": true } |
Step 6: starting & stopping transmission
Starting and stopping Transmission daemon is pretty straight forward. You can do so using the following commands:
|
1 2 3 |
sudo service transmission-daemon reload sudo service transmission-daemon start sudo service transmission-daemon stop |
Step 7: Shortcuts
For convenience, you could create bash aliases as described in one of my older posts – for example add the following in your ~/.profile
|
1 2 3 4 |
# Transmission alias transstop='sudo service transmission-daemon stop' alias transstart='sudo service transmission-daemon start' alias transreload='sudo service transmission-daemon reload' |
Restarting the the daemon (while it is already running) would rewrite the Transmission settings files to its original state. In other words, restarting the Transmission daemon would reset all the custom settings you saved. If Transmission is running, always reload the service.
Step 8: Web Interface
Time for a peak at the Web Interface. Open your browser and point it too http://<servername or IP>:9091 and you will get the following screen:

Step 9: transmission summary
I have not covered all angles of the configuration but I am sure you will be able to figure them out yourself. For example if you want to make it more secure then change the setting in rpc-whitelist and over only your Subnet. Feel free to change the default port to a non-standard port, also make sure you forward the ports in your Router correctly. Now you should have a working bit-torrent client you can already try it out by manually uploading torrent files. Next up lets install CouchPotato.
DISCLAIMER:
This post is for informational purpose only. The Author in no way supports or encourages illegal download of copyrighted material.

gizmojunkee.com reviews, how to's, tech-savvy gadgets around Apple, Linux and Windows goodies 
