How to Build a Homelab for Under $300
A real budget homelab build covering hardware, setup, and what you can actually run on it, for under $300 total including storage.
The homelab rabbit hole has a reputation for being expensive. Enterprise servers, 10GbE switches, rack enclosures, redundant power supplies. That’s one version of a homelab. It’s also not what most people need.
For running Docker services, self-hosting the tools that replace your cloud subscriptions, and learning how Linux and networking actually work, $300 is enough. This is what I’d buy today.
The Hardware
Mini PC: ~$150–180
A used or refurbished mini PC is the sweet spot for a budget homelab. Low power draw (10–15W at idle), small, quiet, and capable of running a full Docker stack without breaking a sweat.
Beelink EQ12 (~$150 new): Intel N100 processor, 16GB RAM, 500GB SSD included. This is the baseline. The N100 handles 10–15 Docker containers without stress and supports hardware transcoding for Jellyfin. I’ve recommended it to more people than any other option.
Used mini PCs on eBay (~$80–120): Older Intel NUC units (NUC8, NUC10) or Beelink/Minisforum previous-generation hardware. An 8th-gen i5 NUC with 16GB RAM runs everything the N100 does and has faster single-core performance for some workloads. The risk is battery/charger quirks on some units — buy from sellers with return policies.
Used office PC (~$60–80): A used Dell OptiPlex or HP ProDesk with a 6th–8th gen i5 and 16GB RAM. Less power-efficient than a mini PC (25–35W at idle) but often cheaper and easier to upgrade. A good choice if you want to add a second drive later.
If you’re picking one and haven’t done this before, buy the Beelink EQ12. It’s new, it’s under warranty, and it just works.
Storage: ~$40–60
The included SSD in the EQ12 is enough to get started. If you need more space for media:
2.5” SATA SSD (~$40–50 for 1TB): Most mini PCs have a 2.5” bay in addition to the M.2 slot. A 1TB SATA SSD for media storage is plenty for a starting library.
USB external drive (~$25 for 1TB): Not ideal (USB bandwidth limits disk performance), but functional for cold storage or backups. If you’re on a tight budget, this works for media you’re not streaming simultaneously.
Skip: HDDs unless you need several terabytes. For a starting homelab, SSDs are worth it for the reliability and speed. HDDs make sense when you need 4TB+ of storage and budget matters.
Networking: ~$0–30
You probably already have a router and a switch. A homelab doesn’t need upgraded networking on day one.
If your router is ancient and struggling, a used TP-Link ER605 (~$30 used) is a capable wired router that supports VLANs if you want to segment your network later. Pair it with whatever switch you have.
Don’t buy a managed switch for your first homelab. You won’t use the features and it’s money better spent on storage.
Total Cost
| Item | Cost |
|---|---|
| Beelink EQ12 mini PC | $150 |
| 1TB SSD (additional storage) | $45 |
| Networking (if needed) | $0–30 |
| Total | $195–225 |
That leaves $75–100 for a UPS (uninterruptible power supply) — a small APC Back-UPS gives your server a few minutes of runtime during power blips and prevents sudden shutdowns from corrupting your database.
What Runs on This Hardware
The N100 with 16GB RAM and a fast SSD runs:
- Jellyfin — media server with hardware transcoding (N100 handles 4K HEVC transcoding easily via Intel Quick Sync)
- Immich — photo backup for your entire household
- Vaultwarden — password manager
- Pi-hole — network-wide DNS ad blocking
- Uptime Kuma — service monitoring
- Nextcloud — file sync, calendar, contacts
- Nginx Proxy Manager — reverse proxy with HTTPS
- Tailscale — remote access
- Grafana + Prometheus + Node Exporter — monitoring dashboards
- Portainer — Docker management UI
- Watchtower — automatic updates
That’s 12 services, all running simultaneously, with RAM to spare. A typical idle load on the EQ12 running all of the above is 4–6GB RAM and 5–10% CPU.
What You Can’t Run
Be realistic about limits:
Large language models — Running Ollama with a 7B model needs 8GB RAM just for the model. It works on the EQ12 but leaves little headroom for everything else. You’d want to run it on dedicated hardware or accept that it pauses other services.
Multiple 4K simultaneous streams — One 4K transcode is fine. Two simultaneous 4K transcodes will push the N100 near its limits depending on the codec.
High-write databases at scale — For a household, Nextcloud and Immich databases are small. If you’re running something with high transaction volumes (a production application, a busy website), a mini PC with a SATA SSD is not the right hardware.
Software Stack (Free)
All of it. Docker is free. Every service mentioned above is open source and free. The only ongoing cost is electricity — an N100 at idle costs roughly $4–6/year on US average electricity rates.
That’s the part people miss when comparing to cloud subscriptions. After the hardware purchase, the monthly cost is electricity.
Getting Started
- Install Ubuntu Server 22.04 LTS on the mini PC (free ISO, write it to a USB drive)
- Install Docker and Docker Compose
- Start with the Getting Started guide for the initial setup
- Pick one service and deploy it. Not all twelve at once.
The most common mistake is trying to set everything up at once. Pick the service that annoys you most about cloud subscriptions — maybe it’s Google Photos costing money every month, or a password manager subscription — and start there. Once that’s working, add the next thing.
$300, a weekend afternoon, and you have a homelab that handles the things you were paying for.