Time to talk about the Tech stack

Feb 15, 2023 min read

My server’s tech stack

Photo by Kelly

This will most likely be a multi-part entry, where I will explain how I got this all up and running. For now, let’s do an overview.

Let me explain that I have been fascinated with how technology has worked since I was a little boy. I once took apart my Father’s rotary phone, to see how it worked; although I did not put it back together in the end and he was not happy with what I had did.

Photo by Ekrulila

After I was exposed to the world of computers, I did not look back. I took a Computer Networking course in my Junior and Senior years of High School. From there, I learned how computers and networks functioned. I was gifted our home’s older computer to work on while I started the course. It was very slow and I could not upgrade it. I remember going to Best Buy with my Mom and asking for EDO RAM (this was in 2002), which the cleric responded with “We don’t carry that.”

The gift computer specs (what I remember, at least)

  • Pentium 100Mhz (somewhere around there)
  • 32MB of EDO RAM (it was originally 16MB, but I was able to get some more from my Grandfather’s computer, so it was the same computer)
  • Hard drive may have been 10GB
  • It had ISA Slots
  • CD-Rom Drive

I was able to build my first computer fully towards the end of the first year. I wanted to game at the time and the original computer wasn’t going to cut it for “modern” games. One game in particular which caught my interest was “Final Fantasy XI Online.” I won’t get into much more details about either one of those for now.

The computer specs of the machine I built in High School

Enough with the history lesson. Time to get down to the current tech!

This blog’s tech stack

Service’s I paid for

Free to use services’ and software

The quick overview in the order I used this tech

  1. Bought melzaks.com from Cloudflare DNS Registrar.
  2. Paid for Proton E-Mail.
  3. Put in my custom domain into Proton E-Mail’s settings.
  4. Created an account, put in my payment info and used promo code on Linode.
  5. Spun up the $5 a month virtual machine on Linode, choosing Fedora Server 37.
  6. Created A/AAAA DNS records using the static IPv4 and IPv6 addresses which were assigned to the Linode VM. Made sure to keep the DNS Proxy for each entry. Assigning *.melzaks.com and melzaks.com to cover the primary domain and subdomains.
  7. Locked down the VM. This includes changing SSH server settings to only using keys and not passwords, uploading those keys. Changing the firewall so only ports 80/tcp and 443/tcp+udp are accessible to the public internet; ports 22/tcp and 9090/tcp are only accessible from my home’s IPv6 addresses.
  8. Downloaded caddy with Cloudflare DNS support for Let’s Encrypt SSL certificates. Set up caddy to only listen on the public IPv4 and IPv6 addresses.
  9. Created a Systemd unit to start the caddy web server.
  10. Spun up podman containers for Ghost and MariaDB, putting them in the same pod and set up Ghost to listen on an extra IPv6 address in the pool I requested from Linode. The address is a GUA (Globa Unicast Address), although the firewall does not allow any Internet traffic to access it.
  11. Created Systemd units to start the ghost blog server stack.

If I missed anything, I will come back and edit this post. I hope this overview is helpful and in the coming days, I will explain in more detail each of these parts and how to piece it all together.

Thank you for reading, may you enjoy your day. Never stop learning and God bless.

Update 2024-05-04: Some things have changed and I will be using just a caddy podman container and a static folder to host this blog, it is much simpler.