About SelfHostBench
An early, experimental project to collect measured answers to "will app X run well on box Y?". It is a 3-week trial: if people find it useful we will keep going; if not, we will say so here and take it down.
Built with AI assistance
The benchmark script, this website and its API were written largely by an AI coding assistant (Anthropic's Claude), directed and reviewed by a human maintainer. All the code is public on GitHub, so you can read exactly what it does before running it. Please report problems.
What is measured
- Ollama (image
ollama/ollama:0.40.13): the modelllama3.2:3b-instruct-q4_K_Mwrites 256 tokens for a fixed prompt, three times; we report the median tokens per second as timed by Ollama's own API. If Docker can use an NVIDIA GPU, it is used and the result is labelled as such. - Jellyfin (image
jellyfin/jellyfin:12.4.20261026-211555): its bundledjellyfin-ffmpegconverts a 30-second 4K HEVC clip to 1080p H.264 at 8 Mbit/s, first on the CPU (libx264, preset veryfast), then with hardware acceleration if available (VA-API via/dev/dri, or NVIDIA NVENC). Frames per second and speed come from ffmpeg's own progress report. We then run 1, 2, 3 … up to 8 conversions at once and report the largest number where every stream keeps up with real time (≥1×). - Immich machine learning (image
ghcr.io/immich-app/immich-machine-learning:v3.3.5, without the rest of Immich): 200 photos (1440 px, the size Immich itself sends) go through its inference API two at a time, as Immich does by default, for smart-search embeddings (ViT-B-32__openai) and face detection (buffalo_l). We report photos per second. CPU only in v0.1. - While each test runs we sample the container's CPU and memory once per second, and CPU package power from Intel/AMD RAPL only if your system lets a normal user read it (most don't; then power is "not available").
What is not measured
- Idle power, wall-socket power, noise or temperatures.
- The full Immich or Jellyfin apps (web UI, database, library scans) — only the heavy parts named above.
- Intel QSV specifically (VA-API covers Intel and AMD iGPUs), AMD GPUs for Ollama, and GPU acceleration for Immich.
- Storage, network and multi-user behaviour. Results in WSL2 or virtual machines are labelled because they can differ from bare metal.
Privacy: what we collect
The script shows you the exact JSON it would send and only sends it if you type y. It contains:
- Hardware: CPU model, core and thread count, total RAM, system vendor and model name (from
/sys/class/dmi/id), GPU names, number of/dev/drirender nodes, CPU architecture. - Software: OS name and version, kernel version, Docker version, whether it ran in a VM/WSL, the script version and image versions.
- Benchmark numbers, test durations and resource peaks, a random run ID, and the start time (to the minute, UTC).
What we do not collect
No hostnames, user names, IP addresses, serial numbers, MAC addresses, file paths, or anything about your files or network. For rate limiting only, the server stores a salted one-way hash of the submitting IP address; the IP itself is never stored.
Email signups
If you sign up, we store your email address, the device and apps you typed (optional), the date, and a salted IP hash for rate limiting. We use it only to tell you about SelfHostBench results. It is never sold or shared. Every email will include an unsubscribe link, and you get one straight away when you sign up.
Analytics
No cookies and no trackers. We may use Cloudflare Web Analytics, which is cookieless and does not fingerprint visitors, to count page views.
Where data lives
On Cloudflare (Pages, Workers and D1 database). Submitted benchmark results are public, including the raw JSON. To have a submission or your email removed, contact us below with the result ID or email address.
Terms
The script and site are provided as-is under the MIT licence, without warranty. The benchmark downloads several gigabytes and keeps your machine busy for a while; run it on hardware you're happy to load. Results are community-submitted and may be wrong; don't treat them as a guarantee of performance. Product names identify products only; we have no affiliation with any vendor and there are no affiliate links.
Licences and credits
- SelfHostBench code and this site: MIT licence.
- Test video: a 30-second excerpt of Big Buck Bunny, © 2008 Blender Foundation | peach.blender.org, licensed CC BY 3.0; re-encoded to 4K HEVC by SelfHostBench.
- Test photos: 200 images from Wikimedia Commons under CC0, public domain, CC BY or CC BY-SA, each credited individually in media/CREDITS.md.
- Ollama, Jellyfin, Immich and Llama 3.2 belong to their respective owners and are used unmodified via their official images.
Contact
Open an issue on GitHub, or email TODO-AARON.