DevOps Engineer by day (and night), Linux & Open Source enthusiast by night (and day).
Writing about technology & my experiences on my blog.
| Repository | Description |
|---|---|
| redkb | My personal knowledgebase, created with MkDocs. |
| docker_templates | A living history of the services I have self-hosted in my homelab. Includes instructions if you want to try any of the stacks yourself. There are 175 templates in the repository as of 2026-02-21. |
| Ansible | My Ansible monorepo, with custom roles, collections, & playbooks to manage my homelab. I use Semaphore for orchestration. |
| dotfiles | You can tell a lot about a man by the dotfiles he keeps, & I keep mine with chezmoi. |
| PowershellProfile | My $PROFILE. |
| Mothership | A "meta repository" comprised of submodules. Github Actions keep everything up to date. |
| git_dir | My ~/git directory as a repository. Handles tool installs with mise, & uses Taskfile for automation. |
| Terraform | Terraform monorepo with deployment environments. Uses direnv to create an environment contained to the directory, and deploys modules like Cloudflare WAF rules using a Github Action. Cross-platform & well documented. |
| system_scripts | Collection of scripts I have used at work & at home. The scripts are broken down by OS, then by category. |
I run most of my services on machines in my home and rent a VPS to serve as a reverse proxy/VPN server with identity management. Most of my sensitive services require authentication, although some are exposed to the Internet. I use Cloudflare to point my domain to the VPS, and use subdomains and a reverse proxy to route traffic over a secure tunnel back to the homelab. This way I don't have to open any additional ports on my home firewall. I block traffic using Cloudflare's WAF rules, which I manage via Terraform.
An incomplete inventory of the hardware:
- 1 (old) blade server running Proxmox VE
- Many VMs and LXC containers, each serving a single purpose
- 2 towers, 1 has a GPU and hosts game servers
- Multiple Raspberry Pis from different generations
- Multiple mini PCs
- Multiple rented VPSes managed by Ansible for routing and edge services
- A NAS primarily used for backup cold storage
I use restic to backup important data, and resticprofile to automate and organize the backups per-machine. On some server nodes, I use backrest to have a web interface for managing the backups.