Infrastructure
Virtual machines, storage, application hosting, operating systems, and service lifecycle management.
INFRASTRUCTURE • NETWORKING • AUTOMATION
Project Midnight is my hands-on homelab for designing, deploying, securing, documenting, and troubleshooting real infrastructure — from ESXi and Docker to DNS, reverse proxying, remote access, IIS, SQL Server, and backups.
$ systemctl status midnight
● active (running)
$ stack --summary
hypervisor VMware ESXi
docker-host Ubuntu Server
dns Technitium
reverse-proxy Nginx Proxy Manager
remote-access Tailscale
app-server Windows IIS
database SQL Server
backups TrueNAS
$ public-site --check
HTTPS OK
reverse-proxy OK
ddns OK
OVERVIEW
The goal is not just to run services. It is to build them in a repeatable, supportable way and document the decisions behind them.
Virtual machines, storage, application hosting, operating systems, and service lifecycle management.
Routing, DNS, reverse proxying, port forwarding, remote access, segmentation planning, and troubleshooting.
Backups, validation, recovery testing, monitoring, documentation, and structured change tracking.
HTTPS, restricted management access, certificate handling, least exposure, and secure remote administration.
ARCHITECTURE
The public web path is intentionally separated from the backend application server.
projectmidnight.ddns.net
Nginx Proxy Manager
Windows Server + IIS
LAN / Tailscale only
PROJECTS
Each project focuses on the design decision, implementation, validation, and lessons learned.
Published a Windows IIS application through a reverse proxy using dynamic DNS, gateway NAT rules, Nginx Proxy Manager, and a trusted TLS certificate.
Built a single-host ESXi environment with vCenter and dedicated Windows/Linux virtual machines for infrastructure services and application workloads.
Standardized container deployment on an Ubuntu VM with Compose-based service definitions and centralized management tooling.
Deployed internal DNS for the homelab namespace, including host records, reverse lookup zones, and client resolution testing.
Implemented secure remote connectivity so management services can remain private while still being reachable away from home.
Built a scheduled backup workflow for application data and configuration, then validated restore procedures rather than treating backup completion as success.
Provisioned a dedicated Windows SQL Server VM with separated OS/data storage to support future application development and database integration.
TROUBLESHOOTING
The most useful part of the lab is often what breaks and how it gets diagnosed.
DNS resolution was healthy and IIS worked internally, but inbound HTTP timed out. The NAT rule had the home's public address entered as a source restriction.
Container management was reachable after correcting the VM NIC, while DNS remained unavailable. The container was recreated and service availability restored.
WAN forwarding to the proxy was correct, but no proxy host existed for the public hostname yet.
BUILD LOG
ESXi, vCenter, Windows and Linux VM foundations established.
Docker, Compose, Nginx Proxy Manager, Portainer, Dockhand, and internal DNS deployed.
Tailscale gateway and private management access validated.
TrueNAS-backed application backups and restore testing implemented.
DDNS, reverse proxying, IIS publishing, and HTTPS completed.
PROJECT MIDNIGHT
This environment is continuously evolving as I add networking, cloud, automation, observability, and application infrastructure projects.