Homelab Overview

Network

  • Linksys MX4300 running OpenWRT, plugged into ISP ONT set to bridge mode.
  • Various smart switches along the way to handle VLANs
  • 2x UniFi UAP-AC-Lite, 1x UAP-AC-HD

Hardware

The whole ‘rack’ with networking gear and the hardware below sits at about 120W of power draw.

Moxxie

  • HP ProDesk 600 G3 | i5-7500, 48GB RAM | Proxmox
    This is my general server where the bulk of services run. It has enterprise SSDs because I kept wearing out consumer models.
    • 2x 960GB Samsung SM863 SSDs in ZFS Mirror, for OS, VMs, and Containers.
    • 2x 10TB in ZFS Mirror, for Media and Files.
    • 1x 16TB as ZFS Single, for Backups from our PCs.
    • 1x 5TB as ZFS Single, for Proxmox Backup Server.
      (Yes this all fits inside that little case with some 3D printed brackets, it’s not pretty!)

Frieren

  • Dell Optiplex 3000 | i5-12500 | 16GB RAM | Proxmox
    Bought this as my game server due to the very high single thread performance.
    • 1x 256GB SSD as ZFS Single

Felix

  • Unknown Digital Signage PC | i3-7100u | 20GB RAM | Proxmox
    This runs proxmox backup server and a few other lightweight things. Only uses about 2W at idle!
    • 1x 128GB SSD as ZFS Single.
    • 1x 5TB as ZFS Single, for Proxmox Backup Server.

Applications

  • AMP for the game servers
  • Actual
  • Adguard Home
  • Beszel
  • Change Detection
  • Cloudpanel (runs this website!)
  • FreshRSS
  • Frigate
  • Ghostfolio
  • Gitea
  • Grafana
  • Healthchecks
  • Hister
  • Home Assistant
  • Immich
  • Mealie
  • SFTPGo as a WebDAV server
  • SearXNG
  • Syncthing
  • Traccar
  • UniFi
  • Uptime Kuma

How I Handle Backups

  • User PCs and Important Server Files (Like application data)
    • Backrest manages and runs Restic on a nightly schedule, it sends backups to Rest server running on Moxxie to the 16TB drive.
    • For user PCs I also back up AppData and ProgramData (windows), with a large exclude list of junk I don’t want.
    • Backrest also sends backups to a hosted storage box as an offsite, online backup. I use HostBrr.
    • Backrest sends a ping to Healthchecks when a backup completes (or fails), which then notifies me via ntfy.sh if something has gone wrong.
    • For the exclude list backrest runs a script before backup that pulls the txt file from a webserver, this way I can update the exclude list for all backups at once.
  • VMs and Containers
    • Proxmox sends these nightly to Proxmox Backup Server running on Moxxie
    • Several hours after, PBS on Moxxie mirrors the backups to PBS on Felix for a 2nd copy.
    • PBS emails me in the morning after each backup, or if something failed.

I test backups occasionally, for Backrest I restore some files from a random host and make sure the size looks correct and everything works OK. For PBS I’ll restore a VM or Container and disable the network interface, then I can boot it up and check things without causing any conflicts on the network.