Type object
Schema URL https://catalog.lintel.tools/schemas/schemastore/roadrunner/_shared/latest--3.0.schema.json
Parent schema roadrunner
Type: object

This is your main RoadRunner configuration file. It should contain all the plugins you want to load and their configuration.

Properties

version string required

RoadRunner configuration file version.

Default: "3"
Values: "3"
amqp
All of: driver driver
beanstalk
All of: driver driver
boltdb
All of: driver driver
centrifuge object

All the valid configuration parameters for the Centrifugo plugin for RoadRunner.

7 nested properties
proxy_address string

The address of the Centrifugo proxy server.

Default: "tcp://127.0.0.1:30000"
minLength=1
grpc_api_address string

The address/port of the gRPC server API.

Default: "tcp://127.0.0.1:10000"
minLength=1
use_compressor boolean

Whether to use gRPC gzip compressor.

Default: false
version string

Your application version.

Default: "v1.0.0"
minLength=1
name string

Your application name.

Default: "roadrunner"
minLength=1
pool Schema
tls object

TLS settings

2 nested properties
cert cert required
key key required
fileserver object

All the valid configuration parameters for the FileServer plugin for RoadRunner.

5 nested properties
address string required

The address to listen on.

Examples: "127.0.0.1:10101"
minLength=1
serve object[] required

The URL prefixes to serve as static files. At least one entry is required.

minItems=1
calculate_etag boolean

Whether to calculate ETag for the file and add the ETag header. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag

Default: false
weak

Whether to use only the filename when calculating the ETag value. If false, the entire file content is used.

Default: false
stream_request_body boolean

Whether to stream files larger than 4KB.

Default: false
grpc object

All the valid configuration parameters for the gRPC plugin for RoadRunner.

12 nested properties
listen string required

gRPC address to listen on. Supports both TCP and Unix sockets.

Examples: "tcp://127.0.0.1:443", "${TCP:-tcp://127.0.0.1:443}", "tcp://127.0.0.1:${TCP_PORT}"
minLength=1
proto string[] required

Proto file(s) to use. Multiple files are supported. Wildcards are allowed in the proto field.

minItems=1
tls object

GRPC TLS configuration

4 nested properties
key key required
cert cert required
root_ca root_ca
client_auth_type ClientAuthType
max_send_msg_size integer

Maximum send message size in MB.

Default: 50
max_recv_msg_size integer

Maximum receive message size in MB.

Default: 50
max_connection_idle duration

MaxConnectionIdle is a duration for the amount of time after which an idle connection would be closed by sending a GoAway. Idle duration is defined by the most recent time the number of outstanding RPCs became zero or since the connection was established. Defaults to infinite.

max_connection_age duration

The maximum duration a connection may exist before it will be closed by sending a GoAway. A random jitter of +/-10% will be added to MaxConnectionAge to spread out connection storms. Defaults to infinite.

max_connection_age_grace duration

The duration after MaxConnectionAge after which the connection will be forcibly closed. Defaults to infinite.

max_concurrent_streams integer

The maximum number of concurrent streams. Empty or 0 defaults to 10.

Default: 10
ping_time duration

Duration of no activity after which the server pings the client to see if the transport is still alive. If set below 1s, a minimum value of 1s will be used instead.

Default: "2h"
timeout duration

The duration to wait for a response to a keepalive check, after which the connection is closed.

Default: "20s"
pool Schema
http object

All the valid configuration parameters for the http plugin for RoadRunner.

15 nested properties
address string

Host and/or port to listen on for HTTP traffic. If omitted, RoadRunner will not listen for HTTP requests.

Examples: "127.0.0.1:8080", ":8080"
minLength=1
internal_error_code integer

HTTP status code to use for internal RoadRunner errors. Defaults to 500 if omitted.

Default: 500
min=100max=599
max_request_size integer

Maximum request size in MB. Defaults to 1 GB if zero or omitted.

Default: 1000
min=0
raw_body boolean

Whether to send the raw, encoded body for application/x-www-form-urlencoded content. Defaults to sending decoded content to PHP workers.

Default: false
access_logs boolean

Whether to enable HTTP access logs.

Default: false
middleware string[]

List of middleware to load for the HTTP plugin, executed in the specified order.

