INFRASTRUCTURE • NETWORKING • AUTOMATION

Building enterprise-style infrastructure at home.

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.

Focus IT Infrastructure
Platform VMware + Windows + Linux
Status Active build
project-midnight
$ 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

What this lab demonstrates

The goal is not just to run services. It is to build them in a repeatable, supportable way and document the decisions behind them.

01

Infrastructure

Virtual machines, storage, application hosting, operating systems, and service lifecycle management.

02

Networking

Routing, DNS, reverse proxying, port forwarding, remote access, segmentation planning, and troubleshooting.

03

Operations

Backups, validation, recovery testing, monitoring, documentation, and structured change tracking.

04

Security

HTTPS, restricted management access, certificate handling, least exposure, and secure remote administration.

ARCHITECTURE

Current service flow

The public web path is intentionally separated from the backend application server.

01 Internet Public clients
02 DDNS Stable public hostname
03 Gateway TCP 80 / 443 forwarding
04 NPM TLS + reverse proxy
05 IIS Application server
Public entry projectmidnight.ddns.net
TLS termination Nginx Proxy Manager
Backend Windows Server + IIS
Management LAN / Tailscale only
Security design: The IIS server is not directly exposed to the Internet. Public HTTP/HTTPS traffic is forwarded to the reverse proxy, while management interfaces remain private.

PROJECTS

Infrastructure case studies

Each project focuses on the design decision, implementation, validation, and lessons learned.

Virtualization Active

VMware Homelab Platform

Built a single-host ESXi environment with vCenter and dedicated Windows/Linux virtual machines for infrastructure services and application workloads.

ESXivCenterWindows ServerUbuntu
Containers Complete

Docker Application Host

Standardized container deployment on an Ubuntu VM with Compose-based service definitions and centralized management tooling.

DockerComposePortainerDockhand
DNS Complete

Internal DNS with Technitium

Deployed internal DNS for the homelab namespace, including host records, reverse lookup zones, and client resolution testing.

TechnitiumDNSPTRhome.arpa
Remote Access Complete

Private Remote Administration

Implemented secure remote connectivity so management services can remain private while still being reachable away from home.

TailscaleLinuxRoutingSplit DNS
Data Protection Validated

TrueNAS Backup Workflow

Built a scheduled backup workflow for application data and configuration, then validated restore procedures rather than treating backup completion as success.

TrueNASNFSAutomationRestore Testing
Database Active

SQL Server Platform

Provisioned a dedicated Windows SQL Server VM with separated OS/data storage to support future application development and database integration.

SQL ServerWindows ServerVMware

TROUBLESHOOTING

Problems solved along the way

The most useful part of the lab is often what breaks and how it gets diagnosed.

INC-01

Public IIS site timed out through DDNS

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.

Root cause Incorrect Source IP restriction on gateway NAT rule
Resolution Removed source restriction and validated externally over cellular
INC-02

Technitium unavailable after VM/network issue

Container management was reachable after correcting the VM NIC, while DNS remained unavailable. The container was recreated and service availability restored.

Lesson Validate host networking first, then container health and published services
INC-03

Reverse proxy showed the default NPM landing page

WAN forwarding to the proxy was correct, but no proxy host existed for the public hostname yet.

Resolution Created hostname mapping from NPM to the internal IIS backend

BUILD LOG

Selected milestones

Phase 01

Core virtualization platform

ESXi, vCenter, Windows and Linux VM foundations established.

Phase 02

Container services

Docker, Compose, Nginx Proxy Manager, Portainer, Dockhand, and internal DNS deployed.

Phase 03

Secure remote management

Tailscale gateway and private management access validated.

Phase 04

Backup and recovery

TrueNAS-backed application backups and restore testing implemented.

Phase 05

Public application delivery

DDNS, reverse proxying, IIS publishing, and HTTPS completed.

PROJECT MIDNIGHT

Built to learn by doing.

This environment is continuously evolving as I add networking, cloud, automation, observability, and application infrastructure projects.

Back to top