Calculator
Stack planner
Choose what you want to run and this sizes the machine on ordinary use rather than on idle, then shows every step of the arithmetic.
Pick the services you intend to run, say what the host operating system is and how many people will use it, and this returns a memory figure you can buy against, the number of containers you are taking on, and the problems that only appear once the stack is assembled: two services wanting the same port, services that cannot be backed up by copying files, and anything with no arm64 build.
It is for the decision you make before you spend money or commit a machine: is this a 4 GB mini PC or a 16 GB one, does it fit on the Raspberry Pi you already own, and is the thing you are about to add the one that tips the whole box over. It is also useful in reverse, on hardware you already have, to find out which two services on your wishlist are the ones you cannot afford.
Nothing you select leaves your browser. There is no request, no analytics event and no server side to this page: the whole dataset is embedded in the page and the arithmetic runs locally.
1. Pick what you want to run
2. Set the ground rules
How the number is calculated#
Every figure comes from the same dataset that generates the tool profiles, so the planner cannot disagree with a profile page. The steps are:
- Sum
ram_typical_mbfor the selected services. That is the observed footprint in ordinary single-household use, or the documented minimum where a project states one. - Multiply by a household factor: 1.0 for one person, 1.15 for two to four, 1.35 for five or more. Concurrency costs memory in sessions, transcodes and worker processes, not in a second copy of the application.
- Add the host operating system: 512 MB for a minimal Linux server, 1024 MB for Debian or Ubuntu with Docker, 2048 MB for a Proxmox host, 3072 MB for TrueNAS, which includes the ZFS ARC that will otherwise surprise you.
- Multiply by the headroom factor you chose, 1.15, 1.3 or 1.6.
- Round up to the next size RAM is sold in: 2, 4, 8, 16, 32, 64 or 128 GB.
The "show the arithmetic" panel prints every intermediate value. A calculator that will not show its working is asking you to trust a number that came from nowhere.
Operational load is summed separately and flagged above 18, port collisions are read from each service's default ports, and services whose datastore implies a database dump are listed rather than silently included.
What this deliberately does not model#
- Peaks. An Immich first import will saturate every core for hours and hold machine learning models resident. A transcode is a spike, not a baseline. Size for the ordinary evening, then keep the headroom for the bad one.
- CPU, GPU and disk. A stack that fits in RAM can still be unusable on a two-core N-series chip with a spinning disk. Transcoding and local models are decided by the GPU, not by memory.
- Anything you configure differently. Move Home Assistant recorder to MariaDB, or point Paperless-ngx at an external Postgres, and both the memory and the container count change.
- Virtualization overhead. If these run in VMs on Proxmox VE, each guest carries its own kernel and its own headroom, and the totals climb by roughly 512 MB per guest.
- One machine. The planner assumes a single host. Splitting the stack is often the right answer and the tool will not suggest it for you.
What to do with the answer#
Buy the purchase figure, not the provisioned one. Then take the two warnings seriously: run the Port conflict checker before you write any compose files, because remapping a port later means touching every bookmark and every client, and run the Backup planner on the same selection to see which services need a dump before a snapshot. If the operational load total came back above 18, drop something now rather than in year two, and read Choosing home server hardware before you order anything.
Questions#
How much RAM do I need for Home Assistant and Jellyfin?
8 GB. In ordinary use Home Assistant sits near 1600 MB and Jellyfin near 900 MB, so 2500 MB of services. For a household of two to four the calculator applies a 1.15 factor, giving 2875 MB, plus 1024 MB for a Debian host with Docker is 3899 MB, and 30 percent headroom brings it to about 5.1 GB. The next size you can actually buy is 8 GB. 4 GB will run both and leave you nothing for a transcode, the page cache or a second service.
Is 8 GB enough for a home server?
For a media and utility stack, yes: Jellyfin, Pi-hole, Uptime Kuma, Vaultwarden and a dashboard come to roughly 1.7 GB in use. It is not enough the moment photos or cameras appear. Immich alone is about 3.5 GB in ordinary use and its own documentation asks for 6 GB minimum, and Frigate is around 2.5 GB with detection running. Immich plus Frigate plus Home Assistant is 7.6 GB of services before the host operating system gets a byte.
Why does the planner ignore idle memory?
Because idle is the number projects quote and nobody experiences. Immich idles at 900 MB and works at 3500 MB. Jellyfin idles at 280 MB and reaches 900 MB with one transcode. A machine sized to the idle column looks fine for a week and then swaps the first evening two people use it at once, and swapping a database is not slow, it is dangerous: writes time out, the kernel picks the largest process to kill, and that is usually Postgres. The planner shows idle in the per service table so you can see the gap, and sizes on the other column.
Does ZFS really need 1 GB of RAM per TB?
No. That rule came from deduplication tables and gets repeated for pools that have dedup switched off. What is true is that the ARC will grow to about half of system memory on Linux and shows up as used, so a TrueNAS Community Edition or Proxmox VE box looks full at rest. Pick the TrueNAS or Proxmox host option in the planner and that overhead is already in the number. More RAM buys read latency on a ZFS box, not correctness.
How many services is too many for one machine?
The planner sums the operational load scores and warns above roughly 18, which is around eight or nine typical services or four heavy ones. That threshold is about attention, not resources. Past it, most single operators stop reading release notes, updates get deferred, and the first restore is unrehearsed. A machine with plenty of free RAM and 25 points of operational load is a worse position than a full one with 12.
Can I run this stack on a Raspberry Pi 5?
Check the arm64 warning the planner prints. 95.2 percent of catalogued tools publish arm64 images, so most stacks are fine, but the exceptions are decisive rather than inconvenient: Harbor, Mattermost and TrueNAS Community Edition have no arm64 build, and an 8 GB Pi with an SD card will be limited by storage long before memory. Put the container data on an SSD over USB 3 or NVMe, not on the card.
Should I buy the provisioned number or the purchase number?
Buy the purchase number. The provisioned figure is the minimum the stack needs with headroom included; the purchase figure is the next size a DIMM actually comes in. If the two are far apart, for example 5.1 GB provisioned and 8 GB to buy, that gap is your room to add a service next year without opening the case. If they are close, you are buying a machine that is full on day one.
Published . Last reviewed . Found something out of date? Tell us and we will fix it and log the change.