Configuration
Prism configuration is available in TOML (prism.toml) and YAML (prism.yaml / prism.yml).
A JSON Schema is available for editor validation/completions:
prism.schema.json(in the repo root)
Top-level fields
listeners (array)
Public-facing proxy listeners.
Each listener has:
listen_addr(required): address to bind (example:25565)protocol:tcp(default) orudpupstream:- TCP: empty/omitted means hostname-routing mode; non-empty means fixed forward
- UDP: required (always fixed forward)
routes (array)
Ordered hostname routes (first match wins).
Each route supports:
host/hosts: host pattern(s), supports*and?wildcardsupstream/upstreams(aliases:backend/backends)strategy:sequential(default),random,round-robinparsers: routing parser chain (defaults to[minecraft_handshake, tls_sni])cache_ping_ttl: cache Minecraft status responses (60s,500ms,-1)
admin_addr (string)
Admin HTTP server listen address.
- Example:
:8080 - Empty string disables the admin server.
logging (object)
level:debug|info|warn|errorformat:json|textoutput:stderr|stdout|discard| file pathadd_source: include source file/line
reload (object)
Automatic reload watching (file-based provider only):
enabled(defaulttrue)poll_interval_ms(default1000)
timeouts (object)
handshake_timeout_ms(default3000)idle_timeout_ms(default0, disabled)
proxy_protocol_v2 (bool)
Whether to inject HAProxy PROXY protocol v2 headers on TCP upstream connections.
buffer_size (int)
Buffer size in bytes used for proxying.
0means “use the default”.
upstream_dial_timeout_ms (int)
Dial timeout for upstream connections in milliseconds.
0means “use the default”.
max_header_bytes (int)
Maximum number of bytes to peek/read for routing (handshake/SNI/etc).
0means “use the default”.
tunnel (object)
Reverse-connection mode (client → server).
auth_token: optional shared secret for client registrationauto_listen_services: whether the server auto-opens listeners for services withremote_addrendpoints: server endpoints to accept tunnel clientsclient: optional tunnel client roleservices: services registered by a client
For a complete example, see prism.example.toml / prism.example.yaml in the repo.
Full schema
For exact field types, defaults, and validation rules, consult:
prism.schema.json