This is a complete, copyable reference homelab plan for a single N100 mini PC: a target of roughly 8 watts at warm idle, eleven services, and a total cost — hardware plus storage — that lands around the $200 mark. It’s the build to point someone to when they ask “what should I get to start a homelab?”
Here’s exactly what goes in it, what the plan runs on it, and what’s worth changing depending on your needs. The RAM, wattage and cost figures below are planning estimates, not measurements by MiniLabHQ.
This plan assumes a compute-focused service stack. Check the mini PC versus NAS versus Raspberry Pi comparison if storage or one small dedicated job is your real priority, and compare used HP thin clients before spending the full hardware budget.
The hardware
| Part | Spec | Cost |
|---|---|---|
| Mini PC | Beelink S12 Pro (Intel N100, 16GB DDR4, 500GB NVMe) | $159 |
| SATA SSD | Crucial MX500 2TB (added to the internal 2.5” bay) | $109 (used $34) |
| Total | $193 |
For an S12 Pro-class configuration, check the exact system’s supported RAM and storage interfaces before ordering upgrades. Intel specifies one memory channel and a 16GB maximum for the N100; a 32GB upgrade needs separate system-vendor support rather than an assumed second slot. The 500GB NVMe is for the OS and Docker volumes; the 2TB SATA is for everything else.
Buying the bulk SATA SSD used is the single cheapest move here — a 1–2TB SATA SSD off the used market can be a fraction of new price, which is what makes the sub-$200 total realistic. Avoid spinning rust for this role: the noise and idle power of a 3.5” HDD defeats half the point of an N100 box.
The same machine is widely available — Beelink S12 Pro N100 mini PC. Prices fluctuate by sale; check Beelink’s site for direct discounts too.
The OS layer
Debian 13 (trixie) minimal install, no desktop environment, Docker installed from the official Docker repo. That’s it. The common first move is Proxmox with a single Debian VM inside it, and on one machine the hypervisor overhead buys you nothing. If you’re running multiple physical hosts and need isolation between them, Proxmox makes sense. For one box, bare-metal Debian + Docker is simpler and uses 200–300MB less RAM.
The whole OS install fits in 8GB. Docker images and volumes live on the NVMe drive. Media, backups, and large persistent data live on the 2TB SATA SSD, mounted at /mnt/storage. Keep the Docker Compose files in /srv/stack/ with subfolders per service.
Before adding media services, check the N100 Plex transcoding limits. Keep the database, media and backup destinations separate in the plan using the mini PC storage guide.
What the plan runs
Eleven services in eleven containers, all behind a Caddy reverse proxy. Total RAM is planned at about 6GB of the 16GB; the per-service allocations are planning estimates, not measurements by MiniLabHQ.
| Service | Purpose | Planned RAM | Notes |
|---|---|---|---|
| Caddy | Reverse proxy with auto-HTTPS | 80MB | Cloudflare DNS challenge for wildcard certs |
| Pi-hole | Network-wide ad/tracker blocking | 120MB | DNS for every device on the LAN |
| AdGuard Home | Backup DNS + DNS-over-HTTPS | 90MB | Failover when Pi-hole reboots |
| Nextcloud (AIO) | File sync, photos, contacts, calendar | 1.4GB | All four nodes in one Compose file |
| Home Assistant | Home automation | 600MB | Pin the version and update it by hand |
| Jellyfin | Media server | 400MB idle | Hardware transcoding via the N100’s iGPU |
| Vaultwarden | Password manager (Bitwarden API-compatible) | 60MB | Reach it over Tailscale, not a public record |
| Uptime Kuma | Status page for everything else in the stack | 110MB | Telegram push when something goes down |
| Watchtower | Auto-updates Docker containers nightly | 30MB | Exclude Nextcloud and HA — update those by hand |
| Tailscale | Mesh VPN to access services from anywhere | 50MB | The only “external” exposure in the build |
| Glances | Web-based system monitor | 60MB | Quick view of CPU/RAM/disk |
Caddy fronts everything. The only port exposed to the wider internet is the Tailscale endpoint; nothing else has a public DNS record. The team at DockerHomeLab has solid Compose file examples for most of these services — start from their templates and customize from there.
The Docker Compose layout
Keep one docker-compose.yml per service, in its own subfolder. This makes updates and debugging much easier than one giant compose file. The tree looks like:
/srv/stack/
├── caddy/
│ ├── docker-compose.yml
│ ├── Caddyfile
│ └── data/
├── pihole/
│ ├── docker-compose.yml
│ └── etc-pihole/
├── nextcloud/
│ ├── docker-compose.yml
│ └── .env
└── ... (one folder per service)
A shared external Docker network (proxy) lets Caddy reach every service container by name. Each service’s compose file declares networks: [proxy] and exposes its port only on the internal network, never bound to the host. Caddy is the only thing with port 80/443 published.
BIOS settings to apply
This plan budgets an untuned S12 Pro-class N100 box at around 11–12W warm idle and a tuned one at roughly 7.5–8W. Those are planning estimates, not measurements by MiniLabHQ; meter your own box to confirm. The settings expected to close most of that gap:
- Disable Intel Turbo Boost; the N100 doesn’t need it for homelab workloads
- Enable Package C-State support up to C10
- Disable the front-panel LED
- Disable WiFi and Bluetooth if the box is wired
- Set the fan curve to “silent” or the quietest profile offered
That’s on the order of a few watts saved — a handful of dollars a year — which over the box’s life roughly offsets the cost of the SSD.
Power and cost
A tuned build like this draws on the order of ~70 kWh per year. At a typical residential rate, that lands around $10–$15/year to run — use the power cost math with your own rate for an exact figure.
For comparison, a typical older 2-bay NAS or always-on tower in this role pulls several times that for fewer services. Against that baseline, an N100 box of this kind pays for itself in electricity savings within a few years and keeps saving after that.
Check the N100 VM and container resource budget before expanding this stack beyond the example allocations.
What to change for your needs
A few adjustments worth considering depending on how far you plan to take this:
- Check supported memory capacity before expanding. If the workload needs 32GB, choose a system whose vendor documents that capacity. Application counts alone do not establish memory use.
- Get a 1TB NVMe instead of 500GB. Docker volumes grow faster than most people expect; the larger boot/volume drive is worth the small premium.
- Add a UPS. A small UPS with pure sine wave output on battery (such as the CyberPower CP1000PFCLCD covered in the UPS sizing guide) keeps a ~10W mini PC alive through a power blip and lets it shut down cleanly. Skip simulated-sine units like the CP685AVR for the mini PC itself.
- Consider an N305 if you want headroom for VMs. The N100 is enough for ~11 containers, but for a couple of small VMs alongside, the N305’s eight cores (vs the N100’s four) make sense. Compare in the N100 buying guide.
The “should I copy this?” answer
If you want a working homelab in a weekend, with the cheapest x86 hardware that handles a real service stack:
- Choose a mini PC with documented RAM capacity and the internal storage connections needed by this plan
- 16GB RAM minimum, 32GB if budget allows
- 500GB NVMe boot drive plus a 1–2TB SATA SSD for bulk storage
- Debian 13 (trixie) minimal + Docker
- One Compose file per service, all behind Caddy
Total cost: $180–$250 depending on RAM and storage. Annual electricity: $10–$15. Time to a working stack: a weekend if you’ve never done this before, a few hours if you have.
If you want help picking the rest of the stack, start with our deploy order for a new mini PC: reverse proxy, DNS, remote access and backups before any of the fun applications, with a RAM budget attached to each so you can see the whole thing fits in 16GB. SelfhostRealm goes deeper on the individual services once the foundation is in place.
That’s the build. Properly tuned, it is planned to settle at roughly eight watts at idle and is sized for eleven services on hardware that fits in one hand, which is the entire point of doing it this way instead of on an old tower.
Related across the network
- Pi-hole Hardware Requirements and What to Buy — piholehq.com
- Pi-hole vs AdGuard Home: How They Differ — piholehq.com