Omarchy Homelab
Infrastructure
A small k3s homelab with GPU compute, GitOps delivery, and centralized observability.
Homelab Infrastructure Meets Cloud Native
The Challenge
The Solution
Infrastructure Innovation
Git-Sourced Fleet
Just-Driven Ops
GitOps for Kubernetes
Cluster Status
Kubernetes
AI Stack
Observability
Operations & Automation
Automated Deployments
Service Mesh
Observability
Cluster Capabilities
Hardware Infrastructure
AI/ML Services
Observability Stack
Logs: journald + pod logs
Alerting: vmalert rule evaluation
Dashboards: GPU utilization, cluster health, service SLOs
Infrastructure Timeline
The Journey
Windows + Proxmox
Dual-boot setup with Proxmox servers for testing, Windows as daily driver
Killed Windows
Full commitment to Linux. Started the distro-hopping journey.
OS Evolution
Omarchy (Arch-based) → CachyOS (optimized Arch) → NixOS (declarative + reproducible)
One host became a cluster
First NixOS configuration on a single host, then an AI gateway (v1, then v2 with circuit breaker, rate limiting and Redis caching), more nodes, and K8s phases 1-7: control plane, CNI, DNS, stateful services, GPU workloads and monitoring, all in production.
Content, then extraction
Blog moved to Astro Content Collections with generated social cards. MCP Registry, Knowledge Fabric and the AI gateway extracted into standalone declarative projects; gateway v2.1 added connection pooling, response caching and OCI image builds. Pre-commit quality gates standardized across every infrastructure repo.
Design system and roadmap
Retro theme system on Base24-compliant semantic tokens, then a semantic-token redesign that removed the theme preview layer. Integration roadmap across 12 repositories: MCP ecosystem, knowledge pipeline, GPU federation, unified auth.
Omarchy pivot
Full-stack migration off NixOS to Omarchy across every host. Declarative profiles, AI-first tooling, the cluster declared in git. The NixOS configuration is archived.
Migration complete
Every host on Arch-based Omarchy — K3s, AI inference and monitoring carried over without breakage. Fleet telemetry desk on every host. Every cluster stack under ArgoCD app-of-apps, no kubectl and no drift. GPU workloads moved from systemd to ArgoCD-managed k3s pods, rollback is one git revert. Community server live with a full channel mirror.
Code Explorer
Code Patterns
# NixOS Configuration Pattern
{
# Declarative system configuration
boot.loader.systemd-boot.enable = true;
# Network setup
networking.networkmanager.enable = true;
# User management
users.users.jkro = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ];
};
# System packages
environment.systemPackages = with pkgs; [
vim git curl wget
];
}# Module Composition Pattern
{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
./modules/gpu.nix
./modules/networking.nix
];
# Service configuration with options
services.nginx = {
enable = true;
virtualHosts."example.com" = {
forceSSL = true;
enableACME = true;
root = "/var/www/example";
};
};
# GPU passthrough for ML workloads
hardware.graphics.enable = true;
}# Advanced NixOS Patterns
{ config, pkgs, lib, ... }:
{
# Service configuration with systemd
systemd.services.myservice = {
description = "Custom Service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "/usr/bin/myservice";
Restart = "on-failure";
};
};
# System activation scripts
system.activationScripts.setup-dirs.text = ''
mkdir -p /var/lib/myservice
chown myservice:myservice /var/lib/myservice
'';
}