Skip to content

Configuration

Jadarit reads a single config.toml. Every setting has a default, so a missing file or a missing key still works, and the first run writes a fully commented file you can edit.

InstallPath
Debian package/etc/jadarit/config.toml
Containermounted into the data volume
Run from a directoryconfig.toml beside the binary

Set MS_CONFIG to override the path. MS_API_TOKEN overrides the API token from the environment, so a secret need never be written to the file.

Changing settings through the dashboard or PUT /api/v1/settings writes this file. Changes take effect on restart, and the API says so rather than pretending they applied live.

Where the server listens and where it keeps its data.

KeyTypeDefaultDescription
http_addrString"0.0.0.0:9001"HTTP bind address for API + dashboard + HLS.
rtmp_portu161935RTMP ingest port.
data_dirString"data"Root of vod/live/ads data directories.
api_tokenString""Bearer token for the control API. Empty = auth disabled. The MS_API_TOKEN environment variable overrides this.

Built-in HTTPS. Most deployments put a reverse proxy or tunnel in front instead.

KeyTypeDefaultDescription
enabledboolfalseServe HTTPS on https_addr in addition to HTTP.
https_addrString"0.0.0.0:9443"Address to serve HTTPS on when enabled is true.
cert_pathString""PEM paths. Both empty + enabled → a self-signed certificate is generated under <data_dir>/tls/ on startup.
key_pathString""Private key matching cert_path. Leave both empty to self-sign.

Segment length and how much of the live window is kept.

KeyTypeDefaultDescription
segment_secsf642.0Target segment duration (seconds). Cuts happen at the first keyframe past this mark.
window_segmentsusize20Segments kept in the live playlist window.

How uploaded VOD and ad assets are normalised so they play out cleanly.

KeyTypeDefaultDescription
presetString"veryfast"x264 preset for offline mezzanine conditioning.
crfu820Quality target. Lower is better and larger; 18 to 23 is the useful range.
maxrate_kbpsu326000Ceiling on the conditioned video bitrate.
audio_bitrate_kbpsu32160Bitrate for the conditioned audio track.

WebRTC networking. Set these to serve viewers beyond the local network.

KeyTypeDefaultDescription
public_ipString""Public IP advertised as an additional ICE candidate. Set this (plus a router port-forward for the UDP range) to serve viewers outside the LAN. Empty = LAN-only.
udp_port_minu160UDP port range for WebRTC sessions. 0/0 = ephemeral (LAN only); a fixed range is what you forward on the router.
udp_port_maxu160Top of that range. Forward min..=max on the router.
bwe_initial_mbpsu3210Bandwidth-estimation budget in Mbps. The pacer drains at current × 1.1.
bwe_current_mbpsu328Working budget the pacer drains against. Keep it above the real media bitrate or the pacer starves the stream.
send_buffer_videousize4096Packet ring shared by pacing queue and NACK history.

Defaults for server-side ad insertion.

KeyTypeDefaultDescription
default_break_secsf6410.0Default ad-break length when the API request omits duration_secs.

Log level, destination, rotation, and the in-memory buffer the dashboard reads.

KeyTypeDefaultDescription
levelString"info"Level filter, e.g. info, debug, or per-module info,ms_egress=debug. RUST_LOG overrides this when set.
directoryString"data/logs"Where log and crash files go. Relative paths are relative to the working directory; empty disables file logging (stdout only).
jsonboolfalseWrite JSON lines instead of human-readable text. Useful when shipping logs into a collector; harder to read by eye.
retention_daysu6414Delete rotated log files older than this many days. 0 keeps them all.
ring_capacityusize2000How many recent events to keep in memory for the dashboard viewer.

Licence renewal. Empty disables the check entirely, which is what an offline install wants.

KeyTypeDefaultDescription
renew_urlString""Where to fetch a renewed licence. Empty disables the check entirely, which is what an offline or perpetual install wants: the server then never contacts anything.