Home Welcome Projects Homelab API Contact
Greg Chetcuti Greg Chetcuti

My Homelab & Network


I'm currently in the process of updating this page (Jan 2025), so it's rather incomplete at the moment.

Introduction

More info coming soon... ish.

For answers to some common questions about my Homelab, check out this Reddit post. Although the diagram has changed completely since then, most of the information is still relevant.

Diagram

To answer the first question people usually ask, I used draw.io to create my Homelab diagram.

Homelab Diagram

Network Hardware

Name Device Purpose
Modem Fibre+ Gateway (XB6) Technicolor CGM4140COM The standard modem that Shaw was giving out years ago. We're about due for an upgrade.
Router/Firewall UniFi Dream Machine Due to our Home Assistant ecosystem growing over time, we eventually had to upgrade to a more powerful router that could handle more devices, as well as give us some spare room for the future. After much research, we splurged and settled on the UDM.
Switch UniFi US-16-150
16-Port PoE+
To switch all of the hard-wired things and power some Raspberry Pis.
WiFi Access Point UniFi UAP-AC-PRO To take some of the load off of the UDM, we moved our WiFi to a separate access point.
WiFi Extender UniFi UAP-BeaconHD To extend WiFi coverage to the other side of our house, and most importantly, the bathroom.
Storage Synology DS1621+, 33.2TB usable After many years of our "NAS" being an external hard drive connected to a Raspberry Pi, we finally decided to do something a bit more proper.

Servers (Internal)

Name Server Specs Purpose
Proxmox1 Dell Precision T5500 2 x Xeon X5650 CPUs (6 core 2.66Ghz, 12MB)
48GB DDR3 EEC RAM
This server does most of the heavy lifting. It runs Proxmox VE and hosts dozens of virtual machines and containers, including the brain of our house, Home Assistant. More info below.

View Software
Proxmox2 Mini PC Alder Lake Ν95 (4 core 3.4Ghz 6MB)
8GB DDR5 RAM
x

View Software
monmon Raspberry Pi Zero 2 W Rev 1.0 BCM2835 CPU (4) @ 1.000GHz
512MB RAM
Visual uptime monitoring using monmon

View Software
PatioPi Raspberry Pi Zero 2 W Rev 1.0 BCM2835 CPU (4) @ 1.000GHz
512MB RAM
PatioPi - A self-hosted website on a Raspberry Pi that teaches you how to self-host a website on a Raspberry Pi

View Software

Name Server Specs Purpose
nginx Raspberry Pi 4 Model B Rev 1.2 BCM2835 CPU (4) @ 1.500GHz
4GB RAM
Web Hosting & Network-wide Reverse Proxy using nginx
Pi-hole1 Raspberry Pi 4 Model B Rev 1.2 BCM2835 CPU (4) @ 1.500GHz
4GB RAM
Network-wide ad blocking and local DNS resolution using Pi-hole (Primary)
Pi-hole2 Raspberry Pi 4 Model B Rev 1.1 BCM2835 CPU (4) @ 1.500GHz
4GB RAM
Network-wide ad blocking and local DNS resolution using Pi-hole (Redundancy)

Servers (External)

I'm currently using Hetzner for all of my external hosting.

Server Type Specs Purpose
Containers Hetzner CPX31 4 vCPUs
8GB RAM
This server hosts 18 Docker Containers.
Gateway Hetzner CPX11 2 vCPUs
2GB RAM
This server acts as a reverse proxy for my Container and LAMP servers, as well as a host for 80+ SSL domain redirects.
LAMP Hetzner CPX11 2 vCPUs
2GB RAM
This server hosts 23 Websites. I went with Apache over nginx due to things like it having better multi-lingual support and the ability to use site-specific .htaccess files.
Matrix Hetzner CPX21 3 vCPUs
4GB RAM
This server hosts my Matrix setup (@greg:greg.ca).
Worker Hetzner CPX11 2 vCPUs
2GB RAM
Various scripts and services that run at regular intervals

Software (Internal)

Proxmox1 - Dell Precision T5500 - Click to view
2 x Xeon X5650 CPUs (6 core 2.66Ghz, 12MB)
48GB DDR3 EEC RAM

Software Hosting Type Purpose
big-AGI LXC Container If you want to self-host a UI for all of your AI needs, your search is over. I've tried established projects like Chatbot UI, and newcomers like Ortlin, but after giving big-AGI a quick test I knew I'd found my new home.

I'm starting to use AI more and more these days, and having a keyboard shortcut setup so that I can pull up big-AGI and start asking a question in less than a second has been great for productivity.
Bookstack LXC Container This is a fantastic self-hosted Wiki. I use this to keep track of all sorts of things, from details about my Homelab, to things like car maintenance records and a list of items in our storage unit.
Build Server Virtual Machine This is a VM I setup to handle software builds, like when I need to build and publish the docker containers for a new release of DomainMOD or HomelabAPI. It just seemed like a good idea to keep things clean and separated, and since I don't need it often, the VM doesn't really use up resources.
DomainMOD LXC Container Open-source application to manage domain and SSL certificate portfolios
FreshRSS LXC Container Self-hosted RSS feed aggregator
Gitea LXC Container Self-hosted Git service
Home Assistant Virtual Machine Open-source home automation platform
Home Assistant API LXC Container API server for Home Assistant home automation platform
IAC LXC Container This server is used for all of my Infrastructure as Code needs. I use it to manage all of my Ansible playbooks, which deploy and configure all of my servers, websites, etc., and I also use it manage the DNS for all of my domains with DNSControl.
Jumpbox LXC Container Secure gateway server for accessing other servers or services
leantime LXC Container Open-source project management system
Mayan EDMS LXC Container Thanks to this software, our household has gone mostly paper-less. Unless it's something important that we want to keep a physical copy of, all documents, bigger receipts, product manuals, etc., get scanned and go directly into Mayan EDMS. It has some nice character recognition features, so you can do text searches on your scans, making it easy to find what you're looking for.
Monica LXC Container This is a great piece of self-hosted contact management software. It's a bit like a CRM, but more focused on personal relationships. I use it to keep track of birthdays, anniversaries, and other important dates, as well as to keep notes on people I know.

