docs: machine requirements by what is switched on, measured
test / test (push) Waiting to run

Owner, 2026-10-19: "Нам нужно записать в документы для деплоя минимальные
требования к машине в зависимости от включённых опций." The README's
"1 vCPU, 512 MB-1 GB RAM, 8-10 GB disk" had never been measured.

Measured on the test installation (2.16.0, inbound relay and rspamd on,
2 vCPU / 4 GB), 2026-10-19:
- the SelfPost container: cgroup 55 MB at rest, 78 MB peak since the
  rollout; panel and supervisord ~30 MB RSS each, Postfix daemons 6-12 MB;
- the rspamd sidecar: 117 MB, peak 120 MB, five processes;
- CPU at rest under 0.1 %; images 315 MB and 311 MB;
- the build step of build/Dockerfile, cold, in golang:1.26-trixie held by
  docker run --memory/--memory-swap and --cpus 1: killed at 512 MB and 1 GB
  (compile of modernc.org/libc, modernc.org/sqlite), passed at 1.5 GB
  (269 s) and 2 GB; unlimited on 2 CPUs 150 s, cgroup peak 1.5 GB. Build
  cache per build: go mod download 577 MB, compile step 403 MB; the Go
  image 1.28 GB;
- send log: dbstat pages and 4.9 lines of ~150 B per message give about
  2-3 KB a message (the guide's env table already said 1-2 KB for the lines);
  mail.log ~400 KB a day of mostly port-25 noise on the test server.
Postfix's own refusal for a short disk cited from src/smtpd/smtpd_check.c,
smtpd_check_queue(). What is worked out rather than measured (the 1 000 and
10 000 a day figures, the host memory column) says so or is framed as a
minimum with room for the host.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mix
2026-10-19 00:23:35 +03:00
co-authored by Claude Opus 5.5
parent 91dadf7b35
commit 839a752341
3 changed files with 95 additions and 3 deletions
+13 -3
View File
@@ -62,9 +62,19 @@ missing PTR record for you. Details: [Operator guide](docs/guide.md).
- Docker + Compose v2 on the host
- A reverse proxy in front of the panel (SelfPost never terminates HTTPS itself)
- Rough sizing: **1 vCPU**, **512 MB–1 GB RAM**, **8–10 GB disk** (send log and
rotated `mail.log` are the main growth drivers; both sit in the `./data`
volume, and both are capped — 90 days and 14 files by default)
- Machine, by what is switched on (measured; details and disk growth in the
guide's [Machine requirements](docs/guide.md#machine-requirements)):
| Switched on | Host memory, at least | Images on disk |
|---|---|---|
| Outbound only (465/587), or with port 25 (inbound relay, DMARC reports) | 512 MB | 315 MB |
| With the spam filter (rspamd sidecar) | 1 GB | 626 MB |
One vCPU is enough. **Building the image needs 1.5 GB of memory and about
3 GB of free disk** (the Go compiler: a 1 GB build was killed) - on a
smaller machine, build elsewhere and `docker load` the image. The send log
is what grows: about 2-3 KB a message for the retention (90 days by
default) - 10 000 messages a day keep about 2.5 GB.
### Network and IP