Install Transmission Web UI on Remote Server

This tutorial will show you how to Install Transmission Web UI on Remote Server. Web UI can be useful if you are using torrents for downloading files over Internet.

Also, this will be much more easier way for managing your torrents on your remote server.

There is an application Transmission Remote on Google Play Store where you an add your server and manage torrents from your Android phone.

Install Transmission Web UI on Remote Server

1. Check for updates

Check if there are any new updates for your system:

sudo apt-get update

2. Install Transmission

To install Transmission run following command:

sudo apt-get install transmission-cli transmission-common transmission-daemon

Note: This will install Transmission client without user interface which you don’t need on a remote server

3. Create directories for Transmission Downloads

I will create directories inside web server directory so I can download files when download is finished.

Download directory should be protected from unauthorized access if it is located on web server.

To secure your downloads directory on web server, you can use our tutorials about Apache Authentication:

Alternatively, you can download your files to home directory on remote server and later download it with some other method.

cd /var/www/html
mkdir transmission

This one directory is enough for Transmission to work, but if you want prettier structure, you can add a few more directories

cd transmission
mkdir completed incomplete torrents

Note: This way you can sort Incomplete torrents from Completed and save torrent files in separate folder

4. Configure users permissions

You need to add your user to transmission group to access the files

sudo usermod -a -G debian-transmission <username>

Note: Replace <username> with your user

Now we need to change ownership over Transmission download folders

If you made only one folder for downloads, run:

sudo chgrp debian-transmission /var/www/html/transmission
sudo chmod 775 /var/www/html/transmission

If you made folders for completed, incomplete and torrents, run:

sudo chgrp -R debian-transmission /var/www/html/transmission
sudo chmod -R 775 /var/www/html/transmission

5. Moving Default Transmission Settings

The next thing we are going to do is to relocate settings.json file from default transmission-daemon directory to avoid problems if the file gets rewritten accidentally.

Go to

cd /etc/transmission-daemon

And make a backup of the original settings.json file

sudo cp -a settings.json settings.json.default

Now we’ll create directory for settings.json file and add required permissions:

mkdir /home/username/.config/transmission-daemon
sudo cp -a /etc/transmission-daemon/settings.json transmission-daemon/
sudo chgrp -R debian-transmission /home/<username>/.config/transmission-daemon
sudo chmod -R 770 /home/<username>/.config/transmission-daemon

After that, remove settings.json file from /etc/transmission-daemon and make a link to a new setting file in users home directory:

cd /etc/transmission-daemon
sudo rm settings.json 
sudo ln -s /home/username/.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

6. Configuring Settings File

To edit Transmission settings, edit settings.json file in your home directory:

nano /home/<username>/.config/transmission-daemon/settings.json

Here you can set up configuration you want.

Default username and password for web interface is transmission, change that right away for security reasons.

Lines you should change are:

    "download-dir": "/var/www/html/transmission",
    "incomplete-dir": "/var/www/html/transmission/incomplete",
    "incomplete-dir-enabled": false,
    "peer-port": <port>,
    "rpc-authentication-required": true,
    "rpc-bind-address": "",
    "rpc-enabled": true,
    "rpc-password": "<password>",
    "rpc-port": <port_for_transmission>,
    "rpc-url": "/transmission/",
    "rpc-username": "<username>",
    "rpc-whitelist": "*.*.*.*",
    "rpc-whitelist-enabled": true,
    "umask": 2,


Below are explanations for each line you should change:


download-dir: Path to directory where torrent files will be downloaded (transmission if you created only one file for downloads, completed if you created three directories for sorting files)

incomplete-dir: Should have path to incomplete torrents directory (Example: /var/www/html/transmission/incomplete)

incomplete-dir-enabled: Should have value true if you created incomplete folder or false if you don’t want to use it

peer-port: Enter port number on which peers will connect to you (All ports used in this file should be open on your router)

rpc-password: Enter password you want to use for login on Web UI (Password will be converted to SHA1 when you save configuration file)

rpc-port: Enter port number on which Transmission will be running (Default: 9091)

rpc-username: Enter username for login on Web UI

rpc-whitelist: Enter *.*.*.* if you want to allow login from all IP addresses or specific addresses separated by comma if you want to restrict access (Example:,

unmask: 2 (Default is 18, this should be changed to have full access to files created by Transmission)

Add following lines after unmask for torrents if you created directory earlier in this tutorial:

watch-dir: Should have path to torrents directory (Example: /var/www/html/transmission/torrents)

watch-dir-enabled: Should have value true if you created torrents folder or false if you don’t want to use it

You can configure other options to suit your needs.

When you’re finished, save file and reload transmission to apply changes:

sudo service transmission-daemon reload

Thats all, you can now visit your Web UI and try it


For more information about Transmission, visit their official website

One thought on “Install Transmission Web UI on Remote Server

  • March 11, 2016 at 04:43

    from someone still cutting his linux teeth, thank you. Very good.

    Sent from Google Chrome 48.0.2564.95 Google Chrome 48.0.2564.95 on Android 5.1.1 Android 5.1.1

Leave a Reply

Your email address will not be published.