minItems=1
trusted_subnets string[]

List of subnets from which incoming requests are allowed. Defaults to typical private network ranges (192.168., 10.0., and 172.16.) and local/loopback interfaces (127.).

Default:
[
  "10.0.0.0/8",
  "127.0.0.0/8",
  "172.16.0.0/12",
  "192.168.0.0/16",
  "::1/128",
  "fc00::/7",
  "fe80::/10"
]
uploads Uploads
headers object

HTTP header configuration.

3 nested properties
cors object

Controls which CORS headers are returned. Additional headers Vary: Origin, Vary: Access-Control-Request-Method and Vary: Access-Control-Request-Headers will be added to responses. Omit this section to disable CORS headers.

7 nested properties
allowed_origin string

Controls the value of 'Access-Control-Allow-Origin'.

Examples: "*"
allowed_origin_regex string

Controls the value of 'Access-Control-Allow-Origin' header value, but evaluated as regex.

Examples: "^https://foo"
allowed_headers string

Controls the value of 'Access-Control-Allow-Headers'.

Examples: "*"
allowed_methods string

Controls the value of 'Access-Control-Allow-Methods'. Provide a comma-separated string of HTTP verbs.

Examples: "GET,POST,PUT,DELETE"
allow_credentials boolean

Controls the value of 'Access-Control-Allow-Credentials'.

Default: false
exposed_headers string

Controls the value of 'Access-Control-Expose-Headers'. Provide a comma-separated list of HTTP headers.

Examples: "Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma"
max_age integer

Controls the value of 'Access-Control-Max-Age' (in seconds).

Default: 0
Examples: 600
request Headers

Custom HTTP headers to add to every request passed to PHP.

response Headers

Custom HTTP headers to add to every response from PHP.

static object

Configuration options for serving static files.

7 nested properties
dir string

Path to the directory with static assets. Defaults to the current working directory. Empty/undefined and . are equal and are both treated as current directory.

Examples: ".", "/var/www/html"
forbid string[]

File extensions of files that must not be served. Empty/undefined disallows no files. If files are specified in both forbid and allow, they will be disallowed. Defaults to an empty array, disallowing no files.

allow string[]

File extensions of files that may be served. Empty/undefined allows all files, except files specified in forbid.

calculate_etag boolean

Whether to enable ETag computation for static files.

Default: false
weak boolean

Whether to use a weak generator (/W), which uses only the filename to generate a CRC32 sum for et ETag. Disable to use the file contents.

Default: false
request Headers

Custom HTTP headers to add to every request for static files.

response Headers

Custom HTTP headers to add to every response from static files.

pool Schema
ssl SSL
fcgi FCGI
http2 HTTP2
http3 HTTP3
jobs object

All the valid configuration parameters for the jobs plugin for RoadRunner.

6 nested properties
num_pollers integer

Number of threads which will try to obtain jobs from the priority queue. Default is the number of workers in the pool +1. Deprecated: This will be removed in a future version.

Examples: 10, 32
min=1
timeout integer

Request timeout (in seconds) when attempting to send jobs to the queue. If zero or omitted, this defaults to 60 seconds.

Default: 60
pipeline_size integer

Size of the internal priority queue. If the internal priority queue is full, you cannot send (push) additional jobs to the queue. If you set this value to zero or omit it, it defaults to 1 million.

Default: 1000000
min=0
consume string[]

A list of pipelines to be consumed by the server automatically when starting. You can omit this list if you want to start consuming manually. Each item in this list must be defined as a key under pipelines.

pool Schema
pipelines object

List of broker pipelines associated with the configured drivers. This option is not required since you can declare pipelines at runtime. The selected pipeline driver must be configured in the root of your configuration file.

kafka
All of: driver driver
logs object

All the valid configuration parameters for the Logger plugin for RoadRunner.

8 nested properties
mode LogMode
level LogLevel
line_ending LogLineEnding
encoding LogEncoding
output LogOutput
err_output LogOutput
file_logger_options FileLoggerOptions
channels object

You can configure logging for each plugin individually. The key is the plugin name and the value is logging options in same format as the parent.

memcached object

All the valid configuration parameters for the Memcached plugin for RoadRunner.

