Configuration reference

Runtime settings live in the settings table and are edited on the Settings page (/settings). Every key has a default; values are stored as strings and read back as typed values with a safe fallback, so a bad value never crashes a queue.

Servers

Key Default Type Purpose
server_id (empty) int Pin every speed test to one Ookla server.
preferred_servers (empty) int list Prefer these server IDs when selecting.
blocked_servers (empty) int list Exclude these server IDs from selection.

Dashboard & retention

Key Default Type Purpose
dashboard_points 500 int Points plotted on the history charts.
retention_days 365 int Measurements older than this are pruned daily at 03:00.

Health thresholds

Key Default Type Purpose
threshold_mode auto enum auto | absolute | off. See Health.
threshold_ratio 0.7 float Auto-mode breach factor (speed < ratio×median; ping > median/ratio).
threshold_download 0 float Absolute-mode download floor (Mbps). 0 = unset.
threshold_upload 0 float Absolute-mode upload floor (Mbps). 0 = unset.
threshold_ping 0 float Absolute-mode ping ceiling (ms). 0 = unset.

Ping

Key Default Type Purpose
ping_target 1.1.1.1 string Global ping host.
ping_port 443 int Global ping TCP port.
ping_duration_seconds 10 int How long a ping run samples. Longer = stabler.

SLA

Key Default Type Purpose
promised_download_mbps 0 float Your plan’s download rate, for SLA %. 0 = unset.
promised_upload_mbps 0 float Your plan’s upload rate, for SLA %. 0 = unset.

Notifications

Key Default Type Purpose
breach_notify_streak 1 int Consecutive breaches before a breach alert fires. Clamped ≥ 1.
webhook_url (empty) string Webhook endpoint. Blank disables the channel.
webhook_template (empty) string Custom EEx JSON body. Blank = built-in default.

ntfy is wired through application env, not these keys. See Notifications.