MiniLabHQ
Flat-lay render of homelab gear: a finned mini PC, eight-port switch, small router, two drive enclosures, power brick, cables and a tray of white blocks.
builds

A $200 N100 Homelab: 11 Services, ~8W Idle, Low Maintenance

A complete reference N100 mini PC homelab build: every part, every service, every BIOS tweak, and what it costs to run per year. Documented to copy.

By MiniLabHQ Editorial · · Updated · 7 min read

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

PartSpecCost
Mini PCBeelink S12 Pro (Intel N100, 16GB DDR4, 500GB NVMe)$159
SATA SSDCrucial 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.

ServicePurposePlanned RAMNotes
CaddyReverse proxy with auto-HTTPS80MBCloudflare DNS challenge for wildcard certs
Pi-holeNetwork-wide ad/tracker blocking120MBDNS for every device on the LAN
AdGuard HomeBackup DNS + DNS-over-HTTPS90MBFailover when Pi-hole reboots
Nextcloud (AIO)File sync, photos, contacts, calendar1.4GBAll four nodes in one Compose file
Home AssistantHome automation600MBPin the version and update it by hand
JellyfinMedia server400MB idleHardware transcoding via the N100’s iGPU
VaultwardenPassword manager (Bitwarden API-compatible)60MBReach it over Tailscale, not a public record
Uptime KumaStatus page for everything else in the stack110MBTelegram push when something goes down
WatchtowerAuto-updates Docker containers nightly30MBExclude Nextcloud and HA — update those by hand
TailscaleMesh VPN to access services from anywhere50MBThe only “external” exposure in the build
GlancesWeb-based system monitor60MBQuick 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Sources

  1. Intel N100 product specifications
  2. Docker Compose overview
#n100 #homelab-build #budget #docker#nextcloud#home-assistant#pi-hole#jellyfin

Related