1 nested properties
addr string[]

Addresses of the memcached node(s).

Default:
[
  "localhost:11211"
]
minItems=1
metrics object

All the valid configuration parameters for the Prometheus Metrics plugin for RoadRunner.

2 nested properties
address string

Prometheus client address (path /metrics is appended automatically).

Default: "127.0.0.1:2112"
minLength=1
collect object

Application-specific metrics (published using an RPC connection to the server).

nats
All of: driver driver
otel object

All the valid configuration parameters for the OpenTelemetry plugin for RoadRunner.

10 nested properties
resource object required
4 nested properties
service_name string

The name of the service.

Default: "RoadRunner"
minLength=1
service_version string

The version of the service.

Default: "1.0.0"
minLength=1
service_namespace string

The namespace of the service.

Default: "<service_name>-<uuid>"
minLength=1
service_instance_id string

The service instance ID. If not provided or empty, a UUID is generated.

Default: "<uuid>"
minLength=1
insecure boolean

Use insecure endpoint

Default: false
compress boolean

Whether to use gzip compressor.

Default: false
exporter string

Provides functionality to emit telemetry to consumers.

Default: "otlp"
Values: "zipkin" "stdout" "stderr" "otlp" "jaeger" "jaeger_agent"
custom_url string

Overrides the default URL of the HTTP client, if provided.

minLength=1
endpoint string

The endpoint of the consumer. Uses the OTEL default if not provided.

Default: "127.0.0.1:4318"
minLength=1
client string

Client to send the spans. Defaults to http if invalid or empty.

Values: "http" "grpc"
service_name string

User's service name. Deprecated: Use resource.service_name instead.

Default: "RoadRunner"
service_version string

User's service version. Deprecated: Use resource.service_version instead.

Default: "1.0.0"
headers object

User defined headers for the OTLP protocol.

redis object

All the valid configuration parameters for the Redis plugin for RoadRunner.

22 nested properties
addrs string[]

The addresses or hostnames of the Redis server/cluster to connect to. If the number of addresses is 1 and master_name is empty, a single-node Redis Client will be returned, otherwise a ClusterClient or FailoverClient will be returned, depending on whether master_name is provided.

Default:
[
  "localhost:6379"
]
minItems=1
master_name string

The name of the master Redis node. A Sentinel-backed FailoverClient will be returned if this value is provided.

username string

The username to provide for Redis authentication.

Examples: "my_username"
password string

The password to provide for Redis authentication.

Examples: "super-secret-password"
db integer

The Redis DB index to select when connecting.

Default: 0
max=10
sentinel_password string

The password for Redis Sentinel.

Examples: "super-secret-password"
route_by_latency boolean

Whether to route traffic to Redis nodes based on latency.

Default: false
route_randomly boolean

Whether to randomly route traffic to Redis nodes.

Default: false
dial_timeout duration

The timeout when attempting to connect to Redis. Default or zero means 5s.

Default: 0
max_retries integer

The maximum number of retry attempts when connecting to Redis. Default or zero means 3.

Default: 0
min_retry_backoff duration

The minimum backoff duration when retrying connection attempts. Default or zero means 8s.

Default: 0
max_retry_backoff duration

The maximum backoff duration when retrying connection attempts. Default or zero means 512s.

Default: 0
pool_size integer

The number of connections to keep in the Redis connection pool. Default or zero means 10 per logical CPU.

Default: 0
min_idle_conns integer

The minimum number of connections to keep in the pool. Defaults to 0, which means no idle connection pool.

Default: 0
max_conn_age duration

The maximum age of open Redis connections. Default or zero means no limit.

Default: "0s"
read_timeout duration

The timeout when reading from a Redis node. Default or zero means 3s.

Default: "0s"
write_timeout duration

The timeout when writing to a Redis node. Default or zero means equivalent to read_timeout.

Default: "0s"
pool_timeout duration
idle_timeout duration

The timeout of idle connections to Redis. Default or zero means 5m.

Default: "0s"
idle_check_freq duration

The time between checks for idle connections to Redis. Default or zero means 1m.

Default: "0s"
read_only boolean

Whether the Redis connection is in read-only mode. See https://redis.io/docs/latest/commands/readonly.

