Alternatives decision tool
Self-Hosting Alternative Selector
Answer six questions about your mini PC and get a self-hosted pick for photos, media, NAS OS, VPN, passwords or dashboards — with license costs, RAM floors and measured mini PC evidence where it exists.
Picking a self-hosted alternative is a constraint problem, not a popularity contest
The right pick is the one whose RAM floor, license model and storage assumptions fit the mini PC you already own — not the one with the loudest community. This selector weighs documented requirements first, adds license cost where it applies, and anchors performance claims to measured data from our EQi12 test bed where a lab exists. Every recommendation includes the runner-up and the reason it lost, so you can disagree with the weights instead of guessing.
What the selector covers
| Category | Candidates ranked | Our evidence |
|---|---|---|
| Photo library | Immich → PhotoPrism → LibrePhotos | Immich capacity planning from measured storage throughput |
| Media server | Jellyfin → Plex → Emby | Jellyfin vs Plex with measured Quick Sync transcodes |
| NAS OS | OMV (single disk) → TrueNAS CE (pool) → Unraid (mixed disks) | TrueNAS vs Unraid vs OMV for the single-NVMe reality |
| Remote access VPN | Tailscale → self-hosted WireGuard → ZeroTier | Documented requirements; no mini PC lab needed |
| Password vault | Vaultwarden → KeePassXC + Syncthing | Documented footprint; HTTPS requirement noted |
| Dashboard | Homepage → Homarr → Dashy | Documented footprint |
The measured anchors behind the weights
Where a recommendation mentions performance, it is anchored to our published measurements — not vendor marketing:
| Anchor | Measured value | Condition |
|---|---|---|
| Quick Sync transcode ceiling | 2 simultaneous real-time 1080p streams at 1.01x speed | Intel i3-1215U QSV, Jellyfin, 4-stream run fell to 0.71x |
| Idle system power | 12–14 W depending on OS | Docker idle 12 W vs Windows idle 14 W, same hardware |
| USB storage variance | 36 vs 301 MiB/s on the same drive class | Different USB ports on the same mini PC — port lottery |
| Internal NVMe throughput | 623 MiB/s sustained | EQi12 internal NVMe, sequential read |
The USB port variance row matters for any photo or NAS pick on a single-NVMe mini PC: if your library lives on an external drive, measure the port before blaming the software. The QSV calculator turns the transcode anchor into a stream estimate for your bitrates.
Documented RAM floors used by the selector
| Application | RAM floor | Notes |
|---|---|---|
| Immich | ~4 GB without ML, 8 GB comfortable with ML | Machine-learning search is the RAM driver |
| PhotoPrism | 4 GB plus swap recommended | Indexing large libraries benefits from more |
| Jellyfin | 4 GB minimum, 8 GB comfortable | Quick Sync offloads transcode memory pressure |
| TrueNAS CE | 8 GB or more | ZFS ARC wants headroom; multi-disk pools the real home |
| OpenMediaVault | 1–2 GB | Debian base; the single-disk mini PC fit |
| Vaultwarden | < 100 MB idle | Needs an HTTPS front for official clients |
| Homepage / Homarr | < 300 MB | Config style is the real differentiator |
License traps the selector flags
- Plex hardware transcoding requires a pass. The lifetime pass rose from 249.99 to 749.99 USD on 2026-07-01 (verified September 2026) — a real cost against a 200 USD mini PC.
- Unraid licenses by tier (Starter 49 USD, verified September 2026) — fine value for mixed-disk pools, hard to justify on a single-NVMe box.
- Tailscale's free Personal tier covers personal use (up to 6 users, unlimited user devices, 50 tagged resources — verified October 2026; the old "100 devices" quota in older tutorials reflects a retired pricing model) — but the coordination server is hosted. Self-hosting purists run Headscale or raw WireGuard.
- TrueNAS and OMV are free — the cost is RAM and disks, not licenses.
Starter command for any Docker Compose pick
mkdir -p ~/stacks/<app> && cd ~/stacks/<app>
nano docker-compose.yml # paste the app's documented compose file
docker compose up -d # start detached
docker compose logs -f # watch first-boot for RAM/config errorsWhatever the selector picks, the deployment pattern is identical: one directory per stack, one compose file, persistent volumes on the fastest storage you measured. If the first boot swaps or OOMs, the RAM floor table above tells you which knob to turn (disable ML features before adding RAM).
When to disagree with the pick
The selector optimizes for a single-mini-PC home server. Overrule it when: you already run Proxmox and prefer a VM per service (then the NAS OS question becomes a guest OS question — see our Proxmox on a mini PC guide); your library exceeds what a single NVMe holds (then pool planning in the ZFS & RAID planning guide comes first); or an app you depend on has an official client that only works with one vendor (lock-in beats ideology). For the overall hardware decision before any of this, start at the home server roadmap.
Frequently asked questions
What is the best self-hosted Google Photos alternative for a mini PC?
Immich at 8 GB or more; Immich without ML or PhotoPrism at 4 GB. The capacity guide sizes storage from measured throughput.
Should I choose Jellyfin or Plex on a low-power mini PC?
Jellyfin for zero license cost plus Quick Sync — we measured two simultaneous real-time 1080p transcodes on an i3-1215U. Plex only if you want its clients and accept the pass pricing.
Which NAS OS fits a single-NVMe mini PC?
OpenMediaVault. TrueNAS wants a pool and 8 GB+; Unraid wants multiple disks to justify its license.
How much RAM do self-hosted servers actually need?
Check the RAM floor table — match it before installing. Swapping after the fact costs more than choosing the lighter app.