Skip to content
View n0rthstar88's full-sized avatar
  • Fresno, CA
  • 15:31 (UTC -08:00)

Block or report n0rthstar88

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. 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
n0rthstar88/README.md

Hi, I'm James

I'm a Technical Support Lead at Vero Networks, a fiber internet provider. At home I run a homelab and build the tools that keep it running, from monitoring agents to Linux desktop apps. I'm looking for systems administration, infrastructure engineering and agentic AI roles.

🌐 hufflabs.dev · 📫 james@hufflabs.dev

HuffLabs, my homelab

A self-hosted environment I designed, secured and run day to day.

Area What I run
Virtualization Proxmox VE with LXC containers and VMs, Docker
Storage and backups TrueNAS SCALE with ZFS, scheduled guest backups, encrypted restic backups
Networking Self-hosted DNS with filtering, reverse proxy with TLS, Tailscale, Cloudflare Tunnels
Identity and security Authentik single sign-on, role-based firewall rules, fail2ban, recurring security audits
Monitoring Checkmk, plus a Python watchdog I built that sends alerts and takes commands in Discord
AI agents An on-call agent for critical alerts: known problems get an allowlisted fix, and anything else goes to AI triage, limited by a gatekeeper that logs every command and rate-limits fixes
Automation Python, Bash, Lua, Go, systemd
Operations Runbooks, incident write-ups and disaster recovery documentation

Almost all of it runs on one GMKtec M6 Ultra mini PC (Ryzen 5 7640HS, 64 GB DDR5) in a 22U rack. Nothing on my home network is open to the internet: public sites come in through Cloudflare Tunnels, and I reach everything else over Tailscale.

Diagram of the 22U rack: the Cisco 2960-X going live next, open space, the mini PC, a planned second server and UPS, and the storage shelf

Diagram of the mini PC: traffic enters through Cloudflare Tunnels or Tailscale, and inside Proxmox are network, storage, app and monitoring services

Proxmox guest list: ten containers and two VMs, each tagged by role

Checkmk dashboard with graphs for the host, key services and the router

Technitium DNS dashboard: about a quarter of lookups blocked in one hour

What's next: bring the Cisco 2960-X online (its VLANs are already set up, so the work laptop and smart-home devices each get their own network), add a rack UPS, move the M6 to 2.5 GbE, and add a Dell R730 as a second node.

Projects

  • Homelab On-Call Agent: self-healing monitoring for Proxmox and Checkmk, with AI triage behind a security gatekeeper

    On-call agent triage report in Discord, with example host names

  • Homelab Watchdog: security and availability monitor with change-based Discord alerts and commands, in plain Python

    Watchdog alerts in Discord, with example host names and addresses
    Watchdog answering a ping command in Discord

  • HuffLabs RO: a private game server for friends, reachable only over Tailscale, with an invite-only sign-up site, Windows and Linux installers, and a self-updating launcher that verifies signed updates. In Go, tested on Linux and Windows in GitHub Actions, with versioned releases

    HuffLabs RO launcher downloading an update HuffLabs RO invite-only sign-up page

  • PeripheralHub: GTK4 app for keyboard, mouse, display and battery settings on Linux

    PeripheralHub keyboard lighting settings PeripheralHub mouse DPI stages

  • Snap Layouts for Omarchy: drag a window to the top of the screen to pick a layout

    Dragging a window to the top of the screen shows layout choices Windows snapped into a three-pane layout

  • Dark Magic: 18 merged pull requests to an open-source Diablo II engine in Go and Lua

    Dark Magic Lua code under the project's candle logo: kill experience scaled by level difference 18 merged pull requests in the Dark Magic repository, each passing CI

Pinned Loading

  1. homelab-oncall-agent homelab-oncall-agent Public

    Self-healing on-call for Proxmox and Checkmk: allowlisted fixes first, then AI triage behind a security gatekeeper. Works with Claude Code, other CLI agents and local models.

    Python

  2. homelab-watchdog homelab-watchdog Public

    Lightweight security and availability monitor for Proxmox homelabs: change-based Discord alerts and commands, in plain Python with no dependencies.

    Python

  3. peripheralhub peripheralhub Public

    GTK4 app for keyboard, mouse, display and battery settings on Omarchy. Omarchy 4 (Quattro) ready.

    Python 1 1

  4. omarchy-snap-layouts omarchy-snap-layouts Public

    Drag a window to the top of the screen to pick a layout. Snap layouts plugin for Omarchy. Omarchy 4 (Quattro) ready.

    QML

  5. dark-magic dark-magic Public

    Forked from gravestench/dark-magic

    Unleash the Power of Dark Magic - An Open-Source Diablo 2 Engine Rewrite

    Go

  6. hufflabs-ro hufflabs-ro Public

    Invite-only sign-up site, installers, themed client and an auto-updating launcher for a private Ragnarok Online (rAthena) server for friends, over Tailscale.

    Go 1