Will it run well on my box?
A free, open-source script that measures how popular self-hosted apps actually perform on your home server, and a public table of everyone's results. So the next person choosing a mini PC, NAS or single-board computer gets a measured answer instead of a guess.
What it tests
Ollama
Runs AI chat models at home. How fast does it write? Tokens per second with Llama 3.2 3B, on CPU or NVIDIA GPU.
Jellyfin
Your own Netflix. Can it convert 4K for your TV or phone? 4K→1080p speed, and how many people can stream at once.
Immich
Your own Google Photos. How long to index your library? Photos per second for AI search and face detection.
Run it in three steps
You need Linux with Docker and Python 3 (both standard on most home servers), about 20 GB of free disk, and 10–40 minutes.
- Download it, and check it's the published file:
curl -fsSLO https://github.com/ZeroCarbonCo/selfhostbench/releases/download/v0.1.0/selfhostbench curl -fsSLO https://github.com/ZeroCarbonCo/selfhostbench/releases/download/v0.1.0/selfhostbench.sha256 sha256sum -c selfhostbench.sha256 - Read it (it's one plain Python file, about 1,000 lines, no dependencies):
less selfhostbench - Run it, then follow the prompts:
python3 selfhostbench
What you'll see
[2/3] Jellyfin video transcoding
✓ Downloading jellyfin/jellyfin:12.4.20261026-211555 (41s)
✓ Converting 4K video to 1080p (CPU) (1m 26s)
10.5 fps, 0.35x real time
⠼ Simultaneous streams (NVIDIA NVENC): trying 4 ███████████░░░░ 72% speed 2.2x
Results for WSL2 on AMD Ryzen 9 5900X
Ollama chat speed (GPU) 201.2 tokens/s fast: replies appear instantly
Jellyfin simultaneous streams (NVENC) 8+ streams 8+ people streaming at once
Immich face detection (CPU) 6.50 photos/s about 26 min per 10,000 photos
Submit these results to selfhostbench.pages.dev? They will be public. [y/N]
Questions
Is it safe to run?
It only uses Docker to run the official, version-pinned images of each app, in containers it creates and removes again.
It doesn't need root (though Docker access is required), doesn't touch your existing containers, and never removes images you already had.
Please read it before running; that's why we don't suggest curl | bash.
What gets sent, and when?
Nothing, unless you type y at the end after seeing the exact JSON. It contains hardware model names, OS/Docker versions and the benchmark numbers: no hostname, IP address, serial numbers or file paths. Full details.
Will it work on my NAS / Raspberry Pi / mini PC?
Anything running Linux with Docker should work. It's been tested on x86_64. arm64 (e.g. Raspberry Pi 5) should work but hasn't
been tested yet, so please tell us how it goes. Intel and AMD integrated graphics are used for Jellyfin through /dev/dri
when present, and NVIDIA GPUs when Docker can see them.
Can I test just one app, or keep results private?
Yes: python3 selfhostbench --apps jellyfin tests one app, and --no-submit keeps everything local.
All options are in the README.
How much does it download?
About 7.5 GB in total (Ollama's image and its AI model are most of it). At the end it asks whether to keep the downloads for next time; by default they're removed.
How do I get fair numbers?
Pause other heavy work while it runs (Plex/Jellyfin transcodes, backups, VMs, games), because they compete for the same CPU and GPU. Results from VMs and WSL2 are labelled, since they can be slower than the same hardware running Linux directly.
Latest submissions
Loading…