Haven

How much hardware does Haven need?

Very little. A Haven server is one Node.js process and one SQLite file. With nobody connected it holds about 100 MB of memory and uses no measurable processor time. The numbers below were measured, and you can repeat them on your own machine with one command.

The short version

Community What runs it comfortably
Friends and family, up to about 50 people online Anything that runs Node.js 22: a Raspberry Pi 4, an old laptop, the smallest VPS. 512 MB of free memory is plenty.
Up to about 500 people online 1 processor core and 1 GB of memory. A Raspberry Pi 5 or a small VPS.
1,000 to 2,000 people online 1 fast core (a second one helps with uploads and backups) and 2 GB of memory.
More than that in one busy channel The fastest single core you can get. One Haven process does its chat work on one core, so a faster core helps here and more cores do not.

“Online” means connected at the same moment. A community usually has several times more members than it ever has online at once.

What was measured

Haven 4.29 (in development), 10 November 2026, on a desktop PC: Intel Core i7-14700K, 64 GB memory, Windows 11, Node.js 26.12. Each row is a separate run against a fresh throwaway server. Everyone is online and in the same channel (plus 20 other channels each), and messages arrive nonstop at the rate shown.

People online Memory (peak) Chat rate Processor while chatting Busiest second Message delay (typical / slow) Sent to clients
10 113 MB 1 msg/s 0.3% 5% 1 ms / 4 ms 3 KB/s
50 128 MB 2 msg/s 0.6% 5% 1 ms / 2 ms 35 KB/s
100 129 MB 2 msg/s 1.2% 8% 2 ms / 3 ms 70 KB/s
250 173 MB 5 msg/s 3.0% 31% 2 ms / 4 ms 437 KB/s
500 218 MB 10 msg/s 6.9% 23% 3 ms / 6 ms 1.7 MB/s
1,000 284 MB 15 msg/s 13% 28% 6 ms / 10 ms 5.2 MB/s
2,000 343 MB 20 msg/s 32% 59% 9 ms / 18 ms 13.8 MB/s

How to read it:

Smaller machines (estimates, not measurements)

Nobody has run this benchmark on a Raspberry Pi yet, so the table below is arithmetic, not a measurement. In published Geekbench 6 single-core scores the test PC is roughly 4 times as fast as a Raspberry Pi 5 and roughly 10 times as fast as a Raspberry Pi 4. Scaling the measured processor use by those factors:

People online, chat rate Test PC (measured) Pi 5 (estimate) Pi 4 (estimate)
50 people, 2 msg/s 0.6% about 2% about 6%
100 people, 2 msg/s 1.2% about 5% about 12%
250 people, 5 msg/s 3.0% about 12% about 30%
500 people, 10 msg/s 6.9% about 28% about 70%
1,000 people, 15 msg/s 13% about 50% more than one core

A general benchmark score is a rough stand-in for this kind of work, so expect the real numbers to be off in either direction. If you run Haven on a Pi or any other small machine, run the benchmark and send us what it prints. Real numbers will replace these estimates.

Memory

About 100 MB for the server itself, plus roughly a quarter of a megabyte for each person online. The database cache is capped at about 40 MB however large the message history grows, so memory does not climb with the age of the server.

Disk

Network

Each message costs about 360 bytes per person who receives it, so upload use is roughly people online x messages per second x 360 bytes. A hundred people online and a message every two seconds is about 18 KB/s.

Voice, video and screen sharing go directly between the people in the call. The server only passes the small setup messages, so a call costs it next to nothing, and call quality depends on the participants’ own connections. The exception is the optional voice relay (Large Server Setup), which carries the call through the server and needs processor time and bandwidth for it. The relay is off by default and is not part of these numbers.

Not covered here

Run it yourself

From a copy of the source with its packages installed (npm install):

node scripts/benchmark.js

It starts a throwaway server on port 3990 with an empty data folder, runs each community size in turn, prints the table above for your machine and deletes the data folder. It never touches a real server. Each size takes a minute or two. Options:

node scripts/benchmark.js --sizes 10,50,100,250 --seconds 20 --port 3990

For one size in full detail (people arriving, chat, reconnects, status changes, new channels), use the load tester it is built on:

node scripts/loadtest.js --users 500 --rate 5

The fake people run on the same machine as the server. Their processor time is not counted in the server’s numbers, but on a small machine they compete with the server for it, so message delay will read worse than it would with real people on their own devices.