Default: false
tls object

GRPC TLS configuration

4 nested properties
root_ca root_ca required
key key
cert cert
client_auth_type ClientAuthType
temporal object

All the valid configuration parameters for the Temporal plugin for RoadRunner.

6 nested properties
address string

Address of the Temporal server. Defaults to localhost:7233 if not provided.

Default: "localhost:7233"
minLength=1
cache_size integer

Sticky cache size. Sticky workflow execution is the affinity between workflow tasks of a specific workflow execution to a specific worker. The benefit of sticky execution is that the workflow does not have to reconstruct state by replaying history from the beginning. The cache is shared between workers running within same process. This must be called before any worker is started. If not called, the default size of 10K (which may change) will be used.

Default: 10000
namespace string

Namespace for this client to work with.

Default: "default"
metrics object | object
activities Schema
tls object

Temporal TLS configuration.

5 nested properties
key key required
cert cert required
root_ca root_ca
client_auth_type ClientAuthType
server_name string

ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.

rpc object

All the valid configuration parameters for the RPC plugin for RoadRunner.

1 nested properties
listen string

The address and port for the RPC server to bind to. Should contain protocol definition (i.e. tcp:// or unix://).

Default: "tcp://127.0.0.1:6001"
Examples: "tcp://127.0.0.1:6001"
minLength=1
server object

All the valid configuration parameters for the Server plugin for RoadRunner.

6 nested properties
command string required

The command used to start workers, including any required arguments. Any plugins that implement a worker pool will inherit this command if they do not specify an override.

Examples: "php psr-worker.php"
minLength=1
on_init object

Arbitrary command to execute before RR starts allocating workers.

5 nested properties
command string required

Command to execute. It can be any script or binary that RoadRunner has access to.

Examples: "php not-worker.php", "sh script.sh", "start script.bat"
minLength=1
exec_timeout Duration

Script execution timeout. Zero or empty defaults to 60s.

Default: "60s"
exit_on_error boolean

Exit RR if the on_init command fails.

Default: "false"
user User
env EnvironmentVariables
user User
group string

Group name (not GID) for the worker processes. The RR process user group will be used if not provided. The RoadRunner process must be run as root for this to work.

Examples: "www-data"
minLength=1
env EnvironmentVariables
relay string

Worker relay method. Can be 'pipes', a TCP address (e.g. tcp://127.0.0.1:6002) or a socket (e.g. unix:///var/run/rr.sock).

Default: "pipes"
Examples: "pipes", "tcp://127.0.0.1:6002", "unix:///var/run/rr.sock"
minLength=1
sqs
All of: driver driver
status object

All the valid configuration parameters for the Health Check (Status) plugin for RoadRunner.

3 nested properties
address string required

Host and port to listen on (eg.: 127.0.0.1:2114). To query a plugin, pass its name as a query parameter called plugin, e.g. to check the http plugin, request GET <http://127.0.0.1:2114/health?plugin=http>. You can query multiple plugins by appending multiple instances of the plugin parameter, e.g. GET <http://127.0.0.1:2114/health?plugin=http&plugin=rpc>.

Examples: "127.0.0.1:2114"
minLength=1
unavailable_status_code integer

Response HTTP status code if a requested plugin is not ready to handle requests. Valid for both /health and /ready endpoints. Defaults to 503 if undefined or zero.

Default: 503
min=100max=599
check_timeout integer

The maximum duration to wait for a complete response from the queried plugin(s), in seconds. Defaults to 60.

Default: 60
min=1
tcp object

All the valid configuration parameters for the TCP plugin for RoadRunner.

3 nested properties
servers object

The TCP servers to allocate.

pool Schema
read_buf_size integer

Size of the chunks that RR reads data in, in MB. If you expect big payloads on a TCP server, you may reduce read system calls by using a big buffer.

Default: 1
min=1max=100
kv object

All the valid configuration parameters for the KV plugin for RoadRunner.

service object

All the valid configuration parameters for the Service plugin for RoadRunner.

Definitions

Duration string

Time duration

Examples:
  • "1h"
  • "2.5h"
  • "2m"
  • ".2m"
  • "30s"
  • "30.03s"
  • "300ms"
  • "1h3m40s500ms"