And by, "I use it to", I mean I will eventually use it to, as I got this all setup but haven't actually imported my contacts yet. I'm currently using Fastmail for my primary contact source, but eventually plan to migrate everything to Monica.
Pi-hole (Redundancy) LXC Container If you're tired of seeing ads, you should really check out Pi-hole. Its primary function is to be a network-wide ad blocker that you can run on pretty much anything, but it's also a local DNS resolver, which we use to resolve all of our internal hostnames.

I have two Pi-holes setup so that one of them can go down without taking down our local DNS resolution.
Plex LXC Container Media server software for organizing and streaming personal media collections
PM LXC Container Project management software (specific implementation unclear)
Roundcube LXC Container Roundcube is a fantastic web-based email client that I've been using off and on for as long as I can remember. It's a popular email client for web hosting companies to include with plans that include email, and it's been around since 2008, so it's a very mature piece of software at this point.

I don't use this often, but sometimes if I'm waiting for a time-sensitive email and I can't/don't want to wait or Fastmail to retrieve email from all my accounts, I'll just log into Roundcube and check the account directly.
Uptime Kuma LXC Container For years I'd been using the free version of Uptime Robot to monitor for downtime on my websites, after all it seemed like a good idea to rely on a trusted, external 3rd party service for uptime monitoring, but over time they scaled their free plan back enough that it was starting to become a nuisance to keep using. Things like allowing you to continue to use a notification method, but not being able to update it or add a new one. It got to the point where I had to keep an old domain active just because I couldn't update a notification email.

One day I received an email from Uptime Robot announcing a change to their free plan terms, and after a brief scan I decided it was finally time to move away from them. It wasn't a small move (118 monitors total), but I setup two installations of Uptime Kuma, one internally and one externally, and I couldn't be happier with the move! Not only is Uptime Kuma very noticeably faster, but it also doesn't give me random false positives like Uptime Robot did.

Of course, I then had to build support for Uptime Kuma into monmon.
Vaultwarden LXC Container Based on the open source password manager Bitwarden, Vaultwarden is a community-driven alternative with a much more lightweight database. I switched from the official Bitwarden myself years ago after I had to dedicate an entire separate machine to it.

With over 1,200 passwords to manage, I really don't know how I'd live without Vaultwarden, and I'd highly recommend checking it out if you're looking for a password manager (which you should be, everyone should use one). The really nice thing about Vaultwarden is that it's compatible with the official Bitwarden apps.
wallabag LXC Container If you've ever used Pocket, think of wallabag as an self-hosted, open source alternative. It's great when you find articles or videos you want to read or watch, but not right now, you simply save it to wallabag and it'll be waiting for you to read or watch later when you have the time.
Worker LXC Container This server is for random tasks that don't really fit anywhere else, but need to run at regular intervals, such as a nightly cron job that downloads a copy of the live MariaDB databases from all of my servers/websites, timestamps them, and saves them on our NAS.

Proxmox2 - Mini PC - Click to view
Alder Lake Ν95 (4 core 3.4Ghz 6MB)
8GB DDR5 RAM

Software Hosting Type Purpose
nginx LXC Container This server hosts a few websites that we use regularly at home, as well as acts as a reverse proxy for pretty much everything in our network.
Pi-hole (Primary) LXC Container If you're tired of seeing ads, you should really check out Pi-hole. Its primary function is to be a network-wide ad blocker that you can run on pretty much anything, but it's also a local DNS resolver, which we use to resolve all of our internal hostnames.

I have two Pi-holes setup so that one of them can go down without taking down our local DNS resolution.

monmon - Raspberry Pi Zero 2 W Rev 1.0 - Click to view
BCM2835 CPU (4) @ 1.000GHz
512MB RAM

Software Hosting Type Purpose
monmon Pi Custom monitoring solution (specific implementation unclear)

PatioPi - Raspberry Pi Zero 2 W Rev 1.0 - Click to view
BCM2835 CPU (4) @ 1.000GHz
512MB RAM

Software Hosting Type Purpose
PatioPi Pi Custom Raspberry Pi project for patio automation or monitoring (specific implementation unclear)


Software (External)

Server Software Hosting Type Purpose
Containers
xxx - xxx
Gateway
xxx - xxx
LAMP
xxx - xxx
Matrix
xxx - xxx
Worker
xxx - xxx

Smart Home

Smart Home info here.

Backups

Backup info here.

Monitoring

Monitoring info here.

Ansible

Ansible info here.

FAQ

Frequently Asked Questions.

---
Page Last Updated: Mar 2024. RSS Feed
Built with Eleventy, Tailwind CSS, daisyUI. Theme based on the SP 1976 colour palette.
Copyright © 2025 Greg Chetcuti. All rights reserved.
^ Back to Top ^