Skip to content
View timmyb824's full-sized avatar

Block or report timmyb824

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
timmyb824/README.md

Hi πŸ‘‹, I'm Tim Bryant

Passionate about Observability, Site Reliability, DevOps, and Automation

Profile views

  • 🌱 Check out my pins for projects I am currently working on or actively commit to

  • 🌐 Personal website πŸ–₯️ Official

  • ⚑ Hobbies Learning new things, breaking and fixing things in my home-lab, axe throwing, pocket knife collecting, 3D printing, pc gaming, watching sports, spending time with my family (Wife, Son, Dog, and Cat)

Homelab:

I run a small yet capable home-lab within my house, where I constantly experiment to learn new things.

Live status: the lab publishes its own status via a small collector + API I built (Traefik/AdGuard/Proxmox/k3s/ArgoCD β†’ snapshot β†’ status page). Details on the status page:

Homelab status

Here's a list of the equipment I currently have in my home-lab:

  • Dell Optiplex 5000 PC
  • Three Beelink Mini PCs
  • Synology NAS (DS923+)
  • eero6 router & mesh network
  • TP-Link un-managed gig switch
  • APC UPS Pro 1500VA
  • Old HP Laptop

Within my home-lab, I run many open-source applications, tools, and services. Many of these are deployed within my k3s cluster, and some are deployed using podman or directly on a VM/LXC. I recently migrated several services over to dedicated LXC's using Proxmox Helper Scripts. Here are some other interesting details:

  • I employ traefik as my reverse proxy for all components, including Kubernetes.
  • I use authentik for authentication and authorization.
  • To access my home lab from anywhere, I rely on tailscale as my VPN solution.
  • I use k9s to help manage my k8s cluster.
  • argocd serves as my gitops tool within the k3s cluster.
  • I developed a custom deploy agent script to manage podman deployments through gitops. This script is available here.
  • To handle secrets in my k8s cluster, I utilize vault and the argocd-vault-plugin to inject secrets as part of my gitops workflow.
  • To handle secrets in my podman deployments, I utilize sops and age.
  • For observability, I employ a combination of tools such as prometheus, grafana, loki, and alloy. Additionally, I rely on uptime-kuma to monitor the availability of my public facing services and websites. These are exposed to the internet using Cloudflare Tunnels. Finally, I created a simple tool called PingPulse to monitor the availability of internal services and emit prometheus metrics I alert on.
  • To handle local DNS and ad-blocking, I rely on adguardhome. I use cloudflare as my DNS provider. I've also tried pi-hole and technitium, but I found adguardhome to be the simpliest for my needs.
  • I use renovate to keep my dependencies and images up-to-date.
  • I use crowdsec to safeguard all publicly facing servers from malicious attacks.

Apart from my home-lab, I have deployed multiple servers within Oracle Cloud Infrastructure (OCI) to serve various needs. I use OCI over AWS or GCP because they have a very generous free tier that allows me run multiple servers without incurring any costs. These servers are deployed and manged using OpenTofu.

Here is a screenshot showing some of the applications that are currently deployed in my home-lab:

In the sreenshot above, I am using a tool called homepage to display all of my services in a single page.

If you wish to delve deeper into my home-lab's operations, I have GitHub repositories housing the manifests, docker-compose files, and scripts that facilitate most of my operations. You can locate them here:

Lastly, I want to mention my dotfiles repository, which contains all of my configuration files for my shell across macOS, Linux, and even windows. I used a very powerful tool called chezmoi to manage these files. With chezmoi I am able to encrypt sensitive files, pull secrets from 1password, and use go templating to manage more complex configurations.

Connect with me:

timmyb824 timmyb824

Stats:

GitHub Stats Card

GitHub streak Card

Tim Bryant's Dev Card

Pinned Loading

  1. homelab-kubernetes-apps homelab-kubernetes-apps Public

    This repository hosts a curated collection of Kubernetes applications, including those actively deployed in my home Kubernetes cluster and others I’ve tested in the past.

    Shell 3

  2. homelab-podman-apps homelab-podman-apps Public

    Compose files for services I run via Podman in my homelab, deployed through a custom GitOps script.

    Shell 3 1

  3. dotfiles dotfiles Public

    Cross-platform dotfiles (macOS, Linux, Windows) managed with chezmoi

    Lua 4

  4. one-updater one-updater Public

    A flexible package manager updater that helps you keep all your development tools up to date.

    Python 1

  5. PingPulse PingPulse Public

    A minimal, portable Go app to check HTTP, ping, and database endpoints with Prometheus metrics.

    Go

  6. pmx pmx Public

    Python CLI for Proxmox VE that runs anywhere (built on macOS in mind) and talks to your cluster over the Proxmox HTTP API. Every operation is a proper scriptable subcommand; omit an argument and yo…

    Python