trellum
Docs / Install / Scale builds on one server

Scale builds on one server

Applies to: latest

Use this guide when the build queue stays backed up while the server still has capacity. These options add concurrency on one Docker host; they do not spread work across machines.

Keep the combined worker

The simplest path is to keep the combined worker and raise WORKER_MAX_CONCURRENT while the host has CPU and memory headroom. Set TRELLUM_RUNNER_MEMORY_BUDGET_MB when builds need admission control; the Sizing guide shows the per-process budget and required host headroom.

Start with memory

Set WORKER_MAX_CONCURRENT for simultaneous builds and budget memory first. Each build can use TRELLUM_DEFAULT_JOB_MEMORY_MB (1024 MB by default), with sandbox headroom applied. A memory budget controls admission, not a physical reservation:

runner budget = total RAM - database RAM - portal RAM - host headroom

Divide the available budget between runner processes sharing this host. Use /system observations and Sizing to tune it.

Split coordinator and runner processes

Start independent runner processes on the same host and stop the combined worker:

docker compose --profile split up -d --scale runner=3
docker compose stop worker

The --scale runner=3 replicas are all on this one Docker host. They share the same PostgreSQL queue and persistent data volume. Keep exactly one active coordinator; another stands by if it cannot acquire the lock.

Return to the combined worker topology:

docker compose stop coordinator runner
docker compose up -d worker

Use Deploy on one server for the full install, storage, backups, and sandbox policy. When one host is no longer enough, continue to Run across multiple servers.