Network Configuration¶
Network Topology¶
flowchart LR
subgraph External
Internet((Internet))
DNS[DNS<br/>*.mdhmedia.uk]
end
subgraph DMZ
Caddy[Caddy<br/>Reverse Proxy]
WG[WireGuard<br/>192.168.1.236]
end
subgraph Internal
PVE1[Proxmox 1<br/>192.168.1.199]
PVE2[Proxmox 2<br/>192.168.1.151]
Holly[Unraid<br/>192.168.1.200]
Docker1[Docker 1<br/>192.168.1.241]
Docker2[Docker 2<br/>192.168.1.242]
end
Internet --> DNS
DNS --> Caddy
Internet --> WG
Caddy --> PVE1
Caddy --> PVE2
Caddy --> Holly
Caddy --> Docker1
Caddy --> Docker2
Reverse Proxy (Caddy)¶
Caddy runs as the main reverse proxy handling all external traffic for *.mdhmedia.uk.
Configuration Location¶
The Caddyfile is stored in this repository at docker-pve1/management/caddy/Caddyfile.
Features¶
- Automatic HTTPS with Let's Encrypt
- Log rotation (10MB, keep 5 files, 14 days)
- TLS termination for all services
Subdomain Routing¶
| Subdomain | Internal Target | Service |
|---|---|---|
| mdhmedia.uk | 192.168.1.242:3000 | Homepage |
| pve1.mdhmedia.uk | 192.168.1.199:8006 | Proxmox 1 |
| pve2.mdhmedia.uk | 192.168.1.151:8006 | Proxmox 2 |
| holly.mdhmedia.uk | 192.168.1.200:80 | Unraid |
| portainer.mdhmedia.uk | 192.168.1.241:9443 | Portainer |
DNS¶
DNS is managed externally with wildcard records pointing to the Caddy host.
WAN Throughput¶
RESOLVED 2026-07-08 — router-side fix applied
After correcting the 100BASE-T link at the router↔ONT handoff, a single-stream download from pve1 measures ~689 Mbit/s (previously ~92). Multi-stream tests should get closer to line rate. The diagnosis below is kept for reference.
Internet capped at ~94 Mbit/s on a 1 Gbit line (2026-07-07)
The Speedtest Tracker (on Holly) reports ~94 Mbit/s down and up, despite a YouFibre 1000 (symmetric ~1 Gbit) plan. Diagnosed as a 100BASE-T (Fast Ethernet) link at the router ↔ ONT handoff — not the homelab.
Evidence. Fresh Cloudflare pulls from three independent hosts all cap at the same ~92 Mbit/s, and every in-path NIC negotiates gigabit or better:
| Host | Path NIC | ethtool Speed |
Fresh pull |
|---|---|---|---|
Holly (.200) |
virtio → vmbr1 (enp4s0f0) |
10000 Mb/s | 91.9 Mbit/s |
pve2 (.151) |
eno1 (vmbr0) |
1000 Mb/s | 91.9 Mbit/s |
pve1 (.199) |
USB NIC enx3c18a0d4eddd (USB3) |
1000 Mb/s | 91.8 Mbit/s |
Three physically distinct gigabit/10-gig uplinks producing byte-identical ~92 Mbit/s means the bottleneck is a shared downstream 100 Mbit segment — the router's WAN port or the ONT↔router cable. The pve1 USB NIC (a common suspect) is exonerated: it's USB3-gigabit and isn't even in Holly's path. The pinned test server is also cleared (a direct Cloudflare pull matches).
Fix (at the router — nothing to change in the homelab):
- Check the router's WAN interface link speed — it should read
1000, not100. - Most likely a faulty/old ONT → router Ethernet cable (a single bad pair drops the link to 100 Mb/s) — reseat, then replace with known-good Cat5e/6.
- Or the router WAN/LAN port is forced/stuck at 100 Mb/s (or is a Fast-Ethernet-only port) — move to a gigabit port / clear any forced-speed setting.
- Re-run a speed test; expect ~900+ Mbit/s. All internal links are already gigabit+.
VPN (WireGuard)¶
WireGuard VPN server runs at 192.168.1.236 providing secure remote access to the homelab.
Access Points¶
| Service | URL | Port | Purpose |
|---|---|---|---|
| VPN Endpoint | wg.mdhmedia.uk | 51820/UDP | WireGuard tunnel |
| Admin Dashboard | wgadmin.mdhmedia.uk | 10086 | Peer management |
Network Configuration¶
| Setting | Value |
|---|---|
| Server IP | 192.168.1.236 |
| VPN Subnet | 10.8.0.0/24 (typical) |
| Listen Port | 51820 |
| Protocol | UDP |
Client Setup¶
Adding New Peers
Use the admin dashboard at wgadmin.mdhmedia.uk to:
- Create a new peer/client configuration
- Download the configuration file or scan QR code
- Import into WireGuard client on your device
Supported Clients¶
| Platform | Client |
|---|---|
| Windows | WireGuard for Windows |
| macOS | WireGuard for macOS |
| iOS | WireGuard for iOS |
| Android | WireGuard for Android |
| Linux | apt install wireguard or equivalent |
Split Tunnel vs Full Tunnel¶
Routing Options
- Split Tunnel: Only homelab traffic (192.168.1.0/24) routes through VPN
- Full Tunnel: All traffic routes through VPN (use
AllowedIPs = 0.0.0.0/0)
Split tunnel is recommended for better performance when only accessing local services.
Firewall Rules¶
Ensure the following ports are forwarded to the WireGuard server:
| Port | Protocol | Purpose |
|---|---|---|
| 51820 | UDP | WireGuard tunnel |
Troubleshooting¶
Connection Issues
- Verify UDP port 51820 is forwarded on your router
- Check that the endpoint hostname resolves correctly
- Ensure client private key matches server's peer public key
- Verify the AllowedIPs configuration on both ends
- Check firewall rules on the WireGuard container/host