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.
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
- CPU: Intel i5 7500T
- RAM: 16GB DDR4
- SSD: 1TB Nvme
- OS: Proxmox
- First Node
- CPU: Intel N150
- RAM: 16GB DDR4
- SSD: 2 x 500GB Nvme
- OS: Proxmox
- Second Node
- CPU: ARM Cortex-A72 (ARM v8)
- RAM: 8GB
- SSD: 32GB SD Card
- OS: Raspberry PI OS
- Quorum Device
- CPU: Realtek CPU
- RAM: 2GB DDR4
- HDD: 2 x 4TB Synology Drive
- OS: Synology OS
- Main NAS
- 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
- Home Automation
- Manage Phone Notifications
- Schulde Home Tasks
- Zigbee2Mqtt
- Mosquitto Broker
Dell Optiplex 3050 LXCs
Ad blocking, DHCP and DNS server
Beelink Mini S13
- Cronicle for scheduled Tasks
- Backrest for backups Link
- DDns-Updater Link
Raspberry PI 4
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
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.