What's on my homelab?

Running your own homelab is something I encourage everyone to do. We're increasingly seeing online services shift to subscription models, which means less control over our data, less privacy, and higher prices.
Whenever possible, I try not to sacrifice privacy for convenience. In 2025, it’s easier than ever to get your own homelab started with a relatively low financial investment, but you’ll certainly have to spend some time to get things exactly how you want them. But that's the best part!
So, what’s my setup?
The hardware
I currently have a combination of devices from various brands. I absolutely hate “all-in-one” devices, especially those router-modem-firewall combo units. While there may be a few gems out there, I prefer to have separate devices dedicated to a single, specific job.
For hosting a homelab from your house, you'll want to prioritize the best internet deal you can find, focusing on upload speed, not download speed. At least 40-60 Mbps is good if you don't have fiber in your area.
Everything in my homelab, including my main gaming rig, is powered by a backup battery. I'm a fan of CyberPower and APC UPS devices. They've never failed me, and when the batteries eventually wear out, I simply order replacements. They’re reliable devices that will protect your hardware from power surges and outages.
For internet connectivity (the modem), I’ve got an ARRIS Surfboard modem alongside a 4G LTE modem (LB1120) for failover. Whenever possible, buy your own modem—do NOT rent it from your provider.
For the router, I've got my trusty EdgeRouter 4. It has 1 Gbps ports, dual WAN (for failover), and enough processing power to handle my demanding network. At any given time, I have 40-70 devices connected to my local or IoT network. Every part of the homelab should ideally be a wired connection; I don't recommend hosting anything on your homelab over Wi-Fi.
From there, we have access points and PoE network switches for connecting the devices. With this setup, I can maintain a connection even if the power goes out or my internet provider experiences an outage. My access points for Wi-Fi are a couple of Ubiquiti UniFi access points mounted throughout the house. These are excellent and can handle a high number of simultaneous devices.
Now for the actual home servers! I’ve built a custom machine using mostly consumer-grade hardware and a couple of Raspberry Pis. I went with a Chopin MAX mini-ITX case, an ASRock H670M-ITX motherboard, and an Intel Core i5-12400 with 64 GB of RAM. The total cost for this build at the time was just under $800. I’ve also paired this with a TerraMaster D5 Hybrid HDD NVMe Enclosure for external storage over 10 Gbps USB 3.
If this sounds too involved, don’t worry—you can run your homelab on just about anything! If you’ve got an old PC or laptop lying around, start with that!
Here's the basic hardware breakdown:
Cable/4G Modem -> EdgeRouter/Firewall -> PoE Switch -> Infrastructure:
- Access Points
- Servers
- Workstations
I also have limited space in my office, so I crammed everything into a "server cabinet" and cut out some holes for ventilation and some cabinet fans. It actually works quite well, keeps the noise down too! I also tossed in a couple extra fans just because I had them laying around and it wouldn't hurt.
The little ghost is sitting on top of the 4G modem.
Proxmox on the host machine
Many years ago I started out using VMWare ESXi, it was great. But it was recently aquired by Broadcom and the enshitification has made it unusable for homelabbers. Proxmox is a (free!) wonderful alternative and I've been using it for a while now. If you've got enough RAM for virtualization, you absolutely should do it. If you need some help getting things started, I'd recommend browsing the Proxmox Helper Scripts. So, what are we running on the proxmox server?
Proxmox: https://proxmox.com/
Adguard Home / PiHole
DNS level ad blocking is a must for anyone with a home server. Once this is setup, any devices on your network will gain ad blocking. This includes your mobile devices, TV apps and any workstations. As you can see above, nearly a million dns queries and 15% of those are blocked.
AdGuard home: https://github.com/AdguardTeam/AdGuardHome
PiHole: https://github.com/pi-hole/pi-hole
Both are great open source options and should probably be the first thing you setup on any homelab. It's also nice for DNS rewrites so you can point devices on your local network to your locally hosted services without going to the internet first.
ddclient - Dynamic DNS
This is optional, but if you want to host anything publicly accessible on your home network, you're going to want to point a domain to your IP. The tricky bit? Your consumer level internet access can change your IP address at anytime. But we can use ddclient
to keep our IP synced to a domain you own. I also recommend using Cloudflare so you can also hide your IP and take advantage of some of the other features.
ddclient: https://github.com/ddclient/ddclient
Pangolin - The reverse proxy
If you're going to expose any of your self hosted services to the internet, Pangolin is a great way to setup and manage a reverse proxy. For a while I was self administering apache or nginx configs, I eventually moved to this because, well, it's just easier. This will let you redirect incoming traffic over an SSL connection (with auto generated certificates) to one of the virtual machines or containers on the Proxmox machine.
You could even host this on a small aws ec2 instance and then setup WireGuard tunnels, you don't need to open any ports on your firewall or router. I decided to self host it and use it locally, so I've exposed port 80 and 443 pointed right at the pangolin virtual machine.
Pangolin: https://github.com/fosrl/pangolin
Nextcloud / Owncloud
I'm using Nextcloud as my home page for files, cloud storage and syncing on my devices. There's a handy mobile app to automatically upload all your photos. I'm using it as a bit of a "home base" for my home server hosted resources. Be sure and check out the "External Sites" and "Memories" plugins. This is an awesome alternative to Dropbox, Box, One Drive, etc...
If you need something a bit simpler, consider Owncloud or Immich.
Nextcloud: https://nextcloud.com/
Owncloud: https://owncloud.com/
Immich: https://immich.app/
Jellyfin
Jellyfin is the volunteer-built media solution that puts you in control of your media. Stream to any device from your own server, with no strings attached. I've got this setup for hosting my home videos and other media. I can easily watch any of my content on any devices, including the TV. Most people's go-to is Plex, but I've never really enjoyed Plex and it's gotten worse as they now require you to pay to stream your own media outside of your local network. Forget it!
Jellyfin: https://jellyfin.org/
Home Assistant
Home Assistant is a wonderful open source home automation tool that puts local control and privacy first. You can manage all of your smart devices from one place, automate routines and monitor your IoT devices. If you're running a homelab, this is an absolute must-have. In fact, I won't even buy a smart device it Home Assistant doesn't support it. Use motion sensors, door sensors and other devices to track in real time things that happen, then automate your lights, air conditioning camera's and more.
Home Assistant: https://www.home-assistant.io/
Demo: https://demo.home-assistant.io/#/lovelace/home
Tailscale - VPN
Tailscale is a zero-config, no-fuss VPN. Install in on your machines and easily access your network from anywhere. There was a time not too long ago where the go-to was OpenVPN. Don't get me wrong, OpenVPN is great, but Tailscale is easier to setup and it's free. Tailscale is also a big supporter or open source, so if you'd rather host it yourself, checkout Headscale. It's also worth mentioning the next runnerup, Twingate.
Headscale: https://github.com/juanfont/headscale
Tailscale: https://tailscale.com/
Twingate: https://www.twingate.com/
Mailcow -- Hosting your own email server
Hosting your own mailserver is a little more involved for any homelab. Nearly every ISP (except business internet) will have at least port 25 blocked, maybe others. The only way you can send and receive mail on your homelab without paying extra for a business class internet connection is by using a mail relay server. In my case, I went with a small AWS ec2 instance and then connected the mail server to Mailcow over Tailscale. So all mail coming in or going out, goes through the relay server. This isn't ideal for everyone, but if you want to host your own private email, this is a great way to do it.
Mailcow comes with just about everything you need, webmail access, SMTP and IMAP servers, rspamd for spam blocking. With a couple hours reading over the documentation and getting setup, you're good to go.
Mailcow: https://mailcow.email/
OpenWebUI - Local AI, Ollama and OpenAI API
Running an Ollama server is a great way to host your own private AI. It's great if you want to use for writing private messages, or scanning and classifying your email or scanned documents. Ollama will need to run on a rig that has a decent GPU to get good results. It's all about the amount of VRAM and computing power you have.
OpenWebUI lets you host and interact with your Ollama server just like ChatGPT. You can also connect it to the OpenAI API, which is strongly recommend. Why pay $20/mo for chatgpt, when you can self host OpenWebUI and pay-as-you-go, or better yet, use Ollama?
But you can take it to the next level by using LiteLLM as a proxy for other API services. It's worth a look, you can setup Ollama, Open AI, Grok, Gemma and more thought LiteLLM and then interact with those API's through OpenWebUI.
OpenWebUI: https://github.com/open-webui/open-webui
Ollama: https://ollama.com/
LiteLLM: https://github.com/BerriAI/litellm
Honorable mentions worth trying
Here's a list of other services I tend to run on my setup. I'm always on the look out for new open source software to play with or contribute to.
- Remote Desktop with RustDesk: https://github.com/rustdesk/rustdesk
- Monitor uptime with Uptime Kuma: https://github.com/louislam/uptime-kuma
- Manage your network with Unify Network: https://www.ui.com/download
- TrueNAS for local network storage: https://www.truenas.com/
- Running and apt-cache server: https://help.ubuntu.com/community/Apt-Cacher NG
- Stash (NSFW): https://github.com/stashapp/stash
- Manage your Finances with Maybe: https://github.com/maybe-finance/maybe
- Nice langing page for your lab: https://github.com/homarr-labs/homarr
- Push notifications with Nfty: https://github.com/binwiederhier/ntfy
Ultimately what you run on your homelab should be a personal extension of your life, a secure and private place to self host your data, and a stress-free environment to test out and hone your IT knowledge. If you break it, good! That's the best way to learn. If you ask anyone how they got good at their craft, they'll be able to tell you how many mistakes they made along the way.
Hopefully you're feeling a bit inspired now, if you are, welcome (and I'm not sorry).