Nerdy Notes

The Why

This page is a technical reference regarding the services, configurations, plugins, and themes used to run this site. Hopefully, it’ll save you some pain and frustration as I’ve spent a lot of time learning this stuff and getting this site to work correctly.

The main purpose in creating this site in this manner, is to give me full and complete control over where my data is stored and shared, as well as how it’s displayed on social media. Most importantly, I wanted to be able to self host my own content – photos, videos, as well as articles rather than relying on third party platforms like YouTube, Instagram, Facebook, Twitter, etc.

I decided to build this site using WordPress due to it’s widespread reach and support throughout the web. Unfortunately, too many WordPress services, plugins, and add-ons charge heft annual fees. I much prefer to buy a plugin outright and not pay any monthly fees – I make an exception for hosting and CDNs because bandwidth has an ongoing cost.


The Technical Stuff

Termius: This is a free and easy to use terminal client that works well on iPad and MacOS


OpenLiteSpeed WordPress Droplet on Digital Ocean: There are two major WordPress droplets on Digital Ocean. One is a straight Ubuntu droplet and the other is OpenLiteSpeed. I’ve extensively tested both, and OpenLiteSpeed runs smoother and has a built in cache system that makes a noticeable difference. Furthermore, it comes with HTTP/2 enabled by default (it’s more better gooder). Cost is about $6-7 a month. The droplet is $5, backups are $1, and I have a few snapshots in case I need to roll back to a previous state since I tinker a lot.


Edit php.ini file to allow larger uploads: Editing the php.ini file is relatively easy, and there are plenty of pages on the web that describe what to edit. What was an absolute pain to figure out was where exactly OpenLiteSpeed stores the php.ini file. I ended up reading about it on some forum. At the time of this writing, PHP is version 7.4, my guess is as that number changes, then so will the directory. However, this is where I found the php.ini file nonetheless.

/usr/local/lsws/lsphp74/etc/php/7.4/litespeed/php.ini

After you find the file, you’ll need to edit some values within. I found this page here which gave me a starting point. I ended up setting my time out and upload limits quite large so that I wouldn’t have any problem importing an already existing site. I also raised the memory limit to 256M.


Add a swap file / increase virtual memory to Ubuntu: The default install from the droplet doesn’t have enough memory to allow the website to continue to run smoothly. You could spend more for a more powerful VM, or utilize a swap file / virtual memory. Here’s the commands I used in order to accomplish this (cut and pasted from the link in the heading to this section):

free -m
mkdir -p /var/swapmemory
cd /var/swapmemory
#Here, 1M * 2000 ~= 2GB of swap memory
dd if=/dev/zero of=swapfile bs=1M count=2000
mkswap swapfile
swapon swapfile
chmod 600 swapfile
echo "/var/swapmemory/swapfile none swap sw 0 0" >> /etc/fstab
#cat /proc/meminfo
free -m

B2 Cloud Storage: Backblaze B2 storage is an affordable place to host large files that I don’t want filling up my limited server space. It’s pricing model is easy to understand and relatively inexpensive compared to the competition. You can see their pricing here.


Veen: This is the theme I am currently using for this blog. There’s things I like, and quite a few I don’t. It’s decent enough and fairly lightweight. It works well enough and it’s paid for, so I use it. I would prefer if the featured image on articles displayed without cropping on the front page and blog articles, but that’s the exception for themes not the norm. Would I recommend it? Meh.


Plugins

Akismet Anti-Spam: It’s free and blocks spammers. I haven’t had any issues with it at all.


Disable Generate Thumbnails: This is probably the most controversial section of this page. WordPress and themes generate a ridiculous amount of lower resolution images for everything from thumbnails to the media gallery to any and all images displayed on a web page. While this makes very good sense for reducing page load times, it has many disadvantages too:

  1. Lowers the quality fo the images displayed – horrible on a photography blog like this one.
  2. Creates thousands of images that are never used.
  3. Wastes tons of precious server space.

I optimize my own images using Lightroom. I want them displayed on this website in high resolution – even if that slows down the page. It’s a sacrifice that I’m willing to make in order to preserve quality. The thumbnails for image galleries are created with Justified Image Grid, so I have no need for WordPress to create tons of images automatically in addition to my preferred plugins. The only previews I want created are for the backend media library within WordPress. Here’s a screen shot of the options I have enabled/disabled within the plugin:


Justified Image Grid (JIG): This is the photo gallery plugin I use all over this site. It creates high quality thumbnails for galleries in its own cache separate from the default WordPress thumbnails – hence why I use the above referenced Disable Generate Thumbnails plugin. JIG has PhotoSwipe as an option (the best lightbox ever). One really awesome aspect of it, is that it’s a one time purchase of $27.


Presto Player: As of March 5th, 2021, I do not recommend this plugin. I’m using it for self hosted videos, but it’s not really necessary. Also, currently there are quite a few bugs. I purchased it during their soft release – early adopter sale. I’ve got lifetime support with it and can use it on a number of sites going forward. I hope it wasn’t a mistake as it has a lot of neat features. Stay tuned for updates…


Yoast: This is a plugin that I basically use in auto mode and ignore most of what it does. It helps with site maps, cover images for social media, etc. It’s free. It doesn’t seem to hurt anything. So, I use it.


Site Kit by Google: I mainly use this this to integrate with Google Analytics. Like many other plugins, it’s free and works.


WPvivid Backup Plugin: This is a free plugin that backs up my WordPress to Google Drive. I mainly use this for a secondary backup – just in case something happens with Digital Ocean or my installation completely gets corrupted.


LiteSpeed Cache: There’s many caching plugins available for WordPress, but this one comes built in with the OpenLiteSpeed droplet and works great! I use most if not all of the available options, and it really speeds up the site! No other caching plugins needed. I did turn off lazy loading of images though as it seems to wreak havoc with Justified Image Grid.


Quick.Cloud: It’s an inexpensive CDN that is integrated with LiteSpeed Cache. It’s very affordable, and what I’m using for this site. It’s less annoying than CloudFlare, and seems to be worth the low price I’m paying. It’s a pay as you go model. I estimate that it’ll cost me less than $20 a year. The only thing that it’s not caching and delivering for me is video. For that, I’m relying on Backblaze B2 (see above).


Miscellaneous

Image Optimization Settings: I’ve tested out many settings and many different compression programs / algorithms. For any article newer than 3/13/21, most images displayed on this site will be resized to 2400 pixels wide and 40% compression as exported by Adobe Lightroom. Screen sharpening will be set to standard.