Skip to content

docs(self-host): measured requirements and resource usage, API .env caveat, local Postgres on 127.0.0.1 - #828

Merged
unjica merged 1 commit into
developfrom
docs/selfhost-measured-requirements
Oct 19, 2026
Merged

unjica merged 1 commit into
developfrom
docs/selfhost-measured-requirements

Conversation

@unjica

@unjica unjica commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator

What

  • DEPLOYMENT.md and /docs/self-hosting: a new "Requirements and resource usage (measured)" section covering setup time per step, idle and small-workload RAM/CPU per process, and image and volume sizes. It names the exact test hardware, date and version, and says plainly that these figures come from one setup.
  • Doc corrections found while following the docs as a new self-hoster:
    • The API does not load apps/api/.env itself. With NODE_ENV=production set only in .env, pnpm --filter api start skipped the migrate-before-listen step: no [api] prisma migrate deploy line was logged, while Prisma loaded the rest of .env later, so CORS etc. were still in production mode. With node --env-file=.env dist/index.js the step ran. The docs page previously said it "applies migrations before it listens" unconditionally.
    • pnpm --filter … start leaves a resident pnpm process (106 MiB RSS each, measured) next to each server. The docs now show how to start the servers directly.
  • docker-compose.yml: removes the obsolete version: "3", which printed a warning on every docker compose command with Compose v2, and binds Postgres to 127.0.0.1:5432, because it ships with the password postgres.
  • Links [Self-host] One-command Docker Compose stack (Postgres + API + dashboard) with prebuilt images #827, the one-command Compose stack issue.

How it was measured

v1.22.6, fresh clone, cold pnpm store and cold Docker state. Box: 8 vCPU Xeon, 15.6 GiB, Debian 13, Docker 26.1.5, Node 20.19.2. RSS and PSS came from /proc/<pid>/smaps_rollup, and Postgres from docker stats --no-stream, sampled every 10 s for 5 min idle (after a 5 min settle), 12 min under load, and 5 min after. The workload was 2,160 events, 360 errors with stack traces and 72 sessions over 12 min, plus 72 authenticated dashboard SSR loads. Every ingest returned 204.

Checks

docker compose config -q is valid, eslint on the page passes, and dashboard vitest is 355/355. tsc has the same 6 pre-existing test-file errors as develop.

Ships with the next patch release. No release is cut here.

@unjica
unjica merged commit d9e8d5f into develop Oct 19, 2026
7 checks passed
@unjica
unjica deleted the docs/selfhost-measured-requirements branch October 19, 2026 09:48
@unjica unjica mentioned this pull request Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant