Install Transmission Bittorrent on CentOS 7

Today we focus our attention on Transmission Bittorrent client. Transmission is a cross-platform BitTorrent client that is open source, easy and lean. It’s lightweight resource consumption makes it the perfect torrent client for a VPS. We will be completing our install on a VM01 specification running CentOS 7.

To start, we enable the geekery repo which allows us to fetch the files and dependencies easily via yum. As of writing, 7.1 is the latest release, so we base our guide and commands on that. Please visit http://geekery.altervista.org/geekery/el7/x86_64/repoview/geekery-release.html for the latest version information.

Firstly, we fetch the repository that contains the files we need.

wget http://geekery.altervista.org/geekery/el7/x86_64/geekery-release-7-1.noarch.rpm

Once we have the file, assuming you’ve stayed in the same directory, run the following to install the geekery repo.

yum install geekery-release-7-1.noarch.rpm

Now that we have the repo installed, we have the files available to us and we can install Transmission Bittorrent Client with the following command. Answer yes to any questions regarding security keys.

yum install transmission transmission-daemon

Start the transmission service by running the following to ensure everything is installed correctly.

systemctl start transmission-daemon.service

Subsequently stop the service so that we may edit the configuration file (If required)

systemctl stop transmission-daemon.service

Now, we make changes to the configuration file permitting us access to the remote web interface. You may skip this step if you don’t want to enable the web interface. The remote web interface allows you to manage your torrents from any device with a web browser.

vi /var/lib/transmission/settings.json

Here’s my configuration file, it’s quite self explanatory. Tweak it to how you need it and then save the file. I’ve made the important changes bold.

[root@plex transmission]# cat /var/lib/transmission/settings.json
{
    "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": "/var/lib/transmission/Downloads",
    "download-queue-enabled": true,
    "download-queue-size": 5,
    "encryption": 1,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/var/lib/transmission/Downloads",
    "incomplete-dir-enabled": false,
    "lpd-enabled": false,
    "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": true,
    "preallocation": 1,
    "prefetch-enabled": true,
    "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": "YOUR VPS IP ADDRESS",
    "rpc-enabled": true,
    "rpc-password": "ENTER A PASSWORD",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "ENTER A USERNAME",
    "rpc-whitelist": "ENTER YOUR HOME IP ETC",
    "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": 18,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true
}

Start the daemon to write our new changes. You should then be able to access the remote web interface at http://yourvpsip:9091, login with the username and password you chose in the configuration file.

systemctl start transmission-daemon.service

If you have problems accessing the page, check your firewall (Disable completely for testing) and ensure there are no errors in your config file formatting etc.

Install Plex Media Server on CentOS 7

Today we will cover the installation of Plex Media Server on a Virtual6 VPS with CentOS 7 as the base operating system.

For this tutorial we have selected a VM01 resource bundle, as we do not intend to transcode video (Which requires much  more CPU and resources). To escape the need for transcoding, we can be specific in the file types we use, ensuring they’re compatible across all of our devices.

Plex allows you to aggregate all your personal media and access it anywhere you go. Enjoy your own media on all your devices with the Plex Media Server and ensure you have reliable access and consistent performance by installing it on a Virtual6 VPS.

To start, deploy a VPS with CentOS 7 or utilise an existing one. Start a terminal session and login as root via SSH.

Run the command below to update your system and install wget if required.

yum update && yum install wget

Visit https://www.plex.tv/downloads/ to obtain the latest installer URL. As of writing, that would be https://downloads.plex.tv/plex-media-server/1.5.6.3790-4613ce077/plexmediaserver-1.5.6.3790-4613ce077.x86_64.rpm. Remember, this is correct for CentOS 6 or 7 only at the time of writing. Use wget to fetch the required files.

wget https://downloads.plex.tv/plex-media-server/1.5.6.3790-4613ce077/plexmediaserver-1.5.6.3790-4613ce077.x86_64.rpm

We can use yum to install the plexmediaserver repo as below, remember to check the filename below as yours could be different.

yum install plexmediaserver-1.5.6.3790-4613ce077.x86_64.rpm

Run the command below to ensure Plex starts when your VPS does, otherwise you will have to login and manually start Plex each time your VPS reboots.

systemctl enable plexmediaserver.service && systemctl start plexmediaserver.service

Plex Media Server is configured to be accessible locally only, which is fine when you’re running a virtual desktop with a browser, but if you’re not running a desktop to save on resources then we can create an SSH tunnel to manage Plex with the browser on your local computer. Open a new terminal and run the following.

ssh root@YOURVPSIPADDRESS -L 8888:localhost:32400

From there you should be able to open up http://localhost:8888/web/ from your local web browser and see the Plex Media Server configuration page. You need to first create a free account at https://www.plex.tv/, then configure everything to your requirements.