Skip to content

Blog

Documentation 2: Electric Boogaloo

18 months ago, I wrote a blog post about my process of documenting my home server's containerized applications.

The very next day, OpenAI announced ChatGPT. I immediately started playing with the new shiny technology that could generate text . My well-intentioned plan to manually document each application according to a formatted template seemed less exciting. Therefore, my plan to have perfect documentation slowed. I focused more on doing more fun things with my server - adding family photo viewing capabilities to my Plex, improving my local DNS situation, and moving some more items from my HDD array to a new SSD.

Image

Writing and Maintaining Accurate Documentation

Documentation for any type of technology project is crucial, especially if there are multiple people working on a project. Even if there's only one person, the human mind doesn't have perfect recall.

My home server started as a simple experimental playground for learning Unix-like operating systems, managing applications, and best-practices for file management. Over the past two years, the project ballooned into a media management server, web server, download client, chat host, cloud server, Git and development server with CI/CD integration all in one.

Each project by itself was manageable by itself, but as someone who is constantly learning and implementing new things, each project tended to build on the previous one. Then, when something broke due to an update or network blip (or more likely, an initial mis-configuration), I would have to go back and attempt to remember what I had done last time. This was annoying but not too big of a deal - it was just my personal project, and the time it would take to document each application wouldn't be worth the time it takes to troubleshoot my apps.

Leaving Corporate Social Media ...

Social media has radically changed the world - I don't think there's a person on this planet that would disagree with that.

Social media is also in a bit of an upheaval phase right now. Twitter has been bought out by an insane billionaire intent on changing the company to a profitable free-speech haven, while Facebook is dumping billions of dollars into moonshot "metaverse" projects to maintain their relevance as their core product becomes less relevant.

Social media giants typically have incentives that don't exactly line up with what the user wants to see in social media.

Building the Ultimate Home Server – Part Six - Uptime Monitoring

It’s been a while since I have written a blog post about my home server. I’ve been working away on my personal project for a while now, adding more features and more integrations - cool ways to make data do cool things.

I recently had a power outage at my apartment. I keep my server on an uninterruptible power supply to ensure that I don’t lose any data. I also keep my modem and router on the UPS but typically when the apartment loses power, the internet goes down as well. This means my server isn’t accessible - and the external services I’ve configured to depend on it may have a service interruption.

I could use a cloud service like Uptime Robot to check if my services are currently functional and up - it would automatically check if my service is accessible from the view of a third party. These cloud-hosted products cost money and are against my ethos of self-hosting everything I can.

Building the Ultimate Home Server - Part Four - Creating a Docker Framework

In my last post, I discussed why I decided to move my server from TrueNAS to Ubuntu. Perhaps the largest software-based reason was the ability to use Docker to manage the software on my server. This post is a hybrid between a narrative telling how I got my server working and a guide to do it yourself. If you'd like any help with any of the stuff I list in this guide, feel free to reach out! I'd be glad to help.

Building the Ultimate Home Server - Part Three - Why I Switched from TrueNAS to Ubuntu

In my last blog post (approximately 4 months ago), I talked about the build process and the software installation of TrueNAS, an open-source Network Attached Storage (NAS) software based on FreeBSD. Since then, I have switched away from TrueNAS to Ubuntu Server. I genuinely liked a whole lot of TrueNAS, but there were several reasons that I switched to Ubuntu:

Building the Ultimate Home Server - Part Two - The Build and Software Install

In my last blog post, I talked about why I built a home server. I also went through the part selection process. Check it out here if you missed that post. This time, I’ll discuss the joys of actually putting a computer together and the process of installing TrueNAS, a free open-source NAS software based on FreeBSD.

Because I am blogging this after the fact rather than extemporaneously, I don’t have a ton of pretty pictures to show you of the building process. Please accept my apologies and enjoy this photo of Data intensely staring at his cat, Spot. (This is only photo I saved to my phone on the day I built my server.)

Image

Even Androids love cats

“You must talk to him. Tell him that he is a good cat, and a pretty cat.”

- Data to Worf on how to cat-sit for Spot

Building the Ultimate Home Server - Part One - Part Selection

Data makes the world go round.

According to the International Data Corporation, a research company dedicated to studying how worldwide data is created, 59 zettabytes of data was created in 2020. That’s a ridiculous amount of information, and it takes vast numbers of huge datacenters all across the globe to store it somewhere. I personally have a huge amount of data I’ve created since I’ve started using personal computers at age 4. Because of this ever-increasing amount of data I have created, a few years ago, I decided to sign up for the Google Drive for Business unlimited storage plan. In mid-2020, Google made the announcement that these plans would no longer be unlimited. By that point, I had uploaded near 13TB of data to Google drive and I needed somewhere to put it.

“I might be considered a digital hoarder.”

— Me, If I'm being honest