Homelab - Part 2 September 2, 2021 on JB's Blog Tags: homelab, devops, self-hosting


Since my previous post I have spent a fair amount of time tinkering with my homelab. In part 1 I hadn’t even built a server yet and now I have a number of services running that my partner and I use on a daily basis. This post includes some of the ups and downs of that tinkering and details the services I am hosting and my plans for the future.

The Good, the Bad and the Ugly

The Good: Shortly after I released the first post in this series the components for my server arrived. I have built a few PCs before and enjoyed the build process, which, in the world of plastic constructions toys, I would equate to Duplo as opposed to Lego, although the stakes can be a little higher. The entire build took a little under two hours, and the system booted straight into the PVE live USB I had plugged in.

The Bad: In my eagerness to get started I neglected to plan as thoroughly as perhaps I should have. I sped through the guided installer for Proxmox1 and set up my first virtual machine. Once Ubuntu 21.042 had installed, I SSH-ed into the VM and installed the required applications to get a Kubernetes cluster up and running. This may all sound as though it was going well, but in the setup I failed to set up static IP addressing for both the Proxmox host and the Kubernetes VM. This would later result in me having to basically start the installation from scratch, with a much more rigidly defined IP addressing strategy for my home network. The re-installation of Kubernetes went smoothly, as it had before, and I had a cluster up and running.

The Ugly: At this point in the story, my experience goes from limited to non-existent. I knew that I wanted to use GitOps3 where possible and had a pretty decent idea of what I wanted to host, but claiming I understood more than that would be straight up lying to you. I would like to stress the fact that this is exactly the reason why I was doing any of this in the first place - to learn. My lack of knowledge did mean that what follows isn’t the best and my homelab is still nowhere near perfect or even good.

The End Result

So after all of this about the highs and lows of my experience, you may be wondering what the end result is like. I changed my plans for what to host a little during the process since I discovered certain things that I needed sooner and found that a few services would not be required if I used something else (*cough cough* nextcloud).

So here is a bit about what I’m hosting, my thoughts on the service as a whole and how the setup and maintenance has gone.

Tackling the Ugliness

Backups are my next priority. My services, from a user perspective, are working nicely and I have started relying upon them. Therefore, backing up data is super important to keeping the self-hosting dream alive. I need to work out a solution to creating offsite backups and will likely be looking into this over the next few weeks and months - so watch this space.

Once backups are sorted I will likely start tidying my manifests and organising my services a little better. Then I will tackle the permissions issues I am experiencing and try to get Jellyfin back to where it was before. I also want to set up a recipe manager (with shopping list support) in the near future. My personal website is also still on Gitlab pages, and while I don’t think it is necessary to self-host this, it would be nice if redirected to this site rather than just being a dead end.

I also want to start creating Ansible roles for certain things I setup. For example, a role to setup whatever my backup solution is and a role to setup wireguard. These are things I need on 4+ different machines (a couple of servers and a couple of personal devices) and therefore the time and effort of creating an Ansible role will pay off quickly.

Thats all for now, but I will hopefully have some more useful and interesting posts to share in the near future.

  1. https://www.proxmox.com/en/proxmox-ve ↩︎

  2. https://releases.ubuntu.com/21.04/ ↩︎

  3. GitOps: versioned CI/CD on top of declarative infrastructure. Stop scripting and start shipping. - Kelsey Hightower ↩︎

  4. https://fluxcd.io/docs/ ↩︎

  5. https://github.com/rancher/local-path-provisioner ↩︎

  6. https://www.borgbackup.org/ ↩︎

  7. https://nextcloud.com/ ↩︎

  8. https://photoprism.app ↩︎

  9. https://blog.google/products/photos/storage-changes/ ↩︎

  10. https://github.com/jonaswinkler/paperless-ng ↩︎

  11. https://www.djangoproject.com/ ↩︎

  12. https://jellyfin.org/ ↩︎

Articles from blogs I read Generated by openring

postmarketOS revolutionizes smartphone hacking

I briefly mentioned postmarketOS in my Pinephone review two years ago, but after getting my Dutch SIM card set up in my Pinephone and having another go at using postmarketOS, I reckon they deserve special attention. Let’s first consider the kind of ecosystem…

via Drew DeVault's blog November 26, 2021

Status update, November 2021

Hi again! This month we’ve migrated wlroots to FreeDesktop’s GitLab instance! We’ve been preparing the migration for a long time, and finally all the pieces of the puzzle came together. The main missing piece was a way to keep our continuous integration syste…

via emersion November 16, 2021

New website

A short explanation of my new website.

via sseneca's website April 17, 2021