Web UI monitoring
The Web UI provides a live view of connected users, active streams, and group changes. Enable it inconfig.yml:
enabled— enable the Web UIuser_ui_enabled— expose the user-facing UI alongside the admin UIcombine_views_stats_streams— merge view counts, stats, and stream data into a single panelkick_secs— number of seconds of inactivity before a user session is ended
System resource tracking
Thesys_usage section of reverse_proxy exposes CPU and memory telemetry so you can see the resource cost of active streams.
Log configuration
Configure logging inconfig.yml under the log key:
log_level
log_level accepts either a plain level or a comma-separated module filter list:
error, warn, info, debug, trace.
sanitize_sensitive_info
When set to true, tuliprox redacts credentials and tokens from log output. Enable this in production to avoid leaking provider URLs or API keys.
log_active_user
When set to true, each stream request is logged with the active user identifier.
Healthcheck endpoint
The--healthcheck flag returns a non-zero exit code when the server is not responding. Use it in Docker health checks:
Notification system
tuliprox can push notifications to Telegram, Discord, Pushover, or any REST endpoint when internal events occur.notify_on events
| Event | Description |
|---|---|
info | General informational messages such as playlist update results |
stats | Periodic stream and usage statistics |
error | Errors during playlist fetching or stream delivery |
watch | Group changes detected between playlist updates |
Telegram
Discord
Pushover
REST
Message templates
Templates are optional. When provided they can be a raw Handlebars string, afile:// path, or an http(s):// URL.
Available template variables:
message— the event message textkind— the event type (info,stats,error,watch)timestamp— ISO-8601 timestampstats— stream statistics object (forstatsevents)watch— group change object (forwatchevents)processing— playlist processing object (forinfoevents)
GeoIP tracking
When thegeoip block is enabled under reverse_proxy, tuliprox resolves the country of each connecting IP from CSV IP-range data. You can schedule automatic database updates with a GeoIpUpdate schedule:
log_active_user is enabled.
Rate limit monitoring
Per-IP rate limiting is configured underreverse_proxy.rate_limit:
429. If provider failover is enabled, 429 from the upstream also triggers failover to the next provider URL.
Database viewers
Use these CLI flags to inspect the internal on-disk databases without starting a full server:| Flag | Database |
|---|---|
--dbx | Xtream data |
--dbm | M3U data |
--dbe | EPG data |
--dbv | Target-ID mapping |
--dbms | Metadata retry status |
storage_dir.