cwashingtonblue team · soc
← Projects

Homelab · Case study

3-Node Proxmox Cluster

The foundation of my lab: a three-node Proxmox VE cluster running my SIEM, automation, web and home services as VMs and containers, with approval-gated patching, a self-healing watchdog and key-only SSH.

Role
Solo project: design, build, hardening and day-to-day operations
Stack
Proxmox VEKVMLXCDockerUniFiNginx Proxy ManagerCloudflare Accessn8nFilebeat
3-Node Proxmox Cluster
  • 3Nodes in one Proxmox VE cluster
  • 28CPU threads on the largest node (i7-14700K)
  • 5 minWatchdog cycle for failed guests
  • 0Updates applied without my approval

Why I built it

Everything in my lab runs on this cluster: the SIEM, the automation stack, my web services and home services. I wanted it to behave like production infrastructure: segmented, monitored, patched on a schedule and able to recover on its own, without me babysitting it.

What's running

Workload Type Purpose
Elastic SIEM VM Elasticsearch + Kibana for log search and investigation
n8n + local LLM LXC (Docker) Automation backend and AI-assisted troubleshooting
Docker host VM Containerized services
Portfolio site LXC (Docker) This website, in a locked-down container
Home Assistant Container Smart-home integration for the dashboard
Notes and web panel VMs Documentation and web hosting tools

The largest node runs an Intel i7-14700K (28 threads, about 64 GB RAM), which leaves headroom for the SIEM and for running a language model locally.

How it's secured

  • Nothing is exposed directly. Services are published through Nginx Proxy Manager with TLS, and the admin dashboard sits behind Cloudflare Access (zero-trust SSO).
  • Segmented network. A UniFi gateway (UDM Pro Max) with VLANs and firewall rules, across 4 switches and 2 access points.
  • Key-only SSH. I'm moving every node to SSH keys with password login disabled, using a separate key per workstation so one lost laptop can be revoked on its own. I'm rolling it out one node at a time, so a mistake can never lock me out of the whole cluster.
  • Secrets kept out of workflows. The automation reaches Proxmox with credentials kept in n8n's encrypted store, never in workflow files or chat.
  • Logging. Filebeat on each node ships logs to the SIEM over HTTPS.

How it runs itself

  • Self-healing watchdog (every 5 minutes): finds guests that are set to start at boot but are down, and restarts them. Machines I shut down on purpose are left alone.
  • Approval-gated patching: a nightly job checks every node, VM and container for updates, snapshots guests first, and patches nothing until I approve it. No approval means the run is skipped and logged.
  • Maintenance without outages: VMs and containers reboot weekly and nodes monthly, staggered so two nodes are never down at the same time.
  • Health reports: node, guest and storage health go to my dashboard, with Discord as a fallback channel.

Problems I worked through

  • Right-sizing a container for a local LLM. The container running the model was starved for memory, so requests timed out. I profiled it, raised its RAM, measured token throughput and used the numbers to decide what should run locally and what should go to a hosted model.
  • Keeping the SIEM stable on shared hardware. Elasticsearch takes a big share of RAM by default, so I capped its heap to keep the VM and its neighbors healthy.
  • Safe change control. Snapshots before patching, human approval and staggered reboots are the same discipline as ITIL change management, applied at home.

Skills demonstrated

Virtualization (KVM/LXC) · clustering · network segmentation · hardening (SSH, least privilege) · patch and change management · monitoring and log shipping · automation · capacity planning and troubleshooting

What's next

  • Finish the SSH key-only rollout on the remaining nodes.
  • Add backup-restore drills to prove snapshots actually restore.
  • Ship more guest logs (not just node logs) into the SIEM.

More projects

All projects
Homelab

Securxlab — Homelab SOC & Self-Healing Command Center

A self-built security operations dashboard for my homelab: SIEM with MITRE ATT&CK-mapped detections, alert triage and threat intel, plus Proxmox, UniFi and camera control, all driven by n8n automation with human-in-the-loop approvals.

Proxmox VEn8nElastic SIEMUniFi+5

Read write-up
Cyber Lab

Elastic SIEM + MISP

A dedicated Elastic SIEM for my lab: Filebeat ships host logs from every Proxmox node over TLS, automation events land in their own index, and MISP adds threat intelligence, all so I can investigate the way a SOC analyst does.

Elasticsearch 8KibanaFilebeatMISP+3

Read write-up
Cyber Lab

n8n + Discord Ops Bot

AI-assisted n8n workflows that watch my Proxmox cluster around the clock: they restart failed guests, scan for updates and wait for my approval, diagnose errors with an LLM, and report through the dashboard, with Discord as the fallback.

n8nProxmox APIOllama (llama3)Claude API+5

Read write-up