VibeNVR v1.27.x – Docker-native open-source NVR: ONVIF Edge Motion, WebCodecs Audio, zero cloud dependency
Hi r/docker,
Sharing a project I've been working on: VibeNVR, an open-source NVR (Network Video Recorder) designed to run natively via Docker Compose with zero external cloud dependency.
🔗 https://vibenvr.org | 🐈 MIT | 🔗 https://github.com/spupuz/VibeNVR
Just released v1.27.0 + v1.27.1. Here's what's relevant for Docker users.
Quick Docker setup
git clone https://github.com/spupuz/VibeNVR
cd VibeNVR
cp .env.example .env
docker compose up -d
The stack is backend + frontend + engine, all containerised. Local storage only, no external services required.
What's new in v1.27.0 – Hardware-First Revolution
ONVIF Edge Motion (Zero-CPU Detection) VibeNVR now subscribes to the camera's own ONVIF PullPoint events instead of doing pixel-level motion analysis on the container. The camera's AI/chipset does the work. CPU usage for motion detection on the NVR container drops to near-zero, and Rising-Edge logic cuts motion-event network traffic by ~90%.
Auto-Rebind Lost ONVIF subscriptions auto-repair every 4 minutes — no container restart needed.
High-Fidelity Live Audio (WebCodecs) New audio pipeline using the browser's native WebCodecs API. Audio and video are decoupled — an audio hiccup won't freeze the live stream.
Deep Camera Asset Management Manufacturer, model, firmware, serial and hardware ID pulled from camera via ONVIF and stored in the local DB. Useful for fleet management dashboards.
Advanced PTZ & Intelligent Home Smart 3-stage Home fallback, joystick-like mobile controls, auto-hiding of unsupported PTZ controls.
Security hardening RTSP/ONVIF credentials auto-redacted from container logs. Privacy masks enforce transcoding. RBAC audit passed (26/26 tests).
What's new in v1.27.1 – Self-Healing & Stability
Self-Healing Motion Engine
On container startup, an automatic DB migration corrects legacy Off motion states to Always, fixing a silent regression where cameras configured for motion recording ignored all events after upgrading from v1.26.x.
ONVIF Session Hardening 5-second async cooldown on subscription re-binding. Eliminates "Subscription Limit Full" errors on Tapo and Reolink when the container restarts faster than the camera firmware can clean up stale sessions.
Fail-Safe Sync Engine now skips invalid motion states instead of halting, ensuring the recording pipeline stays alive through transient DB issues.
Significant effort went into making this truly container-friendly — clean startup/shutdown, proper signal handling, and an upgrade path that self-heals without manual intervention. Would love feedback from Docker power users.
🔗 Website: https://vibenvr.org 🔗 Release: https://github.com/spupuz/VibeNVR/releases/tag/v1.27.1