Complete Configuration Reference Table (config.yaml)
A single-page lookup reference of all configuration parameters defined in pkg/config/config.go.
1. Master Configuration Parameter Table
| YAML Path | Type | Default Value | Description |
|---|---|---|---|
server.port | integer | 8080 | Primary HTTP / REST / WHEP / HLS web server port |
server.debug | boolean | false | Enable Gin debug logging and verbose telemetry |
server.pprof_port | integer | 0 | Port for Go runtime net/http/pprof (e.g. 6060, 0 disables) |
server.record_retention_days | integer | 0 | Global archive retention in days (0 disables cleanup) |
server.gc_percent | integer | 50 | Go runtime GC target (GOGC, default 50 for tighter memory) |
server.gc_memory_limit_mb | integer | 0 | Go runtime memory ceiling in MB (GOMEMLIMIT, 0 disables) |
server.cors_allowed_origins | []string | [] | List of allowed CORS origin URLs (or ["*"]) |
server.hls.live_segments_in_memory | integer | 3 | Number of live HLS video segments retained in RAM |
server.grpc.address | string | "" | Optional bind address for gRPC FrameService |
server.grpc.port | integer | 50051 | Port for gRPC FrameService (StreamFrames, PushMetadata) |
server.tls.cert_file | string | "" | Path to TLS certificate PEM file |
server.tls.key_file | string | "" | Path to TLS private key PEM file |
server.webrtc.listen_port | integer | 8555 | UDP port for WebRTC media multiplexer (BatchingUDPMuxConn) |
server.webrtc.nat_1_to_1_ips | []string | [] | Public IP addresses for WebRTC ICE candidate mapping |
server.webrtc.ice_servers | []string | [] | List of STUN/TURN server URIs |
server.webrtc.ice_transport_policy | string | "all" | ICE policy ("all" or "relay") |
server.webrtc.turn_username | string | "" | TURN authentication username |
server.webrtc.turn_password | string | "" | TURN authentication password |
auth.secret | string | "" | JWT HMAC-SHA256 signing secret (auto-generated if empty) |
global_tags[].id | string | — | Unique identifier for system tag |
global_tags[].name | string | — | Display name for system tag |
global_tags[].color | string | — | Hex color code (e.g. "#3B82F6") |
cameras[].id | string | — | Unique camera identifier (e.g. "cam-01") |
cameras[].url | string | — | RTSP source URL ("rtsp://user:pass@host:554/live") |
cameras[].record | boolean | true | Enable continuous fMP4 archive recording |
cameras[].retention_days | integer | 0 | Per-camera archive retention override in days |
cameras[].tags | []string | [] | List of associated tag IDs |
cameras[].folder_id | string | "" | Associated folder ID for hierarchy |
cameras[].comment | string | "" | Arbitrary administrative notes |
cameras[].sim_phone | string | "" | Optional cellular SIM phone number |
cameras[].sim_iccid | string | "" | Optional cellular SIM ICCID identifier |
cameras[].lazy_hls | boolean | false | Enable on-demand HLS muxing only when viewers are active |
cameras[].transport | string | "tcp" | RTSP transport protocol ("tcp" or "udp") |
cameras[].token_auth | boolean | false | Require 60-second short-lived stream token for playback |
cameras[].traffic_limit | integer | 0 | Traffic ceiling in bytes for billing control |
events.webhooks[].url | string | — | Destination HTTP endpoint URL |
events.webhooks[].topics | []string | ["*"] | Topic filters (e.g. ["camera.*", "recording_failed"]) |
events.webhooks[].secret | string | "" | Optional HMAC signature secret header |
events.mqtt.enabled | boolean | false | Enable MQTT event publishing |
events.mqtt.broker | string | "" | MQTT broker URI ("tcp://localhost:1883") |
events.mqtt.username | string | "" | MQTT authentication username |
events.mqtt.password | string | "" | MQTT authentication password |
events.mqtt.topic | string | "ruseon/events" | Base MQTT publish topic |