The top 3 machines
All three fit your cabinet, sip power, and hardware-transcode Plex. They differ on price, risk, and storage.
| Pick | Chip | Idle W | Price | Best for |
|---|---|---|---|---|
| 1. Beelink EQ14 recommended | Intel N150 (new) | 6-10 | $190 | Lowest power, silent, warranty, newest transcode |
| 2. Used Lenovo M720q / HP 800 G4 | i5-8500T (used) | 10-15 | $120-180 | Cheapest, more CPU cores, your enterprise comfort zone |
| 3. Beelink ME mini | Intel N150 + 6x NVMe | 7-12 | $329+ | Server plus silent all-flash storage in one box |
1. Beelink EQ14 (Intel N150)RECOMMENDED
New, ~$190 (as low as ~$169 with a Slickdeals coupon). 16GB RAM, 500GB-1TB NVMe, dual 2.5GbE, WiFi 6. Idles 6 to 10 watts and stays near-silent. Its Quick Sync engine is the newest generation: 4K HEVC 10-bit, AV1 decode, and reliable HDR-to-SDR tone mapping (the thing older chips botched). Comfortably does 2 to 3 simultaneous 4K transcodes, which is more than your household will ever ask for, plus both scrapers with room to spare.
Why it wins: lowest heat and power in a cabinet that already runs warm next to your NVR and Hopper, no used-market risk, and a return window. Beelink EQ14 on Amazon.
2. Used Lenovo ThinkCentre M720q or HP EliteDesk 800 G4 (i5-8500T)CHEAPEST
$120 to $180 on Facebook Marketplace or eBay. 6-core i5-8500T (a 35W low-power "T" chip), 16GB, Intel UHD 630 Quick Sync. This is your "buy used, enterprise gear I already trust" path, and Rocky/RHEL install clean on it. Trade-offs: idles a bit higher (10 to 15W), has a small fan that is 5+ years old, and carries used-market risk you neutralize with the three pickup tests below. Get a T chip, 8th gen or newer, 16GB.
Search links: M720q · HP 800 G4 · Dell 7060 Micro
3. Beelink ME mini (N150, six M.2 slots)BUY ONCE
~$329 to $409. Same N150 and Quick Sync as pick 1, but with six NVMe slots (up to ~24TB all-flash) and a built-in PSU. This collapses "mini PC plus storage enclosure" into one dead-silent box with no spinning drives. It costs more and all-flash is pricier per TB than hard drives, so it fits a modest, tidy library rather than a giant 4K remux hoard. Beelink ME mini.
Do not buy AMD, ARM, or a Raspberry Pi for Plex. Quick Sync is Intel-only and it is the whole point. Skip anything Intel 7th gen or older (no reliable 4K HEVC or HDR).
The recommended build and parts list
Pick 1 (new) or Pick 2 (used) as the brain, plus storage. Here is the full shopping list with realistic 2026 prices.
| Part | Recommendation | Cost |
|---|---|---|
| Server (new) | Beelink EQ14 (N150, 16GB, 500GB) | $190 |
| Server (used alt) | Lenovo M720q / HP 800 G4, i5-8500T, 16GB | $120-180 |
| Movie storage (start) | One 14-18TB WD Elements USB drive | $199-259 |
| Movie storage (grow) | TerraMaster D4-320 4-bay USB enclosure + shucked drives | $152 + drives |
| Cabinet cooling | AC Infinity thermostatic fan ($60-119) or a $15 USB fan | $15-119 |
| Plex hardware transcode | Plex Pass (or use Jellyfin free) | $0-70/yr |
Realistic all-in: $300 to $500, or as low as ~$300 with a used box plus one drive and Jellyfin. Electricity is about $12 a year.
Storage: hang it off USB
A mini PC has room for one NVMe and maybe one 2.5-inch drive, so the movie library lives on external USB, not inside the box. Cheapest capacity in 2026 is large external hard drives: 14 to 18TB WD Elements/Easystore at roughly $11 to $14 per TB (an 18TB runs $199 to $259, dipping to $10-12/TB on Black Friday and Prime Day).
- Start simple: plug one 14-18TB external drive into a USB port. Done. Shucking guide + prices.
- Grow into it: a TerraMaster D4-320 4-bay USB 3.2 Gen2 enclosure (~$152), add drives as you go. 40 to 70TB for well under $1,000.
| Quality | GB / movie | Movies / TB |
|---|---|---|
| 1080p compressed | 3-8 | 150-300 |
| 4K HEVC | 20-50 | 20-50 |
| 4K remux (huge) | 60-100 | 10-15 |
A drive array is storage, not a backup. RAID survives a dead drive, not an accidental delete or a fried enclosure. Keep one separate copy of anything you cannot re-rip. Shucking voids warranty and some WD drives need a strip of tape over the "3.3V pin" to power on in a generic enclosure.
OS and software stack (the Red Hat reality)
You like RHEL, and you can absolutely have it. One honest catch drives the whole design: Playwright (your
scraper's browser engine) is officially supported only on Debian and Ubuntu. On Rocky/RHEL the auto dependency
installer fails because it calls apt-get. That does not mean give up RHEL. It means run the scrapers in
a container built on Microsoft's Ubuntu Playwright image, while the host stays Red Hat.
Recommended: Rocky Linux + Podman
Install Rocky Linux (or AlmaLinux),
a free bug-for-bug RHEL rebuild, so dnf, SELinux, and firewalld feel exactly like work. Plex installs
from its official RPM repo.
Each scraper runs as a rootless Podman container from
Microsoft's Ubuntu Playwright image,
wired to systemd. This keeps Plex, your Steinway watcher, and the neighbor's furniture search fully walled off from
each other.
Power option: Proxmox VE
Proxmox is a Debian-based hypervisor. Put it on the metal, run Plex in one container and a Rocky VM for the scrapers. You get one-click snapshots and scheduled backups, so a bad update is a 30-second rollback. Worth it if you want a real little homelab; overkill if you only ever run Plex plus two scrapers.
SELinux gotcha: containerized Plex hardware transcoding trips on the GPU render node
(/dev/dri/renderD128) because the plex user lacks the render group inside the container. Map
the render group in and it works. Do not just turn SELinux off on an internet-facing box.
Running the scrapers 24/7
Your existing Steinway script is already cross-platform Python plus Playwright, so the code barely changes. The real move is swapping Windows Task Scheduler for a systemd timer, which is more reliable (auto-restart, built-in logging, catches up on missed runs after a reboot). The mapping is nearly one-to-one:
| Windows Task Scheduler | systemd on Linux |
|---|---|
| Trigger every 30 min | OnUnitActiveSec=30min in a .timer |
| Run whether logged in or not | default (services are headless) |
| Restart on failure | Restart=on-failure |
| Run ASAP after a missed start | Persistent=true |
| View history | journalctl -u steinway -f |
Two small headless flags matter on a server: launch Chromium with
--no-sandbox and --disable-dev-shm-usage (the second stops crashes on big pages). Run each
scraper as its own non-login user so they cannot touch each other or Plex.
Buying used safely (do these 3 tests at pickup)
Fair price for a used i5-8500T tiny with 16GB and an SSD is $120 to $180. At or under $150 is a good deal; over $200 for 8GB/256GB is overpaying. Bring a bootable USB stick (Ventoy with a Linux ISO). Before money changes hands:
- Watch it POST and press the BIOS key. It must open with no password. A BIOS supervisor password the seller cannot clear is a hard walk-away.
- In BIOS Security, Absolute / Computrace must read "Deactivated," not "Activated." Activated is a firmware anti-theft agent that survives a full wipe and can re-lock the machine. Walk away.
- Boot the USB and read the drive's SMART health (power-on hours, remaining life). Tens of thousands of hours or low life percent means treat the drive as worthless and price accordingly.
Avoid the HP EliteDesk 800 G6 (2020+): its BIOS locks are effectively un-clearable without a chip reflash. Stick to G4/G5. Confirm the OEM power brick is included (Dell Micro uses an external barrel plug that is annoying to source). Full used-buying worksheet.
Fitting it in your cabinet
From your photo: EdgeRouter 4, a UniFi switch, a CAT6 patch panel, a CyberPower UPS and PDU, the Reolink NVR, and the Dish Hopper, all in an enclosed cabinet. A low-power mini PC drops in cleanly. Wire it with one CAT6 to a free port on the UniFi switch (not the router), and set a DHCP reservation on the EdgeRouter so Plex and SSH always land on the same IP.
Power and money
- 15W box: ~$18/yr. A 65W tower: ~$80/yr. A rackmount: ~$184/yr.
- Heat scales with watts (~3.4 BTU/hr per watt). A 10W mini is a nightlight; a rackmount dumps ~512 BTU/hr into a closed cabinet already full of the NVR and Hopper.
- UPS: adding 15W barely dents runtime. A 150W rackmount could roughly halve how long your gear stays up in an outage.
Heat and wiring
- Add one thermostatic AC Infinity cabinet fan ($60-119) or a $15 USB fan. The server barely makes heat, but the cabinet is the real hot pocket.
- Do not stack the mini on top of the NVR or Hopper. Leave an air gap.
- Put it on a UPS-backed outlet and install
nut(or CyberPower PowerPanel) for a clean shutdown on a long outage, so a blip mid-scrape does not corrupt state files.
One thing to know about Plex
Plex hardware transcoding now requires a paid Plex Pass, and pricing jumped in 2026: about $7/mo, $70/yr, $250 for 5 years, or $749.99 lifetime (up from $120). Without it, Plex transcodes on the CPU, which these low-power chips handle poorly for 4K.
- If most playback is Direct Play to an Apple TV, Nvidia Shield, or a modern smart TV, the file streams untouched and you may rarely transcode at all. In that case even the used UHD 630 box is plenty and you may not need Plex Pass right away.
- Jellyfin does the same hardware transcoding for free, no subscription. Given you are a self-host Linux person, it is worth a look before committing to Plex Pass. Same hardware, same Quick Sync, no paywall.
What to actually do
- Buy the Beelink EQ14 new (~$190), or watch Marketplace for a clean i5-8500T Lenovo/HP and run the 3 pickup tests.
- Grab one 14-18TB external drive to start the movie library. Add a 4-bay enclosure later if it grows.
- Install Rocky Linux, add Plex from its RPM repo (or try Jellyfin free), and run the scrapers as Podman containers on the Ubuntu Playwright image.
- Wire it to a free UniFi switch port, set a DHCP reservation, drop in a cabinet fan, and put it on the UPS outlet with clean-shutdown configured.
- Port the Steinway scraper to a systemd timer (30-min cadence). Clone the pattern for the neighbor's furniture search.
Next: when you have the box in hand, ping me and I will port the Steinway scraper to systemd and write the Plex + Podman setup, step by step.