How to score 100/100 on Google PageSpeed Insights

Who does not like blazing fast websites, that take no time to load and always serve great content. There are websites that have great design and content but tend to be slow due to many factors, for example loading images and other assets that are not optimized for the web.

Continue reading “How to score 100/100 on Google PageSpeed Insights”

Rust on Mac

Rust is systems programming language gaining popularity due to its “safe, concurrent, practical language”, being memory safe while maintaining performance is the reason why so many people are adopting it as their systems language of choice, winning the first place for “most loved programming language” in the Stack Overflow Developer Survey in 2016 and 2017.

Continue reading “Rust on Mac”

RuTorrent on Raspberry Pi

After publishing RTorrent on Raspberry Pi, I did not have enough time to try anything new with the Raspberry Pi, I got requests later to get RuTorrent working with RTorrent on Raspberry Pi.

I decided to use a bash script based setup instead of step by step because it will end up having the same result but with better security measures as the script is written by a much-experienced person and maintained actively.

I would recommended doing this on a clean install for best result.

This setup will contain

  1. libtorrent/rtorrent (Latest/Compiled)
  2. SSH port reassigned
  3. VSFTPD (FTP client) random port assigned
  4. Webmin (Optional) (Admin interface)
  5. autodl-irssi
  6. rutorrent (Web UI)

Download the script

sudo bash -c "$(wget --no-check-certificate -qO - https://raw.githubusercontent.com/arakasi72/rtinst/master/rtsetup)"

Run the script

sudo bash rtinst.sh

The script would respond shown below

Raspbian GNU/Linux 8.0 (jessie)

Your Server IP/Name is 192.168.0.200

Is this correct y/n? 

Choose y

The next response would be to add a password to secure the web interface to the user pi

Set Password for RuTorrent web client
 Enter a password (6+ chars)
 or leave blank to generate a random one
 Please enter the new password:

The next response can take some time depending on the SD card speed and active tasks running in the background

No more user input required, you can complete unattended
 It will take approx 10 minutes for the script to complete

Updating package lists

The final response after the process

crontab entries made. rtorrent and irssi will start on boot for pi

ftp client should be set to explicit ftp over tls using port 48915

If enabled, access https downloads at https://192.168.0.200/download/pi

rutorrent can be accessed at https://192.168.0.200/rutorrent
rutorrent password as set by user
to change rutorrent password enter: rtpass

IMPORTANT: SSH Port set to 26828 - Ensure you can login before closing this session

The above information is stored in rtinst.info in your home directory.
To see contents enter: cat /home/pi/rtinst.info

To install webmin enter: sudo rtwebmin

PLEASE REBOOT YOUR SYSTEM ONCE YOU HAVE NOTED THE ABOVE INFORMATION

Note down the changed SSH and FTP port before exiting the SSH session, the script adds these information to a file named rtinst.info for later access.

ftp client should be set to explicit ftp over tls using port 43915
 If enabled, access https downloads at https://192.168.0.200/download/pi
 rutorrent can be accessed at https://192.168.0.200/rutorrent
 rutorrent password as set by user
 to change rutorrent password enter: rtpass
 ssh port changed to 21828

The script does even more, it adds various options and update functionality with the help of rtadmin

sudo rtadmin

It would respond with these options

Select from the following options:
 1.) rtgetscripts - update the rtinst scripts
 2.) rtadduser - add new user
 3.) rtremove - delete a user
 4.) rtdload enable - enable http downloads
 5.) rtupdate - up/down-grade rtorent/libtorrent
 6.) rutupgrade - upgrade to latest version of RuTorrent
 7.) rtwebmin - install webmin
 Enter option or q to quit

Doing this whole process manually would take a lot of steps and longer time, this script does more and simplifies, things like update, upgrade plugin management, thanks to arakasi72, the repository of the script is on GitHub

If you have more requests for such posts let me know in a comment or contact directly for feedback.