Files
vnctalk-muc-rest/loadtest/docker-compose.loadtest.yml
Stefan-Sanger 683e224d67 test: add loadtest harness for telnet pool verification
Phase 4 verification harness in loadtest/:
- bench-pool.js: standalone dep-free model showing pool of 4 = 4x and
  pool of 8 = 8x throughput vs a single serialized connection.
- run.js: autocannon harness for the read path (req/s + p50/p90/p99).
- docker-compose.loadtest.yml + init.sql: seeded Postgres + app read-path
  stack (no Prosody) for local load testing.
- README.md: usage and staging validation checklist.

Part-of: <http://gitlab.vnc.biz/uxf/prosody-muc-rest/-/merge_requests/3>
2026-07-10 14:54:25 +02:00

56 lines
1.6 KiB
YAML

# docker-compose.loadtest.yml — local read-path stack for prosody-muc-rest.
#
# Brings up Postgres (seeded) + the app built from ./Dockerfile. No Prosody,
# so only the read endpoints (GET /groupchats, GET /groupchats/:target,
# GET /health, GET /occupants/:target) are meaningful. The telnet pool will
# fail to connect on startup (logged, non-fatal) — read paths don't use it.
#
# Usage:
# docker compose -f loadtest/docker-compose.loadtest.yml up --build
# # in another terminal:
# node loadtest/run.js http://127.0.0.1:9511 10 50
# docker compose -f loadtest/docker-compose.loadtest.yml down -v
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: prosody
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- "5433:5432"
volumes:
- ./loadtest/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d prosody"]
interval: 3s
timeout: 3s
retries: 20
app:
build:
context: .
dockerfile: Dockerfile
depends_on:
postgres:
condition: service_healthy
environment:
NODE_ENV: development
servicePort: "9511"
dbHost: postgres
dbPort: "5432"
dbName: prosody
dbUser: postgres
dbPass: postgres
disableDBtls: "true"
mucDomain: conference.demo.vnc.de
telnetHost: "127.0.0.1"
telneetPort: "5582"
telnetTimeout: "5000"
telnetPoolSize: "4"
prosodyRESTUrl: "http://localhost/rest"
prosodyRESTsecret: dummy
ports:
- "9511:9511"