Behind My Websites Part 1: Backend Stack

Published on

Introduction

Welcome to my first series, where I will be discussing the backstory of all of my websites. (Thanks to some inspiration from @Not_Oles over at the LowEndSpirit forum 😉 )

In this article I’ll be focusing on the backend of my websites. This means all of the software and hardware (infrastructure) that runs “behind the scenes”. I hope you’ll find this series interesting, and please let me know your feedback in the comments.

Software Stack

Operating System

Let’s start off with the basics: the operating system. All of my websites currently run on Linux distributions (typically Ubuntu or Debian). The only website that ran on another OS was Unixfy.net, which used to be based on Umbraco, an ASP.NET CMS which only runs correctly on Microsoft’s IIS web server (which obviously only works on Windows Server). At the time of writing, Unixfy.net is now a Jamstack app deployed on Netlify (which is powered by Linux servers, to my knowledge).

I still have a few services, like my Active Directory cluster and Veeam deployments that run on Windows Server, but all of my websites are now on Linux.

Languages

Seeing as PHP remains an extremely popular language for web applications, it’s no surprise that the vast majority of my websites are powered by PHP. However, some of my sites, like landing pages, are simply static HTML – sans server side processing.

Web / Application Servers

Most of my websites are hosted on my personal ApisCP machine, which uses the Apache web server. I also have other sites hosted on one of my DirectAdmin shared hosting accounts, which uses the LiteSpeed Web Server. Some of my other web apps (like Confluence, share.unixfy.net, etc.) run inside of Docker containers and are reverse-proxied by Nginx. I use docker-compose to manage my Docker deployments.

I used to use Traefik and Caddy to reverse proxy, but it appears they aren’t well-liked in the Low-End hosting community. Not to mention, they are both relatively annoying to configure and slow compared to Apache or Nginx.

Exhibit A: Caddy is not well-liked in the LowEnd community.

Web Apps/CMS

Most of my dynamic websites, including this blog, are powered by the WordPress CMS. However, I also regularly use a variety of other software for various purposes:

  • Atlassian Confluence (docs.unixfy.net)
  • ProjectSend
  • Firefly-III
  • Pterodactyl Panel
  • YOURLS (go.unixfy.net)
  • Huginn (read more about how I used this here)
  • Blesta (my.unixfy.net)
  • Grav (network.unixfy.net)
  • OSticket (support.unixfy.net)
  • RainLoop
  • Linx-server (share.unixfy.net)
  • Strapi CMS

I’ve been trying to consolidate the different software I use for the sake of maintainability, but sometimes that is simply not possible 🙂

WordPress Themes and Plugins

As I am an an avid WordPress user, and I have been asked before about what themes and plugins I use, I’ll also list the main plugins I use on my WordPress sites.

Themes

  • Divi Theme
  • GeneratePress

I pretty much exclusively use these themes on all of my WordPress websites. For sites that need greater customization (or that will be edited by people with less technical experience), I usually go with Divi theme; otherwise I’ll go with GeneratePress. This blog uses the GeneratePress theme.

Plugins

  • Autoptimize
    • Good for optimizing website performance, caching assets
  • ManageWP Worker
    • I use ManageWP as a single place to manage all of my WordPress sites
  • OneLogin SAML SSO
    • Allows me to instantly log into all of my WordPress sites at once with my Active Directory credentials and Microsoft Azure AD
  • The SEO Framework
    • Pretty self explanatory
  • WP Mail SMTP
    • Make WordPress send email through my SMTP relay of choice, AWS SES (more on that below)
  • WP Super Cache
    • The best caching plugin I’ve found, and it’s super simple to boot!
  • Custom Adobe Fonts (Typekit)
    • WordPress doesn’t really natively support using Adobe Fonts, so this plugin provides a convenient way to integrate them.
  • GenerateBlocks, Ultimate Addons for Gutenberg
    • I find that these two plugins cover 90% of what I need in terms of layouts, and using blocks makes my sites load a lot faster than using a site builder like Divi.
  • Site Kit by Google
    • A super simple plugin for rapidly integrating each site with Google Analytics, Search Console, etc. I love the simplicity of this one.
  • UpdraftPlus
    • Great backup software with the best restore functionality out of all the free plugins. I usually run backups to Amazon S3 every night.

I install all of these plugins on nearly all of my websites. I put a lot of time into selecting and curating which plugins I choose to deploy, so I think this list is comprised of the best plugins available today. (Do note the list is not exhaustive: a few of my sites have plugins that I don’t universally deploy, typically because I need the plugin for some sort of specific purpose, e.g. Advanced Custom Fields.)

Hardware Stack

Infrastructure Providers

All of my websites are hosted on virtual servers (VPS) at various providers. I stick to HVM/Fully virtualized (e.g. KVM, VMware) servers because I believe there are greater privacy concerns to be had with paravirtualized (e.g. OpenVZ) servers. I used to use a dedicated server, but this wasn’t economical for me, considering how underutilized the server was.

This is a brief list of the providers I’ve used the most, for the longest, and which I overall just like:

  • Avoro
  • Amazon Web Services (Yup)
  • NexusBytes
  • HostHatch
  • ExtraVM
  • HotlineServers (read my review)
  • SkylonHost
  • InceptionHosting
  • Bakker IT

This list is far from exhaustive, but these are just the providers I’ve had the best experience with so far. And yes, I do use Amazon Web Services – in fact, at the time of writing, this blog is hosted on an EC2 instance.

SaaS/PaaS

In addition to the applications and sites I self-host, I also use some SaaS products – usually in situations where it’s not economical or feasible for me to host or build similar solutions myself.

  • HetrixTools – hosts my status page and automatically monitors most of my servers. Much cheaper to use the free plan, rather than building my own monitoring system.
  • Atlassian Cloud – I used to self-host Jira because I did not like Atlassian Cloud’s UI, but since the update to their UI a few months ago, I find myself using Atlassian Cloud somewhat often.
  • Amazon SES – SMTP relay for most of my services. The deliverability at SES is a lot better than competing solutions, and pricing is definitely unbeatable. One of the few instances where the Big 3 cloud providers excel both in features and pricing!
  • Amazon Route 53 & Cloudflare – authoritative DNS for all of my domains. Again, it’s cheaper to use their free (or very cheap) plans rather than trying to build an expensive DNS cluster on my own.
  • Netlify – all of my Jamstack websites are hosted here. I love the simplicity of the platform – I can just push updates to my website to a Git repo, and the website is automatically updated!
  • G Suite – hosting my primarily email account (at unixfy.me). I think Google’s collaboration features, especially Google Drive, haven’t been beaten by any of it’s competitors, which is why I still pay for G Suite.

Conclusion

You might now be wondering, why do you put so much time and effort into using tons of different things for your websites? The answer is simple: IT is one of my favorite hobbies, and I really enjoy learning about it.

Were you surprised by this post? Or maybe you were disappointed… let me know your thoughts in the comments. Thank you for reading!

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments