RoadRunner
2.0Schema URL
Spiral Roadrunner config file schema version 2.
Properties
configuration version
Centrifugo server plugin. Docs: https://centrifugal.dev/
7 nested properties
Centrifugo server proxy address (docs: https://centrifugal.dev/docs/server/proxy#grpc-proxy)
gRPC server API address (docs: https://centrifugal.dev/docs/server/server_api#grpc-api)
Use gRPC gzip compressor
Your application version
Your application name
Static pool with PHP workers
8 nested properties
Pool debug mode. Worker will be created right before RR passes request to it
Command to use for the pool. Will override the server's command
How many worker processes will be started. Zero (or nothing) means the number of logical CPUs
Maximal count of worker executions. Zero (or nothing) means no limit
Supervisor is used to control http workers
5 nested properties
Maximal worker memory usage in megabytes (soft limit). Zero means no limit
TLS settings
2 nested properties
Path to the cert file
Path to the cert key file
1 nested properties
TCP address:port for listening
7 nested properties
Worker starting command, with any required arguments
Execute command or script before RR starts allocating workers
3 nested properties
Command to execute. It can be script or binary
Environment variables for the worker processes
User name (not UID) for the worker processes. An empty value means to use the RR process user
Group name (not GID) for the worker processes. An empty value means to use the RR process user
Environment variables for the worker processes
Worker relay can be: 'pipes', TCP (eg.: tcp://127.0.0.1:6002), or socket (eg.: unix:///var/run/rr.sock)
7 nested properties
Logging mode
Logging level
Encoding format
You can configure each plugin log messages individually
file logger options
5 nested properties
path to the file
maximum file size in MB
The maximum number of days to retain old log files based on the timestamp encoded in their filename
The maximum number of old log files to retain
compress files to save a disk space
Workflow and activity mesh service, https://docs.temporal.io/docs/php/introduction/
6 nested properties
Address of temporal server
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
Namespace name for this client to work with
Temporal metrics
1 nested properties
Metrics driver to use
Static pool with PHP workers
8 nested properties
Pool debug mode. Worker will be created right before RR passes request to it
Command to use for the pool. Will override the server's command
How many worker processes will be started. Zero (or nothing) means the number of logical CPUs
Maximal count of worker executions. Zero (or nothing) means no limit
Supervisor is used to control http workers
5 nested properties
Maximal worker memory usage in megabytes (soft limit). Zero means no limit
Temporal TLS configuration
5 nested properties
Path to the key file
Path to the certificate
Path to the CA certificate
Client auth type
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.
Key value storages plugin
Service plugin settings
15 nested properties
Host and port
Maximal incoming request size in megabytes. Zero means no limit
Send raw body (unescaped) to the PHP worker for the application/x-www-form-urlencoded content type
HTTP access logs
Middleware for the http plugin, order is important
Allow incoming requests only from the following subnets
[
"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"
]
RFC 7234 Souin cache: https://github.com/darkweak/souin/tree/master/plugins/roadrunner
5 nested properties
The cache-handler API cache management
3 nested properties
Default route basepath for every additional APIs to avoid conflicts with existing routes
Prometheus exposed metrics
Souin listing keys and cache management
If Souin is set after a CDN fill these information
4 nested properties
Your provider API key if mandatory
The provider placed before Souin (e.g. fastly, cloudflare, akamai, varnish)
The strategy to purge the CDN cache based on tags (e.g. soft, hard)
If true, you'll be able to add custom keys than the ones defined under the surrogate_keys key
12 nested properties
[
"GET",
"POST"
]
Override the cache name to use in the Cache-Status header
Use Olric or Etcd distributed storage
Default headers concatenated in stored keys
If distributed is set to true, you'll have to define either the etcd or olric section
If distributed is set to true, you'll have to define either the etcd or olric section
Regex to exclude from cache
Stale duration
Timeout configuration
Default TTL
Set default value for Cache-Control response header if not set by upstream
Logs verbosity
3 nested properties
Directory for file uploads. Empty value means to use $TEMP based on your OS
Deny files with the following extensions to upload
[
".php",
".exe",
".bat"
]
Allow files with the following extensions to upload
HTTP headers map
3 nested properties
Allows to control CORS headers
6 nested properties
Controls 'Access-Control-Allow-Origin' header value
Controls 'Access-Control-Allow-Headers' header value
Controls 'Access-Control-Allow-Methods' header value
Controls 'Access-Control-Allow-Credentials' header value
Controls 'Access-Control-Expose-Headers' header value
Controls 'Access-Control-Max-Age' header value (in seconds)
Hashmap
Hashmap
Static assets serving settings
6 nested properties
Path to the directory with static assets
File extensions that should not be served
File extensions which should be served
Turn on etag computation for the static file
Use a weak generator (/W), it uses only filename to generate a CRC32 sum
Hashmap
Static pool with PHP workers
8 nested properties
Pool debug mode. Worker will be created right before RR passes request to it
Command to use for the pool. Will override the server's command
How many worker processes will be started. Zero (or nothing) means the number of logical CPUs
Maximal count of worker executions. Zero (or nothing) means no limit
Supervisor is used to control http workers
5 nested properties
Maximal worker memory usage in megabytes (soft limit). Zero means no limit
SSL (Secure Sockets Layer) settings
7 nested properties
Host and port
Path to the cert file
Path to the cert key file
ACME certificates provider (Let's encrypt)
7 nested properties
User email, used to create LE account
List of your domains to obtain certificates
Directory to use as a certificate/pk, account info storage
Alternate port for the http challenge. Challenge traffic should be redirected to this port if overridden.
Alternate port for the tls-alpn-01 challenge. Challenge traffic should be redirected to this port if overridden.
Challenge types
Use production or staging endpoint. NOTE, try to use staging endpoint to make sure, that everything works correctly.
Automatic redirect from http to https schema
Path to the root certificate authority file
Client auth type
FastCGI frontend support
1 nested properties
FastCGI connection DSN. Supported TCP and Unix sockets. An empty value disables this
HTTP/2 settings
2 nested properties
HTTP/2 over non-encrypted TCP connection using H2C
Maximal concurrent streams count
OpenTelemetry configuration
9 nested properties
Use insecure endpoint
Use gzip compressor
Provides functionality to emit telemetry to consumers
Used for the http client to override the default URL
Consumer's endpoint
Client to send the spans
User's service name
User's service version
Hashmap
Redis config section
21 nested properties
Redis server addresses
Redis db number
Application metrics in Prometheus format (docs: https://roadrunner.dev/docs/beep-beep-metrics)
2 nested properties
Prometheus client address (path /metrics added automatically).
Application-specific metrics (published using an RPC connection to the server)
Health check endpoint (docs: https://roadrunner.dev/docs/beep-beep-health). If response code is 200 - it means at least one worker ready to serve requests. 500 - there are no workers ready to service requests.
2 nested properties
Host and port to listen on (eg.: 127.0.0.1:2114). Use the following URL: http://127.0.0.1:2114/health?plugin=http. Multiple plugins must be separated using & - http://127.0.0.1:2114/health?plugin=http&plugin=rpc where http and rpc are active (connected) plugins.
Response status code if a requested plugin not ready to handle requests. Valid for both /health and /ready endpoints
Automatically detect PHP file changes and reload connected services
3 nested properties
Global patterns to sync
[
".php"
]
List of included for sync services (this is a map, where key name is a plugin name)
AMQP jobs driver
1 nested properties
AMQP Uri to connect to the rabbitmq server https://www.rabbitmq.com/uri-spec.html
Beanstalk jobs driver
2 nested properties
Beanstalk server address
SQS jobs driver (https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html)
5 nested properties
AccessKey ID
Secret Access key
AWS Region
AWS Session token
AWS SQS endpoint to connect
JOBS plugin
5 nested properties
Number of threads which will try to obtain the job from the priority queue. Default is the number of the logical CPU cores
Size of the internal priority queue, if the internal PQ reach the max number of elements, the Push operation will be blocked
list of pipelines to be consumed by the server automatically at the start, keep empty if you want to start consuming manually
Static pool with PHP workers
8 nested properties
Pool debug mode. Worker will be created right before RR passes request to it
Command to use for the pool. Will override the server's command
How many worker processes will be started. Zero (or nothing) means the number of logical CPUs
Maximal count of worker executions. Zero (or nothing) means no limit
Supervisor is used to control http workers
5 nested properties
Maximal worker memory usage in megabytes (soft limit). Zero means no limit
List of broker pipelines associated with the drivers. This option is not required since you can declare pipelines in the runtime. Pipeline driver should exist.
2 nested properties
JOBS plugin driver
driver configurations
Plugin to handle RAW TCP packets, available since RR 2.6.0
2 nested properties
TCP servers to allocate
Static pool with PHP workers
8 nested properties
Pool debug mode. Worker will be created right before RR passes request to it
Command to use for the pool. Will override the server's command
How many worker processes will be started. Zero (or nothing) means the number of logical CPUs
Maximal count of worker executions. Zero (or nothing) means no limit
Supervisor is used to control http workers
5 nested properties
Maximal worker memory usage in megabytes (soft limit). Zero means no limit
GRPC plugin
12 nested properties
Host and port with tcp:// prefix
Proto file to use, multiply files supported [SINCE 2.6]
GRPC TLS configuration
4 nested properties
Path to the key file
Path to the certificate
Path to the CA certificate
Client auth type
Maximum send message size
Maximum receive message size
MaxConnectionAgeGrace is an additive period after MaxConnectionAge after which the connection will be forcibly closed
Static pool with PHP workers
8 nested properties
Pool debug mode. Worker will be created right before RR passes request to it
Command to use for the pool. Will override the server's command
How many worker processes will be started. Zero (or nothing) means the number of logical CPUs
Maximal count of worker executions. Zero (or nothing) means no limit
Supervisor is used to control http workers
5 nested properties
Maximal worker memory usage in megabytes (soft limit). Zero means no limit
[SINCE 2.6] File server to serve static files
5 nested properties
Definitions
BoltDB config section
file name for the db
Access permission for the DB file.
TTL keys check interval in seconds. It's safe to use 1 second here, but can be a little costly to performance
In-memory config section
Address of the memcached node
Redis config section
Redis server addresses
Redis db number
In-memory config section
TTL keys check interval in seconds. It's safe to use 1 second here, but can be a little costly to performance
User defined service
Command to execute. Can be any command here which can be executed.
Hashmap
Number of copies (processes) to start per command
Remain process after exit. In other words, restart process after exit with any exit code
Number of seconds to wait before process restart
Static pool with PHP workers
Pool debug mode. Worker will be created right before RR passes request to it
Command to use for the pool. Will override the server's command
How many worker processes will be started. Zero (or nothing) means the number of logical CPUs
Maximal count of worker executions. Zero (or nothing) means no limit
Supervisor is used to control http workers
5 nested properties
Maximal worker memory usage in megabytes (soft limit). Zero means no limit
TCP server
Address to listen
Data packets delimiter. Every send should end either with EOF or with the delimiter
Chunks that RR uses to read the data. In MB. If you expect big payloads on a TCP server, to reduce read syscalls, would be a good practice to use a fairly big enough buffer
Time duration
"1h""2.5h""2m"".2m""30s""30.03s""300ms""1h3m40s500ms"
Host and port with tcp:// prefix
"tcp://127.0.0.1:443""${TCP:-tcp://127.0.0.1:443}""tcp://127.0.0.1:${TCP_PORT}"
Host and port
"127.0.0.1:443"":8080""0.0.0.0:${HTTP_PORT:-8080}""${HTTP_HOST:-127.0.0.1:8000}"
Logging mode
Logging level
Encoding format
"stdout""stderr""/var/log/rr_errors.log"
Hashmap
Hashmap with floats
NATS jobs driver
NATS server address
Kafka jobs driver
Kafka server addresses
Boltdb jobs driver