My Latest Tech Stack
Software
Password Manager
No news is good news here: I still use KeePassXC, on my phone and computers. Since I wrote about it here, not much has changed except my conviction that using free, open-source password managers is the best way to go.
Syncthing
Syncthing is what I use to sync my password database to all of my devices. It’s not perfect, but it gets the job done and it doesn’t require any server infrastructure. Occasionally there are sync conflicts, but these are easily remedied thanks to an extremely useful KeePassXC feature - merging. If I have two copies of my database due to sync conflicts, I can open the main one, merge the conflicted one, and be on my way.
Notetaking
I’ve taken to using Obsidian. While not FOSS, it does operate on plain markdown files - meaning there’s no chance of vendor lock-in. If Obsidian does something shitty - I’ll take my markdown files to some other note-taking app.
Websites
I’ve created a website dedicated to hosting my recipes, as well as some articles of interest. Take a peek!
I’ve also redone this website, and migrated over my articles. I’m quite happy with how it looks. I’m using Hugo instead of Jekyll now; it’s an incremental upgrade in my opinion. It’s easy to maintain and upgrade.
Hardware
Desktop
My desktop continues to be my main rig for recreational use. I’ll play games, surf the web, watch videos, etc.
What’s different is that I’m now running Arch Linux on the desktop, as opposed to Windows 11. Absolutely no complaints; I’ve been able to play all of the games I want.
Laptop
Years ago I wrote about how I used NixOS on my laptop. This is no longer the case - in the long run, I found Nix too cumbersome for casual use. The additional layer of complexity to “color outside the lines” is leaps and bounds above typical Linux distros, and for that reason alone I don’t believe it will ever reach mass adoption. There is something to be said about its technical ideals though - reproducibility, immutability. I personally believe someone will come up with a better solution - and by better I mean easier. My personal prediction: An OS based on efficient containers for its package manager. Not Docker necessarily, but something close to it.
In any case, like my desktop, I use Arch Linux on my laptop.
Server
I’ve since moved around a bit, and finally bought a dedicated piece of server hardware. It’s just an Intel NUC with a decent CPU and 16Gi of memory.
Distro
Debian remains the best choice for servers, in my opinion. Stable and boring - exactly what I want for a server.
Kubernetes
I actually run K8s on my Intel NUC. This in itself is worthy of its own blog post, but in short I’ve been quite happy with it. I use ArgoCD to manage my deployments, and GitLab to host my infra as code.
Before, I ran docker-compose organized into a directory like this:
docker/
├── nginx/
│ ├── .git
│ ├── docker-compose.yml
│ └── nginx/
│ └── <data>
└── pihole/
├── docker-compose.yml
└── pihole/
└── <data>
This is still a good pattern and one I’d recommend to those wanting a simple and highly efficient homelab.
However, I’ve really come to appreciate engineering my homelab using Kubernetes. It has a ton of knobs and levers that I know how to use well, so I do. Of particular note is updates - when the upstream repository for my Charts are updated, ArgoCD automatically notices and surfaces those changes. All I have to do is review the changes and sync them.
Longer post to come!