Configuration
Configuration is OpenNVR’s tabbed settings area, reached at Settings in the sidebar (route /settings). It’s a registry of tabs at /settings/:tab, with a breadcrumb showing Configuration / <Tab> / <Sub-panel>.
[!NOTE] Viewing settings requires the
settings.viewpermission; changing them requiressettings.manage. Several panels (WebRTC, Security, Media-Source) are superuser-only and show “Admin only.” to everyone else.

What you can do here
- Switch between tabs from the top bar: General, Security, Webrtc, Camera-Config, Recording, Media-Source, and More Settings.
- Tabs with sub-panels show a left sidebar; tabs without (WebRTC, Camera-Config, Recording) render a single panel.
- Each panel has its own Save button — changes are saved per panel, not globally.
General
The General tab has a left sidebar of sub-panels:
- General — the System panel: Device Name, Timezone, Enable NTP, and NTP Server (e.g.
pool.ntp.org). - Alarm — alarm-related settings.
- RS-232 — serial port settings.
- Live View — live-view display preferences.
- Exceptions — exception/event handling settings.
- User — user-facing preferences.
- POS — point-of-sale text overlay settings.
To rename the appliance or fix its clock, open General → General, edit Device Name / Timezone, toggle Enable NTP and set the NTP Server, then Save.
Security
The Security tab groups the network-hardening panels (all superuser-only):
- Firewall — create allow/deny rules with direction (inbound/outbound), protocol (tcp/udp/any), port range, sources, priority, and enabled state.
- Port Settings — service port mappings (internal/external), HTTPS enabled, redirect HTTP to HTTPS, and TLS certificate issuer/expiry.
- Platform Access — allowed origins and CIDRs, idle timeout, absolute session hours, concurrent session limit, and which roles have MFA required.
- NAT — public IP, STUN/TURN servers, UPnP, and port mappings.
WebRTC
The Webrtc tab is a single panel (superuser-only) for tuning live-view delivery:
- STUN Servers and TURN Servers (URL / username / credential) lists.
- ICE — transport policy (
all/relay), candidate pool size, trickle ICE toggle. - Bandwidth — video/audio max bitrate (kbps), Max FPS, and a resolution cap (width × height).
- Preferred Video/Audio Codecs — ordered lists (top is most preferred).
Adjust these when live view stutters or won’t connect across NAT — add a TURN server, or lower the video max bitrate / resolution cap.
Camera-Config
The Camera-Config tab is a single panel that surfaces multi-vendor camera settings (ONVIF plus vendor drivers). See the dedicated Camera Configuration docs for the read-only device settings it exposes.
Recording
The Recording tab is a single panel with two sections:
- Storage Location — the Recording Path where recordings are written. Leave empty to use the auto-detected default (Docker:
/app/recordings, Local:./recordings). Changing it affects new recordings only; existing files stay where they are. - Retention Policy — Retention Days (0 keeps everything), Protect Flagged Recordings (flagged/bookmarked clips are never auto-deleted), and Minimum Free Space (GB) (when free space drops below this, the oldest recordings are purged; leave empty to disable).
Each section has its own Save Storage Settings / Save Retention Settings button. See Storage & Retention for the full retention model.
Media-Source
The Media-Source tab has two sub-panels (superuser-only):
- Settings — the Media Source Settings panel, grouped into Playback Base (media-server base URL, access token, stream prefix, path mode
id/ip), Publishing / RTSP Proxy (RTSP publish URL, RTSP proxy toggle, FFmpeg binary), Media Server Admin API (base with/v3, admin token, webhook token, recordings path), Playback protocols (Enable HLS / Low-Latency HLS), and Transcoding (codec, bitrate, FPS, scale). - Media Server Manager — manage the embedded media server directly.
See Media Server for how these settings drive the streaming backend.
[!TIP] More Settings (Window Settings, Uplink) holds miscellaneous options. Legacy paths redirect out of Settings — Manage Cameras now lives under Cameras, and Certificates moved to BYOK.
📸 Screenshots to capture
Save to opennvr-site/public/screenshots/ with these exact filenames:
settings-overview.png— the Configuration screen with the top tab bar and a sub-panel sidebar visible (e.g. the General tab).settings-recording.png— the Recording tab showing the Storage Location and Retention Policy sections.settings-webrtc.png— the Webrtc panel showing STUN/TURN, ICE, and Bandwidth sections.settings-media-source.png— the Media-Source → Settings panel showing the grouped sections.