Deploying VigilSOC on Windows 11: Architecture, Pitfalls, and Hardening VigilSOC 1.0.0, a cloud-native, Linux-first autonomous security operations center, was test-deployed on a dedicated Windows 11 virtual machine, with internal containers bound strictly to 127.0.0.1 behind native Windows Nginx and more than 2 GB of consumer bloatware stripped from the OS. The deployment ran the stack — PostgreSQL, Redis, the Bifrost LLM gateway, FastAPI backend services, autonomous agent worker runtimes, and a Vite-based console — inside WSL 2 on Ubuntu 22.04 LTS with systemd enabled, requiring nested virtualization when the Windows 11 host itself ran under Proxmox VE or QEMU/KVM. The write-up documents the architecture and pitfalls for teams whose corporate device policies block local configuration changes, forcing a remote virtual machine. This is the lesson from the realm of running a workshop and not expecting participants to show up with Windows laptops. We cover a few lessons learned from the event, and go a bit further for the sake of sharing pain points from the task of deploying VigilSOC on Windows for the first time. VigilSOC was architected as a cloud-native, Linux-first autonomous security operations center. In production, our deployments typically run on bare-metal Linux servers or containerized Kubernetes clusters managed by Helm. For development purposes the scope of deployments will vary but most development and testing originates from end users with Linux based or MacOS systems. Taking an AI-driven SOC stack—featuring PostgreSQL, Redis, the Bifrost LLM gateway, FastAPI backend services, autonomous agent worker runtimes, and a Vite-based console—and running it reliably on a Windows 11 virtual machine sounds daunting. Between hypervisor virtualization boundaries, Windows Subsystem for Linux WSL 2 quirks, process lifecycle nuances, and consumer OS background noise, the potential failure modes are numerous. We recently completed a test deployment of VigilSOC 1.0.0 on a dedicated Windows 11 VM. In this post, we document the entire architectural design, the technical hurdles encountered, why we bound our internal containers strictly to localhost behind native Windows Nginx, and how we stripped over 2 GB of consumer bloatware out of the OS to turn Windows into a lean, hardened SOC appliance. 1. Virtualization & Subsystem Architecture Deploying modern containerized workloads on Windows 11 hinges on WSL 2. For some workshop participants they were not able to make local modifications to their devices given company policy. This meant a remote virtual machine would be required. When the Windows 11 host is itself a virtual machine running under a hypervisor such as Proxmox VE or QEMU/KVM, the first hurdle is nested virtualization. For the participants who were able to modify their local configurations the nested virtualization modifications were not required. +--------------------------------------------------------------------------+ | Physical Hypervisor Proxmox VE / KVM | | Virtual CPU: "host" exposes VT-x / AMD-V flags | +--------------------------------------------------------------------------+ | v +--------------------------------------------------------------------------+ | Windows 11 Guest VM | | - Hyper-V & VirtualMachinePlatform Enabled | | - Native Nginx C:\nginx - Binds 0.0.0.0:80 / 0.0.0.0:443 | | - OpenSSH Server sshd for Headless Remote Management | | - Stripped Consumer Services ~2.5 GB RAM Reclaimed | +--------------------------------------------------------------------------+ | Localhost Forwarding v +--------------------------------------------------------------------------+ | WSL 2 Subsystem Ubuntu 22.04 LTS / Jammy | | - Native Linux Docker Engine docker.io, docker-compose-v2 | | - systemd=true /etc/wsl.conf | | - Systemd Unit: /etc/systemd/system/vigil.service | | | | Containers & Daemons Bound strictly to 127.0.0.1 : | | - Frontend Web Console Vite : 127.0.0.1:6988 | | - Backend API Uvicorn / FastAPI : 127.0.0.1:6987 | | - Bifrost LLM Gateway: 127.0.0.1:8080 | | - PostgreSQL: 127.0.0.1:5432 | | - Redis: 127.0.0.1:6379 | | - SOC Daemon & Agent Layer: services/daemon, worker, agent | +--------------------------------------------------------------------------+ Enabling Nested Virtualization If Windows 11 is launched with a generic virtualized CPU model such as kvm64 or qemu64 , attempting to register or launch any WSL 2 distribution fails immediately: WSL2 is unable to start since virtualization is not enabled on this machine. Please ensure the "Virtual Machine Platform" optional component is enabled... Error code: Wsl/InstallDistro/Service/RegisterDistro/CreateVm/HCS/HCS E HYPERV NOT INSTALLED In PowerShell, Get-CimInstance Win32 Processor .VirtualizationFirmwareEnabled will report False . To fix this: 1. In the underlying hypervisor, configure the VM processor type to host e.g., qm set