Home lab
A Windows Server domain on a Proxmox host, built from scratch to practice the work of a systems and network administrator: directory services, name resolution, address assignment, and the troubleshooting in between.
Overview
Certifications teach the vocabulary. The lab is where I find out whether I can actually make the pieces talk to each other. I set aside a second PC, installed Proxmox VE as the hypervisor, and built the smallest realistic version of a business network on top of it: one Windows Server promoted to a domain controller, DNS and DHCP running on that controller, and two Windows clients joined to the domain with test users organized into OUs.
The goal is not the finished topology. It's the log below of each step, what went wrong, how I narrowed it down, and what the fix taught me. That's the part of the job I want to be good at.
Hardware
| Host | Secondary desktop PC (no monitor attached; managed through the Proxmox web UI) |
|---|---|
| CPU | Intel Core i5-11400F, 11th gen, 6 cores, 2.6 GHz base |
| Memory | 16 GB DDR4-3200 |
| Storage | 500 GB SSD |
| GPU | NVIDIA RTX 2060 (present, unused by the lab) |
| Hypervisor | Proxmox VE |
Architecture
Everything runs as a virtual machine on the single Proxmox host. The domain controller carries the three services every client depends on; the clients exist to prove that joining, authenticating, and resolving names all work end to end.
- Active Directory Domain Services
- DNS server, authoritative for the lab domain
- DHCP server, scope for lab clients
- Test user accounts and OUs
- Domain-joined
- Address from DHCP
- DNS pointed at the DC
- Domain-joined
- Address from DHCP
- DNS pointed at the DC
- Uptime Kuma
Drop in a simple diagram showing the IP scheme and VM layout (subnet, DC address, DHCP scope range, client addresses, bridge name). An SVG or PNG exported from draw.io works well here; replace this block with an <figure> containing the image and a one-line caption.
Build log
Each phase records what was built and, more usefully, what broke and how it was diagnosed.
-
Hypervisor
Install Proxmox VE on the host
What was built
Wiped the secondary PC, installed Proxmox VE to the SSD, and configured it to run headless so it could be managed entirely from a browser on my main machine. Set up the virtual bridge that all lab VMs attach to.
Placeholder: what broke, how it was fixedDescribe any install or first-boot problems (boot media, network interface naming, web UI access, storage layout), the steps taken to isolate the cause, and the fix. Two to four sentences per issue.
-
Server
Create the Windows Server VM
What was built
Created a Windows Server VM with a static address, installed guest tools, renamed the machine to its planned hostname, and confirmed it could reach the network before adding any roles.
Placeholder: what broke, how it was fixedCover anything from VM resource sizing to driver or network adapter issues, and what you checked first.
-
Directory
Promote the server to a domain controller
What was built
Installed the Active Directory Domain Services role, created a new forest and domain, and promoted the server to the first domain controller. Verified the promotion with the standard checks and confirmed the server rebooted cleanly into the domain.
Placeholder: what broke, how it was fixedPromotion prerequisites, naming, or replication warnings are typical here. Note the exact error text if you have it, since hiring managers search for those.
-
Name resolution
Configure DNS on the domain controller
What was built
Set the DC as the authoritative DNS server for the lab domain, checked that the AD-integrated zones and service records were created, and configured forwarders so lab machines can still resolve public names.
Placeholder: what broke, how it was fixedDNS is the most common source of "the domain join fails" problems. Describe the symptom, the
nslookupor event-log evidence, and the fix. -
Addressing
Configure DHCP on the domain controller
What was built
Installed the DHCP role, authorized it in Active Directory, and created a scope for lab clients with the DC set as the DNS server option so every client automatically learns where to resolve names.
Placeholder: what broke, how it was fixedAuthorization, scope options, or clients not receiving leases are typical. Include how you confirmed a lease was handed out.
-
Clients
Join two Windows clients to the domain
What was built
Created two Windows client VMs, confirmed each received an address and DNS settings from DHCP, joined both to the domain, and signed in with domain accounts on each to verify authentication end to end.
Placeholder: what broke, how it was fixedDomain join errors, time skew, or sign-in failures belong here. This is usually the richest troubleshooting story on the page.
-
Users
Create test users and organizational units
What was built
Built an OU structure that mirrors a small company (for example, departments and workstations), created test user accounts inside it, and confirmed those users could sign in on the domain-joined clients. This is the foundation the Group Policy work will attach to.
Placeholder: OU layout and what brokeList the OU tree you settled on and any account or permission issues you ran into while testing sign-ins.
Screenshots
Replace each tile with an <img> and a short caption. Suggested set: Proxmox dashboard with all VMs, Server Manager showing the AD DS, DNS and DHCP roles, the DNS zone with service records, the DHCP scope and active leases, a client's ipconfig /all, and Active Directory Users and Computers with the OU tree.
- proxmox-dashboard.png
- server-manager-roles.png
- dns-zone-records.png
- dhcp-scope-leases.png
- client-ipconfig.png
- aduc-ou-tree.png
Planned next phases
- Domain controller with DNS and DHCPComplete
- Two domain-joined clients, test users and OUsComplete
- Group Policy ObjectsApply password, desktop and software policies to the OUs already in place
- File share with NTFS permissionsDepartment shares with group-based access, the everyday ticket in a real environment
- VLAN segmentationSeparate server, client and management traffic; the Network+ material in practice
- Monitoring with Uptime KumaAlerting on DC, DNS and DHCP availability
Questions about the build, or want to talk through it? Get in touch.