This will allow you to install and use a headless version of Transmission 2.03 on a ubuntu or centos OS and provide a remote RPC access to control the transmission daemon.

Transfer the source file of Transmission 2.03 to the server:

Download from our mirror: transmission-2.03.tar.bz2

For ubuntu:

sudo apt update
sudo apt upgrade
sudo apt install  gettext gcc make intltool curl m4 automake libtool libssl-dev libssl1.0.0 build-essential libcurl4-gnutls-dev pkg-config libevent1-dev

For Centos 7:

yum update -y
yum install gettext gcc make intltool libevent2 libevent2-devel curl-devel gcc-c++ m4 automake libtool openssl-devel libssl1.0-dev

Now lets extract and compile transmission from source, enable daemon and disable gui:

tar xf transmission-2.03.tar.bz2 
cd transmission-2.03
./configure --enable-daemon --disable-gtk
make
make install

Add the configuration file and downloads folder for transmission:

mkdir -p /var/www/html/Downloads
mkdir -p /home/somik/tr_config/
nano /home/somik/tr_config/settings.json

And add to the settings file:

{
    "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, 
    "dht-enabled": false, 
    "download-dir": "/var/www/html/Downloads", 
    "encryption": 2, 
    "incomplete-dir": "/var/www/html/Downloads", 
    "incomplete-dir-enabled": false, 
    "lazy-bitfield-enabled": true, 
    "lpd-enabled": false, 
    "message-level": 2, 
    "open-file-limit": 32, 
    "peer-limit-global": 240, 
    "peer-limit-per-torrent": 60, 
    "peer-port": 54476, 
    "peer-port-random-high": 65535, 
    "peer-port-random-low": 49152, 
    "peer-port-random-on-start": true, 
    "peer-socket-tos": 0, 
    "pex-enabled": false, 
    "port-forwarding-enabled": true, 
    "preallocation": 1, 
    "proxy": "", 
    "proxy-auth-enabled": false, 
    "proxy-auth-password": "", 
    "proxy-auth-username": "", 
    "proxy-enabled": false, 
    "proxy-port": 80, 
    "proxy-type": 0, 
    "ratio-limit": 2.0000, 
    "ratio-limit-enabled": true, 
    "rename-partial-files": true, 
    "rpc-authentication-required": true, 
    "rpc-bind-address": "0.0.0.0", 
    "rpc-enabled": true, 
    "rpc-password": "AUTOGENERATED_ON_START-UP", 
    "rpc-port": 8080, 
    "rpc-username": "AUTOGENERATED_ON_START-UP", 
    "rpc-whitelist": "127.0.0.1,*.*.*.*", 
    "rpc-whitelist-enabled": true, 
    "script-torrent-done-enabled": false, 
    "script-torrent-done-filename": "", 
    "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": 18, 
    "upload-slots-per-torrent": 14
}

The above line “rpc-whitelist”: “127.0.0.1,*.*.*.*”, allows everyone on the internet to connect to your transmission, and it is over an unencrypted network so ensure it is either behind a firewall or it is changed to “rpc-whitelist”: “127.0.0.1,YOUR.IP.ADDRESS.HERE”, for security reasons.

Finally, provide it with the settings for it to run:

/usr/local/bin/transmission-daemon -a 127.0.0.1,*.*.*.* -g "/home/somik/tr_config/" -w "/var/www/html/Downloads" -p 8080 -P 12345 -t -u "USERNAME" -v "PASSWORD"