Maincloud is now LIVE! Get Maincloud Energy 90% off until we run out!

`spacetimedb-standalone` configuration

A local database instance (as started by spacetime start) can be configured in {data-dir}/config.toml, where {data-dir} is the database's data directory. This directory is printed when you run spacetime start:

spacetimedb-standalone version: 1.0.0
spacetimedb-standalone path: /home/user/.local/share/spacetime/bin/1.0.0/spacetimedb-standalone
database running in data directory /home/user/.local/share/spacetime/data

On Linux and macOS, this directory is by default ~/.local/share/spacetime/data. On Windows, it's %LOCALAPPDATA%\SpacetimeDB\data.

`config.toml`

`certificate-authority`

[certificate-authority]
jwt-priv-key-path = "/path/to/id_ecdsas"
jwt-pub-key-path = "/path/to/id_ecdsas.pub" 

The certificate-authority table lets you configure the public and private keys used by the database to sign tokens.

`logs`

[logs]
level = "error"
directives = [
    "spacetimedb=warn",
    "spacetimedb_standalone=info",
] 
`logs.level`

Can be one of "error", "warn", "info", "debug", "trace", or "off", case-insensitive. Only log messages of the specified level or higher will be output; e.g. if set to warn, only error and warn-level messages will be logged.

`logs.directives`

A list of filtering directives controlling what messages get logged, which overwrite the global logs.level. See tracing documentation for syntax. Note that this is primarily intended as a debugging tool, and log message fields and targets are not considered stable.

`websocket`

[websocket]
ping-interval = "15s"
idle-timeout = "30s"
close-handshake-timeout = "250ms"
incoming-queue-length = 2048 
`websocket.ping-interval`

Interval at which the server will send Ping frames to keep the connection alive. Should be smaller than websocket.idle-timeout to be effective.

Values are strings of any format the humantime crate can parse.

`websocket.idle-timeout`

If the server hasn't received any data from the client (including Pong responses to previous Pings it sent), it will consider the client unresponsive and close the connection. Should be greater than websocket.ping-interval to be effective.

Values are strings of any format the humantime crate can parse.

`websocket.close-handshake-timeout`

Time the server waits for the client to respond to a graceful connection close. If the client doesn't respond within this timeout, the connection is dropped.

Values are strings of any format the humantime crate can parse.

`websocket.incoming-queue-length`

Maximum number of client messages the server will queue up in case it is not able to process them quickly enough. When the queue length exceeds this value, the server will start disconnecting clients. Note that the limit is per client, not across all clients of a particular database.

Edit On Github