CasaOS is an open-source personal cloud system with a home-focused web UI for running Docker apps and managing files on your own hardware.
spupuz/VibeNVR
Self-hosted, Docker-based video surveillance (NVR) for IP cameras with local recording, motion detection, AI object detection and an event timeline.
Open-source alternative to:Synology Surveillance Station
Blue Iris
- Stars
- 416
- Forks
- 32
- Open issues
- 1
- Last commit
- yesterday
What is it?
VibeNVR is a containerized network video recorder for managing IP cameras. It ingests RTSP streams through a custom Python engine built on PyAV and FFmpeg, records continuously or on motion, and presents recordings and snapshots in a unified event timeline with filters for camera, event type, detected objects, and date.
Motion detection can use OpenCV, ONVIF edge detection on the camera, Hikvision ISAPI classification, or TFLite-based AI models such as YOLOv8 and MobileNet SSD v2, with optional Google Coral Edge TPU acceleration. The web interface is built with React and supports live view over WebCodecs, MSE, or MJPEG, plus PTZ control, camera discovery, and MQTT integration with Home Assistant.
Storage can be local or on SFTP, with FIFO cleanup, quotas, and tiered archival. Access control uses JWT, optional SSO and 2FA, and per-camera VIEW, REPLAY, and CONTROL permissions. The stack runs on PostgreSQL or SQLite and ships with Docker Compose files for amd64 and arm64.
Key features
- 01Continuous and motion-triggered recording of RTSP IP cameras.
- 02Motion detection via OpenCV, ONVIF edge, Hikvision ISAPI, or AI models like YOLOv8.
- 03Event timeline with filters for camera, event type, object, and date.
- 04Live view over WebCodecs, MSE, or MJPEG with PTZ control.
- 05Local or SFTP storage with automatic cleanup, quotas, and archival.
- 06Per-camera RBAC permissions, JWT login, SSO, and 2FA.
- 07MQTT service with Home Assistant discovery.
Use cases
- Running a home security system on a Raspberry Pi or mini PC with local recordings.
- Replacing a cloud camera subscription with self-hosted storage.
- Monitoring multiple sites from one master instance via federation.
- Integrating camera motion and object events into Home Assistant automations.
Quick start
- 1
Install Docker and Docker Compose V2
- 2
Clone the repository
git clone https://github.com/spupuz/VibeNVR.git - 3
Enter the project directory and set secure values in .env
cd VibeNVR - 4
Start the service with the production compose file
docker compose -f docker-compose.prod.yml up -d
Things to know
- Requires Docker and Docker Compose, so setup depends on container know-how.
- Labelled a vibe coding project, so expect stability caveats and check release notes before updating.
- Hardware acceleration and AI detection features depend on the host hardware.
Topics
FAQ
- What is VibeNVR?
- Self-hosted, Docker-based video surveillance (NVR) for IP cameras with local recording, motion detection, AI object detection and an event timeline. VibeNVR is a containerized network video recorder for managing IP cameras. It ingests RTSP streams through a custom Python engine built on PyAV and FFmpeg, records continuously or on motion, and presents recordings and snapshots in a unified event timeline with filters for camera, event type, detected objects, and date.
- Is VibeNVR free to use? What license does it have?
- VibeNVR is open source under the MIT license. Check the license terms before using it in commercial products.
- Is VibeNVR still maintained?
- Actively maintained. The last commit to VibeNVR was on Oct 19, 2026.
- What can I use VibeNVR for?
- Running a home security system on a Raspberry Pi or mini PC with local recordings. Replacing a cloud camera subscription with self-hosted storage. Monitoring multiple sites from one master instance via federation. Integrating camera motion and object events into Home Assistant automations.
- How do I install VibeNVR?
- Install Docker and Docker Compose V2 Clone the repository: git clone https://github.com/spupuz/VibeNVR.git Enter the project directory and set secure values in .env: cd VibeNVR Start the service with the production compose file: docker compose -f docker-compose.prod.yml up -d
- Where can I get VibeNVR?
- The source code and installation instructions are on GitHub: https://github.com/spupuz/VibeNVR
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A self-hosted video compressor with a web UI that shrinks clips to a target file size using GPU or CPU encoding via FFmpeg.
Self-hosted web page change monitor that alerts you via Discord, Email, Slack, Telegram, webhooks and more when a page changes.
A self-hosted gym and body-weight tracker for planning routines, logging sets, and keeping workout data on your own server.
A self-hosted, privacy-focused AI note-taking app for quickly capturing fleeting thoughts as Markdown cards with natural-language search.
Self-hosted web group chat with rooms, direct messages, search, file attachments and bot API, deployable as a single Docker image.