Post

V3 Architecture: Hardware Build, Migration & Service Monitoring

Retiring pavilion, building an Optiplex 7060 micro as the new primary node, and deploying Uptime Kuma.

V3 Architecture: Hardware Build, Migration & Service Monitoring

Why V3 Exists

V2 closed in a good state: three isolated VLANs, centralized DNS, HTTPS service routing, and a SIEM with validated custom detection rules. The natural next steps were expanded detection coverage, remote access via WireGuard or Tailscale, and more services on inspiron.

That plan changed when I found a Dell Optiplex 7060 micro on sale at a very good price. pavilion, the V2 primary node, was an HP All-in-One from 2014 running a mobile i5, 16 GB of old DDR3L, and delivering okayish performance. The Optiplex offered more capability in a much smaller form factor, and so the decision was made to lead into a V3 rebuild rather than extending V2 any further.

pavilion was decommissioned, its SSD pulled for reuse, and Optiplex would replace it as the new node: optiplex.


Hardware: Optiplex 7060 Micro

The Optiplex 7060 Micro is a small-form-factor business desktop built on Intel’s 8th-generation platform. The unit arrived without storage and with a base CPU configuration.

As Arrived

SpecValue
TypeDell OptiPlex 7060 Micro
CPUIntel Core i5-8500T (6c/6t, 3.5 GHz boost)
RAM16 GB DDR4 (1×16 GB)
StorageNone

Upgrades

Two components were purchased separately; storage was migrated from pavilion:

ComponentChangeNotes
CPUi5-8500T → i7-8700T6c/12t, 4.0 GHz boost, doubles thread count
RAM16 GB → 32 GB DDR4Second matching 16 GB stick added
Storage1 TB SATA SSD migrated from pavilion

Doubling the thread count from 6 to 12 helps with better VM concurrency and headroom as the workload grows.

Assembly

The Optiplex uses a release mechanism for its side panel. The CPU socket (LGA 1151), RAM slots, and 2.5” drive bay are all accessible with few cable management complications.

Optiplex internals exposed Optiplex 7060 Micro opened for component installation

Optiplex upgraded Upgrade completed

Final Specifications

SpecValue
TypeDell OptiPlex Micro 7060
CPUIntel Core i7-8700T (6c/12t, 4.0 GHz boost)
RAM32 GB DDR4
Storage1 TB SATA SSD
OSProxmox VE
VLAN20 — Lab

BIOS Verification

Before any software installation, the system was powered on and BIOS was entered to confirm every component was detected correctly.

BIOS components detection BIOS confirming all components

All three components registered correctly. Time to boot into the Proxmox installation media.

Boot source configured Ventoy boot menu


Proxmox VE

The Proxmox installation followed the same process documented in V1 and V2. The Optiplex is modern enough that UEFI boot and USB detection worked without any of the Legacy Boot troubleshooting the original Pavilion required.

The management IP was assigned statically on VLAN 20, and it would inherit pavilion’s previous address.

Post-install steps were identical to V2: enterprise repository disabled, community repository enabled, subscription nag removed.


Core Services Migration

With Proxmox running, core services were reinstalled using the community helper scripts, the same method as V2.

Pi-hole and Nginx Proxy Manager were deployed first. Both followed the configuration already covered in the V2 infrastructure posts; local DNS records and proxy host entries were recreated identically.

Pi-hole had a brief downtime window during the transition. A non-issue as I already configured OpenWRT with a secondary upstream DNS server as a fallback, so devices continued resolving DNS without interruption.

Wazuh was redeployed as well. Agent enrollment and custom detection rule configuration are documented in full in the V2 Wazuh posts; the V3 deployment introduced no meaningful differences.


Uptime Kuma: Service Monitoring

Uptime Kuma is a new service introduced in V3. It provides continuous uptime monitoring for services, surfacing availability issues with a clean status dashboard.

Wazuh handles security event detection and log analysis. Uptime Kuma answers a different question:

Is the service up and responding?

Deployment

Uptime Kuma was deployed as an LXC container on optiplex using the Proxmox VE community helper scripts.

SettingValue
CT ID301
VLAN20 — Lab

After installation, a local DNS record was added in Pi-hole pointing kuma.jamcre.dev to the NPM IP, and a reverse proxy host was created in NPM for the domain, the same pattern used for every other service in the stack.

Uptime Kuma LXC install complete Uptime Kuma LXC container installed in Proxmox

Dashboard

Monitors are configured for all active services, accessed through their NPM-routed domains.

Uptime Kuma dashboard Uptime Kuma dashboard with active monitors across all lab services

The current setup uses default configuration from the helper script, no custom notification channels, status pages, or monitor intervals yet. This is a starting point; a dedicated post may cover Uptime Kuma in more detail later.


Naming Convention Updates

V3 introduced three hostname changes: two renames of existing machines and one new addition.

HostnamePrevious NameMachineVLAN
forgecitadelCustom desktop (i7-10700K, 32 GB, RTX 3070, Win 11)10 — Trusted
slateannexMacBook Pro 13-inch 2020 (macOS Sequoia)10 — Trusted
midnightM2 MacBook Air (macOS)10 — Trusted

forge and slate are the same physical machines from V2, hostname changes only. midnight is a new node, already configured with a static DHCP lease and a Wazuh agent enrolled.

As the infrastructure has grown across three homelab generations, keeping naming conventions, hardware specs, and service assignments organized has become too extensive. Thus I will have, at a later date, documentation posts that will be living documents, updated as things change.


V3 Architecture: Current State

LayerComponents
Hardwareoptiplex (primary node), inspiron (available), forge, slate, midnight
NetworkThree-VLAN architecture — unchanged from V2
VirtualizationProxmox VE on optiplex
DNSPi-hole — cross-VLAN resolution, local hostname records
SSL / RoutingNginx Proxy Manager — wildcard certificate, HTTPS for all services
SecurityWazuh SIEM — agents enrolled on all active machines
MonitoringUptime Kuma — uptime checks across all NPM-routed services

What’s Next

optiplex is live, core services are running, and the monitoring layer is in place. V3 launches with a stronger foundation than V2. More CPU threads, twice the RAM on the primary node, and service uptime visibility from day one.

The infrastructure is stable. What gets built on top of it is still taking shape.

This post is licensed under CC BY 4.0 by the author.