All projects

Case Studies / Infrastructure & DevOps

NexOS Homelab

The homelab is where my projects run. Servers, containers, networking, and services are defined in code, and a command-line tool I built validates, plans, deploys, and checks them, so changes are repeatable and reversible instead of manual.

Verified delivery

IaC
Terraform, Ansible, and NixOS
440+
Commits on the Go CLI/TUI since April 2026
Self-hosted
Git, registry, monitoring, and apps
Architecture diagram of the NexOS Homelab: delivery, runtime, and monitoring layers
Exhibit A · Architecture diagramReal structure of the homelab with addresses, hostnames, and other network details removed.

01 / Challenge

The workflow before the system

Running several apps by hand on a server leads to configuration drift, forgotten steps, and risky changes.

02 / Approach

How I designed the response

I defined the infrastructure in code (Terraform for machines, Ansible and NixOS for configuration) and wrote a Go command-line tool with a terminal UI that reads those definitions, plans changes, deploys apps, and asks for confirmation before risky actions.

  • Proxmox containers and VMs defined with Terraform
  • Configuration with Ansible playbooks and NixOS modules
  • Docker services behind a Traefik reverse proxy
  • Private access over Tailscale
  • Self-hosted Git (Gitea) and container registry (Harbor)
  • Monitoring with Prometheus and Grafana
  • Go CLI and TUI for validate, plan, deploy, and status

03 / Outcome

Hosts my own apps, including Luna and the Relay evaluation release. The Go control-plane tool alone has 440+ commits since April 2026.

04 / Workflow

Before

  • Configure servers and containers by hand
  • Remember deploy steps for each app
  • Find problems only after something breaks

With the system

  1. Describe machines and services in code
  2. Validate and plan the change with the homelab CLI
  3. Deploy through the CLI with confirmation for risky steps
  4. Watch health in Grafana and the CLI status view

05 / Engineering proof

Architecture

  • Proxmox host running LXC containers and VMs
  • Terraform stacks, Ansible playbooks, and NixOS modules in Git
  • Traefik reverse proxy and Tailscale private network
  • Gitea for code, Harbor for images, Prometheus + Grafana for monitoring
  • Go engine with a terminal UI that reads the checked-in definitions

Verified evidence

  • Hosts Luna and my other self-hosted projects
  • 440+ commits on the Go control-plane tool since April 2026
  • Diagram shows the real structure with private details removed

06 / Judgment

Tradeoffs

  • Private repositories: they describe my own network
  • One main server keeps costs low but is a single failure point

Why it matters

  • Shows Docker, CI/CD, infrastructure-as-code, and Linux operations skills
  • Shows how I ship and run the software I build

What this proves

I can run the full lifecycle of my software, from code to deployment and monitoring, using infrastructure as code.

Signed · Mohamed Abdelwahab