I have been hosting web sites on my home server since the early 1990s. At first, all the pages on these sites were made by hand without any sort of framework around them. In the early 2000s, I wrote a simple content management system (CMS) that allowed me to write the body of a page in almost plain-text, and the CMS would wrap that inside a template that I wrote separately to build a complete web page with graphics, menus, footers, and more. I then moved to using more complex, third-party CMS tools starting with Drupal, and somewhere around 2015 moving to Joomla! However, in 2022, the version of Joomla! that I was using was about to be no longer supported, so I started looking to upgrade to the latest version of the software. Unfortunately this came with a few large challenges.
First of all, the technologies used to create web sites had expanded drastically since my first venture into making them by hand. Since making a web site was something I only dabbled with from time to time as a personal interest, I had not followed the various advancements in the field in great detail. Therefore, by 2022, the way web sites were designed and operated had changed quite a bit. In order to make a web site that looked and felt modern, I started using templates and frameworks written by others, and tweaking them slightly. When moving to Joomla!, I bought a framework I liked for my web site at what I considered a fair price, and was able to figure out how to change the things I didn’t like about them to my satisfaction. The template worked well for me, and looked and felt modern, but the company that made it went out of business and the template was not updated to work with the newest version of Joomla! That meant that I would have to search, probably buy, and tweak a new framework for Joomla! Unfortunately, at this point the pricing of modern looking and operating frameworks was more geared to businesses than individuals meaning that they were subscription based or way more expensive than I was willing to pay for a hobby site.
The second issue I had with the new version of Joomla! was its performance. Even with a clean and basic installation of the software, web pages were taking several seconds to load. This was not a big deal in the 1990s and the Internet connection speeds at the time, but in current times I have become so accustomed to web sites loading almost instantaneously that a five second delay felt jarring and sluggish. Even with the help of the Joomla! community, I could not get the new version of Joomla! to operate in a way that was acceptable to me.
Finally, the way to import content into Joomla! did not fully support copying formatted data from another source and pasting it into Joomla! while keeping all the formatting. The pages you see on this web site are first written and formatted in another tool such as OneNote or Microsoft Word, which is my “master” copy, then copied and pasted into the CMS editor to transform into a web page.
For these reasons, I decided to try a different CMS for my web sites. The main goals for a CMS were:
- Support modern technologies, and seamlessly adjust to various screen sizes and devices.
- Allow easy creating of web pages by copying and pasting formatted text from another popular word processing tool.
- Have a good selection of free or low-cost frameworks / templates available from different sources.
- Serve content fast enough that it is not too noticeable.
- Be able to host the web sites locally preferably in a Docker container.
- Have a thriving plug-in community.
To implement this solution I used the following technologies:
- unRAID for hosting the CMS as a Docker container.
- WordPress for the CMS.
- MariaDB as the back-end data store.
- Astra by Brainstorm Force as the web site template.
- NGINX as an SSL (encryption) termination point and proxy to WordPress.
- Let’s Encrypt for certificates used for SSL encryption.
- Various plug-ins for WordPress to support features on the web site such as security and backups.
WordPress was the first CMS I tried as it is popular, and has a lot of third party support. While I was quite comfortable with Joomla! at that point, I picked up WordPress quickly and liked how I could do things like make a recipe for shrimp scampi that could be placed in multiple categories such as “seafood” as well as “pasta” at the same time. I know that “tags” are a thing too, but WordPress clicked more with me at the time on how to organize a variety of web pages that could cross multiple areas on a web site.
The “Astra” web site template, as many things I’ve found with WordPress including plug-ins, has a “free” version with basic capabilities, but offers other purchase options, (in this case a “lifetime” option along with a subscription one), with more features. While the basic template looks a little dated as I imagine the developers are trying to guide you to use the paid offerings, I was able to change some of the “style” settings (spacing, borders, etc.) using the tools provided by the framework to make the overall look of the site acceptable to me. While I did spend some time trying to make the templates distributed with WordPress to also look “acceptable”, I was lost interest in that pretty quickly.