Crosspost of [my post in !selfhosted@lemmy.world](https://lemmy.world/post/50560671).
Every time someone asks "will this run on a 1 GB VPS?" the answer is a guess, or a vendor minimum that was written to be safe rather than accurate. So I measured it.
Same box, same method, every app: install, start it, let it settle for 60s at idle with no clients connected, then sum the RSS of the whole process tree. No Docker overhead in the numbers — these are the apps themselves.
| App | Idle RSS | Version |
|---|---|---|
| File Browser | 16 MB | 2.31.2 |
| Gotify | 20 MB | 2.6.1 |
| ntfy | 27 MB | 2.11.0 |
| PocketBase | 31 MB | 0.22.21 |
| Beszel | 39 MB | 0.9.1 |
| Caddy | 40 MB | 2.8.4 |
| Navidrome | 47 MB | 0.63.2 |
| Syncthing | 57 MB | 2.1.3 |
| Prometheus | 70 MB | 2.53.2 |
| MinIO | 132 MB | 2024 release |
| Uptime Kuma | 136 MB | 2.5.0 |
| Gitea | 158 MB | 1.24.4 |
| Grafana | 172 MB | 11.2.0 |
| Forgejo | 173 MB | 7.0.9 |
| Prowlarr | 188 MB | 2.5.2.5491 |
| code-server | 191 MB | 4.131.0 |
| Lidarr | 191 MB | 3.1.0.4875 |
| Radarr | 192 MB | 6.3.0.10514 |
| Sonarr | 193 MB | 4.0.19.2979 |
Things I did not expect:
- *The \arr apps are all the same size. Sonarr, Radarr, Lidarr and Prowlarr land within 5 MB of each other (188–193 MB). That is not a coincidence and it is not the app — it is the .NET runtime setting the floor. Which also means the folklore of "budget ~2 GB for an \*arr stack" is roughly right, and I say that as someone who started this expecting to debunk it.
- Go binaries are absurdly cheap. File Browser, Gotify, ntfy, PocketBase, Caddy and Navidrome together idle at about 181 MB — less than one Sonarr.
- Grafana's 512 MB minimum is honest. At 172 MB idle it has real headroom needs once dashboards start querying. Not every vendor minimum is padding.
- Node apps cost you. Uptime Kuma at 136 MB is ~8x File Browser for a job that is not 8x harder.
Caveats, because they matter: this is idle RSS, not what you need under load. Databases, media transcoding and indexing all blow past these numbers. Treat it as the floor, not the budget. My own rule of thumb from this: sum the idle figures, add ~300 MB for the OS, then add 30% headroom — that has matched what actually fits so far.
Raw data is free under CC BY 4.0 (CSV and JSON), plus per-app pages with the exact commands used so you can reproduce or dispute any number:
https://smeltworks.com/smallserver/
CSV direct: https://smeltworks.com/smallserver/smallserver-dataset.csv
Happy to take corrections — if a number looks wrong for your setup I would rather fix it than defend it. Also taking requests for what to measure next; Jellyfin and Immich are the two I keep getting asked for.
Yes. It is an automated project and I am not going to pretend otherwise.
The measurements are real, the binaries and flags are published, and the raw CSV is CC BY so you can run the same thing and tell me the numbers are wrong. That is the only claim I am making. Several people in this thread already found real problems with the methodology and they were right, which is roughly what I wanted from posting it.