Reference

Reference: server

server.accept_policy

Syntaxaccept_policy: shared | fountain
Defaultshared
Contextserver
Reloadread when the process starts

Which event loop takes a new connection from the shared accept queue (ADR-0044): shared (default), whichever loop wakes first; fountain, loops fill in order and a loop takes connections only while the loops before it are busy or hold twice their fair share of the open connections.

server.acme

Syntaxacme: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Automatic certificates from an ACME CA such as Let’s Encrypt (ADR-0018).

server.admin

Syntaxadmin: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Admin API used by scalwsctl and the console (ADR-0017).

server.ai

Syntaxai: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Optional local AI advisor (ADR-0016); advisory only.

server.cache

Syntaxcache: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Memory (and optional disk) shared by applications that enable the response cache.

server.cgroups

Syntaxcgroups: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

cgroup v2 limits for managed applications (ADR-0010).

server.diagnostics

Syntaxdiagnostics: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Slow-request threshold and the number of recent requests kept for diagnosis.

server.ebpf

Syntaxebpf: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Optional eBPF network accounting (ADR-0025, builds with the ebpf feature).

server.event_loops

Syntaxevent_loops: <integer>
Defaultone per CPU
Contextserver
Reloadneeds a restart

Per-core event loops (ADR-0029): unset = one per CPU, 0 = one shared work-stealing runtime. Linux only (elsewhere always shared).

server.health

Syntaxhealth: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Plain HTTP listener for orchestrator probes: /healthz, /readyz and optionally /metrics; nothing else.

server.http1_server

Syntaxhttp1_server: hyper | experimental
Defaulthyper
Contextserver
Reloadapplies on reload

HTTP/1 server implementation (ADR-0046): hyper (default) or experimental: scalws’s own. Applies to connections accepted after a reload.

server.ktls

Syntaxktls: true | false
Defaultfalse
Contextserver
Reloadread when the process starts

Kernel TLS for HTTPS/1.1 file bodies (Linux, modprobe tls; ADR-0030).

server.limits

Syntaxlimits: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Connection, header, body and timeout limits for every client connection.

server.listen_socket

Syntaxlisten_socket: <string>
Defaultnone
Contextserver
Reloadread when the process starts

Unix socket that hands out the listening sockets for listener_mode: inherited (set by scalws-controller through --listen-socket).

server.listener_mode

Syntaxlistener_mode: shared | reuseport | inherited
Defaultshared
Contextserver
Reloadread when the process starts

How listening sockets are opened (ADR-0033): shared (default), one socket per address shared by this process’s event loops; reuseport: one SO_REUSEPORT socket per event loop, so several scalwsd instances can serve the same address; inherited: the sockets are received from listen_socket (opened by scalws-controller; every instance accepts from the same queue). Linux only.

server.listeners

Syntaxlisteners: [{...}, ...]
Defaultrequired
Contextserver
Reloadadding or removing it needs a restart; its values apply on reload

Addresses the server accepts connections on, plain or TLS.

server.logging

Syntaxlogging: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Log format, level and access logging.

server.loop_lag_probe

Syntaxloop_lag_probe: true | false
Defaultfalse
Contextserver
Reloadapplies on reload

Measure event-loop lag (a 100 ms timer per loop) and export scalws_event_loop_lag_seconds (Adaptive Runtime pressure signal, ADR-0034). Off by default; on for instances started by the controller.

server.metrics

Syntaxmetrics: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Loopback listener for /metrics, /healthz, /readyz and the dashboard.

server.open_file_cache

Syntaxopen_file_cache: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Open file cache for static files (ADR-0028).

server.optimizer

Syntaxoptimizer: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Deterministic optimizer that evaluates every application periodically (ADR-0014).

server.reload

Syntaxreload: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Watch the configuration, its site files and listener certificates, and reload when one of them changes (for Kubernetes ConfigMap and Secret volumes).

server.runtime_dir

Syntaxruntime_dir: <string>
Default/run/scalws
Contextserver
Reloadneeds a restart

Directory for managed runtimes’ sockets and generated configuration (ADR-0008).

server.sandbox

Syntaxsandbox: {...}
Defaultnone
Contextserver
Reloadread when the process starts

In-process sandbox of scalwsd (Landlock and seccomp, Linux): off (default), audit or on, or a map with mode, read_paths and write_paths (docs/guide/sandbox.md).

server.security

Syntaxsecurity: {...}
Defaultsee the fields below
Contextserver
Reloadapplies on reload

Per-client connection and request limits.

server.sendfile

Syntaxsendfile: true | false
Defaulttrue
Contextserver
Reloadapplies on reload

Large static files on plain-TCP HTTP/1 connections are sent with sendfile(2) (Linux, ADR-0027).

server.trusted_proxies

Syntaxtrusted_proxies: [<string>, ...]
Default[]
Contextserver
Reloadapplies on reload

Peers (CIDRs) allowed to report the client address via X-Forwarded-For or the PROXY protocol (ADR-0022), e.g. your load balancers.

server.upstream_client

Syntaxupstream_client: hyper | experimental
Defaulthyper
Contextserver
Reloadread when the process starts

HTTP/1 client of every proxy and managed application (ADR-0045): hyper (default) or experimental. A proxy route’s client overrides it. Read at start-up (a reload keeps the running value; route-level client changes apply on reload).