How to vendor and patch avante.nvim, when configuring Neovim using home manager.
Nix is the best configuration management tool. Declarative, programmable, version controlled machine configs, what more could you want?
One small issue I've encountered lately is being able to quickly and automatically convert text from one structured form to another.
My go-to tool for this has been macros, but regex capture groups should work just as well.
TLDR: Use Nix to install and manage your personal packages instead of build/cp/chmox +x.
I created a new command on my Discord bot (PR #16)
that fetches the status of the Minecraft servers running on
minecraft.kgb33.dev. When running locally it worked perfectly, but when
running in production it fails silently. This post outlines the debugging steps
I took to solve the issue.
I'm trying out daily driving NixOS and one of the problems I have is knowing when updates are available. On NixOS all the packages are defined in a giant git repository - github:nixos/nixpkgs - and updates are commits to the various branches (called channels) of this repo. Then, my system is locked to a particular commit hash for whichever channel I'm comfortable running. Thus, to find out if there are updates available I just have to check if the most recent hash is in the lock file.
Go play in traffic - Parents everywhere
Once more they lifted sails, and once more they took the Argo into the open sea. - Jason and Medea
Thrice a day would Talos stride around the island; his brazen feet were tireless. - The Story of Perseus
Ordering LetsEncrypt certificates for your Proxmox servers is almost too easy, no more self-signed certificates!
2022 was a busy year, this is a concise review of almost everything I did & learned.

Have you ever wondered why (or how) someone's commit has a fancy "verified" badge on Github?

They have either created & committed from the Github web editor or signed their commit using a PKI key.
It's been a while since part one and I've learned so much about automation and GitOps. The overall goal for this project is still the same, an automated CI/CD system, but some of the technologies have changed. This particular post is all about integrating Dagger and Github Actions.
The original deployment strategy (detailed here) for this blog was manual and error prone. The ideal goal is to use dagger to build out the whole CI/CD system; from building the image to deploying on a local Kubernetes cluster.
Part 1 covers building the docker image and pushing it to the Github container registry.
Configuring Wireguard to allow a "road-warrior" (aka point-to-site) setup using OPNsense and systemd-networkd.
Ansible is a super powerful system configuration tool that is normally used to manage sets of servers. However, as you might have derived from the title it can also be used to configure a local deployment.
Gitea describes itself as a painless self-hosted Git service. It has many of the same features as Git[hub/lab], but is much more lightweight.
This deployment runs in a Docker container on a Ubuntu 21.10 server. The whole deployment uses ~2% of one CPU core, and ~2GB of RAM. Easily runnable on a Raspberry Pi.
This post will mostly mirror Hugo's quickstart guide. With a few differences: the theme and customization will be more specific, and will include the steps to get Hugo into an production environment, including CI/CD and Let's Encrypt certificates.