Gateway and External Connectivity
The Switching Tier
Root Switch: USW Aggregation
Access Switch: US-48-500W
- Two U6 Pro Access Points, providing dual-band 802.11ax wireless coverage across the house, powered directly via PoE from the switch
- Wired drops serving the desktop workstation and any client devices that benefit from a wired connection
- Raspberry Pi 3B, running Homebridge on a dedicated wired connection for stability
Compute and Storage
Plex Media Server (Lenovo SFF)
- 16 GB DDR4 RAM
- 1 TB M.2 NVMe SSD for the operating system, Plex database, and Docker metadata
- 2x 4 TB external HDDs mounted for media storage
- Gluetun with a Mullvad VPN tunnel, routing selected container traffic through an encrypted exit node regardless of the state of any other network configuration
- Tautulli for Plex usage analytics and monitoring
- Network Optimiser running in read-only mode for passive network performance monitoring
TrueNAS Server
- 16-core Intel Xeon processor
- 128 GB ECC RAM, which TrueNAS leverages heavily for its ARC (Adaptive Replacement Cache) to accelerate ZFS read operations
- 2x 8 TB Seagate IronWolf Pro drives (7200 RPM, CMR)
- 2x 4 TB Western Digital drives (7200 RPM, CMR)
- Dedicated IPMI interface for out-of-band management
Data Integrity
Bash
#!/bin/bash
SOURCE_DIR="/"
DEST_USER="<NAS_USER>"
DEST_IP="<TRUENAS_IP>"
DEST_DIR="<BACKUP_DATASET_PATH>"
LOG_FILE="<LOG_FILE_PATH>"
SSH_KEY="<SSH_KEY_PATH>"
echo "Starting full system backup at $(date)" >> "$LOG_FILE"
rsync -avz --delete \
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
-e "ssh -i $SSH_KEY" \
"$SOURCE_DIR" "$DEST_USER@$DEST_IP:$DEST_DIR" >> "$LOG_FILE" 2>&1
echo "Backup finished at $(date)" >> "$LOG_FILE"
echo "----------------------------------------" >> "$LOG_FILE"
Bash
#!/bin/bash
SOURCE_DIR="/"
DEST_USER="<NAS_USER>"
DEST_IP="<TRUENAS_IP>"
DEST_DIR="<BACKUP_DATASET_PATH>"
LOG_FILE="<LOG_FILE_PATH>"
SSH_KEY="<SSH_KEY_PATH>"
echo "Starting Plex OS backup at $(date)" >> "$LOG_FILE"
rsync -avz --delete \
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
-e "ssh -i $SSH_KEY" \
"$SOURCE_DIR" "$DEST_USER@$DEST_IP:$DEST_DIR" >> "$LOG_FILE" 2>&1
echo "Backup finished at $(date)" >> "$LOG_FILE"
echo "----------------------------------------" >> "$LOG_FILE"
Automation
Internal Network Summary
- NBN NTD — ISP termination, 10GbE RJ45 to UCG Fiber
- UCG Fiber — Gateway, router, firewall, 10GbE SFP+ DAC to USW Aggregation
- USW Aggregation — Root switch (collapsed core), 10GbE SFP+ backbone
- US-48-500W — Access switch, PoE distribution, 10GbE SFP+ uplink to USW Aggregation
- Lenovo SFF (Plex) — Primary compute, 10GbE SFP+ to USW Aggregation
- TrueNAS — Storage node, dual 1GbE LAG (10GbE pending)
- Raspberry Pi 3B — Homebridge, automation, 100 Mbps to US-48
- 2x U6 Pro — Wireless access points, PoE from US-48
What This Changes in Practice
Technology Stack
- Ubiquiti UCG Fiber (gateway)
- USW Aggregation (10GbE root switch)
- US-48-500W (48-port PoE access switch)
- 2x U6 Pro (802.11ax access points)
- 10GbE SFP+ DAC cabling
- Residential NBN fibre service
- Lenovo SFF (headless Ubuntu Server, 16 GB DDR4, 1 TB NVMe, 10GbE SFP+ NIC)
- TrueNAS (16-core Xeon, 128 GB ECC RAM, 2x 8 TB IronWolf Pro, 2x 4 TB WD, dual 1GbE LAG with IPMI)
- Raspberry Pi 3B (Homebridge, 100 Mbps wired)
- Docker (Gluetun with Mullvad VPN, Tautulli, Network Optimiser)
- TrueNAS with ZFS datasets and snapshot retention
- Plex Media Server
- Homebridge