Home-Lab Setup

Intro

What started out as just messing around turned into a 10 inch server rack over the duration of a few years and i could not be happier of how it all turned out and how much i learned in all this time.

ServerImage

In the very beginning i started out with just a Raspberry PI 4 and bare metal installed Home-Assistant OS. I then changed to using Docker compose to not need a single machine for every single service. I had Home-Assistant and Jellyfin running with simple Port Bridge Networks and no SSL whatsoever. At some point a wanted to make everything more proper and went on to use a Reverse Proxy and proper SSL encryption.

Fast forward some time and I got around to buying my first MiniPC, which you can see in the picture next to the very Raspberry PI 4 which started me out. I ran bare metal Ubuntu Server on it and had it running for quite some time until i decided it was time to change things up again.

We now have arrived at my current setup in the Picture which consists of a two Node Proxmox Cluster and a single Raspberry PI 4 as a Quorum Device. I also added a small Synology NAS for all my Backups and Files i will get to in a moment. The latest addition i made was the 16 Port Switch at the very top. It is way overkill at the moment but i just wanted to have it haha. Everything is now housed in a small 10 inch server rack to have everything nice and tidy. Of course a proper off-site backup is also needed to complete the whole deal.

Setup

Feel free to jump directly to the setup guide for some of these things.

Proxmox Ubuntu Setup

How to setup a Ubuntu Server VM in Proxmox

Docker Setup Guide

A guide for setting up docker and Dockge

Reverse Proxy Setup

How to setup your reverse proxy and proxy a service using it

Mount SMB Shares and HDD/USB

How to mount SMB Shares and HDD/USB Sticks on boot

Hardware

Dell OptiPlex 3050 Micro

  • CPU: Intel i5 7500T
  • RAM: 16GB DDR4
  • SSD: 1TB Nvme
  • OS: Proxmox
  • First Node

Beelink Mini S13

  • CPU: Intel N150
  • RAM: 16GB DDR4
  • SSD: 2 x 500GB Nvme
  • OS: Proxmox
  • Second Node

Raspberry PI 4

  • CPU: ARM Cortex-A72 (ARM v8)
  • RAM: 8GB
  • SSD: 32GB SD Card
  • OS: Raspberry PI OS
  • Quorum Device

Synology DS223

  • CPU: Realtek CPU
  • RAM: 2GB DDR4
  • HDD: 2 x 4TB Synology Drive
  • OS: Synology OS
  • Main NAS

Misc Parts

  • 10 Inch Rack - GeeekPi 8U Link
  • Thingiverse 3D Print OptiPlex 10 Inch Mount Link
  • Thingiverse 3D Print 16 Port Switch Mount Link
  • Zyxel 16-Port Gigabit Ethernet Unmanaged Switch Link
  • GeeekPi 12 Port Patch Panel Link
  • DIGITUS 4-Fach Steckdosenleiste - 1HE - 10-Zoll Link

Software Running on the Server

Dell Optiplex 3050 VMs

Ubuntu Server VM for Docker Link

Home Assistant OS VM Link

  • Home Automation
  • Manage Phone Notifications
  • Schulde Home Tasks
  • Zigbee2Mqtt
  • Mosquitto Broker

Dell Optiplex 3050 LXCs

Wireguard LXC Link

    To stay connected to my home network when out and about

Adguard LXC Link

    Ad blocking, DHCP and DNS server

Beelink Mini S13

Immich LXC Link

    For ditching Google Photos for good now

Cronicle LXC Link

  • Cronicle for scheduled Tasks
  • Backrest for backups Link
  • DDns-Updater Link

Raspberry PI 4

RClone Server

    A place to backup important nas files to yet another drive.

Quorum Device

    To solve the problem of a two Node Cluster being read only when one node is down.

Backup Plan

For backups i try to follow the 3-2-1 Rule as best as i can. All my Proxmox VMs and Containers are backed up every night to my NAS in stop mode. I always keep backups of the last seven days on my NAS. Every sunday i upload this days backups to a external cloud provider as a encrypted rsync target. Additionally for my Main Docker VM i use a combination of two services to have another file based backup. I mount the root of all the docker files as a NFS Share to my Cronicle LXC. There a daily backup using Backrest is triggered to have nice incremental file backups of the last 14 days. The restic pool is also offloaded to a cloud service for the offsite part.

The Backups on the NAS are also protected against single drive failure because of the RAID1 i am usng on there. Additionally the most important files are duplicated again every night to my Raspberry PI 4 with a attached USB-HDD.

The 3-2-1 Rule

BackupRuleImage

This rule states that you should have at least 3 copies of your files on 2 different types of storage and at least 1 offsite backup.

In my case that would be that i have the live copy, the backup on my NAS and the copy on the external cloud provider. I have two different types of storage. One being the NAS HDD and one being the Cloud Provider (yes i know they also only use HDD). The cloud provider also fulfills the last part for the offsite backup.

Even if my House burns down, this should suffice for disaster recovery, since the VM and LXC dumps will be saved offsite. If for some reason my house and the cloud provider burn down at the same time... well bad luck i guess.