Environment Variables & Runtime Flags Reference
All YAML configuration properties can be overridden dynamically using environment variables with the RUSEON_ prefix.
1. RUSEON Core Environment Variables Matrix
| Environment Variable | Target YAML Key | Default | Description |
|---|---|---|---|
RUSEON_SERVER_HOST | server.host | "0.0.0.0" | Network interface to bind |
RUSEON_SERVER_PORT | server.port | 8080 | Main HTTP and WHEP listener port |
RUSEON_SERVER_BASE_PATH | server.base_path | "" | Optional URL subpath prefix |
RUSEON_AUTH_ENABLED | auth.enabled | true | Master switch for JWT authentication |
RUSEON_AUTH_JWT_SECRET | auth.jwt_secret | "" | 256-bit HMAC secret (min 32 characters) |
RUSEON_AUTH_TOKEN_EXPIRY | auth.token_expiry | "24h" | Access token lifetime duration |
RUSEON_WEBRTC_PUBLIC_IP | webrtc.public_ip | "" | External public IPv4/IPv6 for WebRTC SDP |
RUSEON_RECORDING_ENABLED | recording.enabled | true | Master toggle for fMP4 video recording |
RUSEON_RECORDING_STORAGE_PATH | recording.storage_path | "./data/recordings" | Filesystem directory for video files |
RUSEON_RECORDING_RETENTION_DAYS | recording.retention_days | 14 | Global video archive retention in days |
RUSEON_RECORDING_IO_ENGINE | recording.io_engine | "linux_direct" | Linux direct I/O sliding window engine |
RUSEON_LOGGING_LEVEL | logging.level | "info" | Log verbosity (debug, info, warn, error) |
RUSEON_LOGGING_FORMAT | logging.format | "json" | Log output format (json or console) |
2. Go Runtime Environment Variables
Configure the underlying Go runtime for high-throughput containerized environments:
| Variable | Recommended Value | Purpose |
|---|---|---|
GOMEMLIMIT | 90% of Container RAM (e.g. 1800MiB) | Sets a soft memory ceiling for the Go GC to prevent OOM kills |
GOMAXPROCS | Container CPU quota | Restricts CPU thread pools to assigned container cores |
GODEBUG | madvdontneed=1 | Instructs the Go runtime to release freed memory back to OS immediately |