The Real Setup

Every homelab guide shows you a perfect network diagram with enterprise hardware, rack mount servers, and clean cable management. This isn’t that. This is a homelab that grew organically over two years, running on a $200 used Dell OptiPlex, a consumer-grade managed switch, and whatever else was sitting around.

The goal isn’t perfection — it’s a network that works reliably, is segmented enough to contain damage, and doesn’t require constant maintenance.


The Hardware

Primary Server:

  • Dell OptiPlex Micro (12th gen i5-12500T)
  • 32GB DDR4 RAM
  • 2TB NVMe (Samsung 970 EVO Plus)
  • Proxmox VE 8.1
  • 8 VMs, 14 containers total
  • Idle power draw: ~18W

Storage (separate from compute):

  • Synology DS923+ (4x 8TB WD Red in SHR)
  • Handles file storage, Time Machine backups, photo library
  • Runs Synology Drive Server and Active Backup

Network:

  • TP-Link T1600G-28TS (managed, VLAN-capable)
  • Netgear R7000 running OpenWrt 23.05 (WiFi AP + router)
  • USG-XG8 VoIP gateway (for landline integration)

Physical layout: Server and switch live in a closet with passive ventilation. Power draw is low enough that passive cooling is fine. The Synology is in the same closet.


The Network Topology

V M 1 F p l L a 9 a h a A i 2 m o p N n . i n t 1 l e o 1 L 6 y s p 0 A 8 , s N . 1 I N R 1 V I 1 S h d n e 7 9 L o 9 m o e t t 0 2 A T 2 a m v e g 0 . N . r e i r e 0 1 1 t c n a 6 2 6 e e ( r A 8 0 8 s t 1 P . . G 1 2 b . p 1 s f i O D b p H e e C V H 1 S V c r n P L o 9 e M o ) W A m 2 r s n r s N e . v , t t e l 1 i a r 3 a 6 c i ( v 0 b 8 e n r e . s e o r 3 r u s t e r m o d e )

VLAN 10 — Main LAN: Devices you trust completely. Family phones, laptops, tablets. Full access to everything.

VLAN 20 — IoT: Isolated from everything except internet access. Smart bulbs, sensors, thermostats — anything that doesn’t need to talk to your server directly. Access from main LAN via firewall rules for admin only.

VLAN 30 — Homelab: Where the server lives. Hosts all your services. Only accessible from VLAN 10, and only on specific ports.


The TP-Link switch does the heavy lifting. Here’s how it’s configured:

P P P P P o o o o o r r r r r t t t t t 1 9 1 2 2 - - 7 5 6 8 1 - : : : 6 2 : 4 : V V V T T L L L r r A A A u u N N N n n k k 1 2 3 0 0 0 ( ( a a ( ( ( l l u u u l l n n n t t t V V a a a L L g g g A A g g g N N e e e s s d d d ) ) ) ) ) U S M I H p p a o o l a i T m i r n e n e d l k L e a A v b t N i o c s d e e r e s r o v v u i e t c r e e , r s N A S

The switch doesn’t do inter-VLAN routing — that’s the router’s job. The Netgear running OpenWrt has firewall rules that:

  • Block VLAN 20 → VLAN 10 entirely (IoT can’t reach family devices)
  • Allow VLAN 10 → VLAN 30 on specific ports only (22, 80, 443, 8123, etc.)
  • Allow VLAN 20 → VLAN 30 only for MQTT (1883) — smart home control
  • Allow all VLAN 10 → internet
  • Allow all VLAN 20 → internet (smart devices need cloud access)

The Services and Where They Live

Service VLAN Container/VM Memory Notes
Home Assistant 30 VM (LXC) 2GB Z-Wave/Zigbee via USB stick
AdGuard Home 30 Docker 256MB Network-wide DNS + ad blocking
Jellyfin 30 Docker 4GB Media server, hardware transcode
Nginx Proxy Manager 30 Docker 128MB Reverse proxy + SSL
Vaultwarden 30 Docker 256MB Password manager
Nextcloud 30 Docker 1GB File sync, calendar, contacts
Uptime Kuma 30 Docker 128MB Service monitoring
Duplicati 30 Docker 512MB Backup manager
Pi-hole 20 Docker 128MB Secondary DNS for IoT VLAN
Mosquitto 30 Docker 64MB MQTT broker for smart home

Total memory used at idle: ~9GB. The server has 32GB, so there’s headroom for burst workloads.


How Services Communicate

All Docker containers run in a custom bridge network (homelab_net) that only spans the homelab server. Containers reference each other by container name — no IP addresses needed.

a a n u d d g p g g i t u u n i a a x m r r - e d d p - r k h o u e i o x m x n m y a t t e n n e e l g e m r r a i x o n n b n t n a a _ x c v i l l n - l a t e p o u o a D t r u l r c N o d t s c S ( x w e : D y a a s o r d s a c d g d k e u v g e n a i u r j r a a e d r b l , N d r l P . i y j M h d f e o g i l m e n l e ) y l f a i b n , e t c

AdGuard is the DNS server for all VLANs. Requests from VLAN 30 go to AdGuard, which resolves internal names via /etc/hosts entries:

1 1 1 9 9 9 2 2 2 . . . 1 1 1 6 6 6 8 8 8 . . . 3 3 3 . . . 2 2 2 a j n d e e g l x u l t a y c r f l d i o . n u h . d o h . m o h e m o l e m a l e b a l b a b

No more memorizing IPs — every service is reachable by name from any container.


External Access

Two tools, running simultaneously:

Cloudflare Tunnel — for services accessed by people outside the home:

  • Family members accessing Home Assistant
  • Remote access to Nextcloud for specific users
  • Traefik routes through the tunnel, Cloudflare handles auth

Tailscale — for personal access:

  • SSH into the server from anywhere
  • rsync files from the NAS to a remote laptop
  • Direct access to Jellyfin for media management

Both run with zero port forwarding. The server initiates outbound connections to their respective services, and external traffic flows back through those established connections.


The Backup Strategy

Three layers:

  1. Proxmox backup — daily VM/LXC snapshots to NAS. 7-day retention locally.
  2. Duplicati — config directories and important data volumes backed up to Backblaze B2 nightly.
  3. Synology Active Backup — daily full image backups of the Proxmox boot disk to the Synology.

If the server dies, I can be back up on replacement hardware in under 2 hours. If the Synology dies, I order a new one and restore from B2. The $8/month B2 bucket is cheaper than a second NAS and handles offsite redundancy.


What I’d Change

1. More switch ports from the start

Running out of ports mid-project meant buying a second switch. A 24-port from the start would have been cleaner.

2. Dedicated management VLAN

Right now admin access to the switch and router is from the main LAN. A dedicated out-of-band management VLAN (VLAN 99) connected to a $50 used console switch would be more secure.

3. UPS for the server

The server has no battery backup. A APC BE600M1 would give enough time to shut down gracefully during brief outages and save the container state.

4. 10GbE uplinks

The NAS sits on 1Gbps ethernet, which is fine for most access but bottlenecks when moving large media libraries. A CAT6A run to the server with a 2.5GbE adapter in the OptiPlex would be a reasonable upgrade.


The Point

A homelab doesn’t need to be elaborate. A single used desktop, a managed switch, and some time to set up VLANs correctly gives you a network that’s more reliable and more secure than most small business networks — because you built and configured every piece of it.

The services you run on top of that foundation are what make it useful. DNS blocking saves bandwidth. Media servers make content accessible. Backup tools make recovery possible.

Start small. Add services as you need them. Segment early.