Hello, it’s certainly been awhile. It has been a roller coaster of medical issues, college projects, midterms and now finals and also more medical issues. I have however found a moment in time to finally sit down and write this article.
Shortly after relaunching SciFiDad.ca I decided to get into self hosting for a number of reasons. First I wanted a more reliable password manager than a web browser and I wanted full control over that data and I wanted to hide the backend of this site on my home network. Then I decided I wanted to create a digital paperless filing cabinet so that I could stay better organized and lastly I wanted to be able to access it remotely without fully exposing it on https. So I learned wireguard, which was by far the biggest pain in the ass out of all of the things.
So where did I start? I needed a physical node to use. The options: buy a physical server and build a small home lab network or go entirely cloud based. I went with the first option since I wanted complete control over the data in question. I didn’t want to trust a cloud provider with any sensitive information (this has led down a rabbit hole of me wanting to degooglify my life, but that's a story for another day).
So what was I to do? Buy a refurbished server? All too tempting. The power bill that would come along with that would be more than I could sell to my wife though and quite frankly I just didn’t need those levels of resources. I don’t need two CPUs and hundreds of gigabytes of ram. So I went smaller. I ended up choosing a renewed Dell Optiplex 3040 for my first machine. Weak by most standards but so far its handled everything I’ve thrown at it and more.
Next was setting up the back end of this site to run on the home server and not on the server running the site in the cloud. That was easy, install an instance of the framework, hook it into the database and change some settings and done and dusted. A nice security feature to have the admin panel and access behind a (relatively) inaccessible network. I say relatively because we all know that where there are hackers there is a way in.
On to the password manager. What to do? After looking into several options I chose to self host a vaultwarden on the home network to keep all my passwords safe and sound. This was a little more involved because since my last foray into this stuff 20 years ago containers have become a prevalent thing. Cue me taking days to learn docker, docker compose and what kubernetes is. Finally after reading pages and pages of what these things are and how-to’s on using these tools I was finally able to spin up a Vault Warden instance using docker (hadn’t quite figured out docker compose by this time). It was as easy as a few lines of code and pushing enter. My god how things have simplified since the days of doing everything bare metal.
Next was my digital filing cabinet. For this I went with paperless-ngx. This was also painless and even more so once I had gained a full understanding of docker compose, which just takes docker environmental variables and sticks them in a file that you can fiddle with instead of typing it all out in the CLI (or more likely copying and pasting…don’t copy and paste things from the internet into your linux CLI). Anyway, I created the docker compose file and input everything I needed, typed one line of code into my CLI and bam that was done. Again, amazing to this old man.
Last thing I needed was a calendar because if I needed anything it was to keep myself organized because there is nothing worse than forgetting shit. I ended up running a baikal server and this was bare metal because I hadn’t figured out that wonderful docker stuff just yet.
Anyways that was part one. Part two I’ll talk about my internal DNS set up, self hosting email (yes, I’ve heard all the negatives) and the possibility of adding a second node to my home lab to make a cluster and the possible fun with kubernetes that could bring.
Till yesterday, see you already,
SciFiDad