OpenVigil

Self-hosted NVR for IP cameras, with AI that stays in your house.

OpenVigil records every camera continuously on your own disk, streams live to the browser through go2rtc, and runs detection, face recognition, re-identification and natural-language descriptions on your own GPU. No cloud, no subscription, no phone-home. Hikvision first, ONVIF second.

Source on GitHub Install guide Română
git clone https://github.com/sm26449/openvigil.git /opt/openvigil
cd /opt/openvigil
sudo ./install.sh

One script: Docker, the NVIDIA container toolkit if you have a GPU, a .env with your time zone and ports, build, start. Then open http://<server>:8079, create the first account and add cameras.

Records everything

5‑minute MP4 segments per camera, retention by days and free space, motion‑only mode, SHA‑256 chain of custody for evidence.

Live and playback

MSE/WebRTC live with two‑way audio, zoomable timeline, 0.5–8× speed on GPU, exports with boxes, time‑lapse, heatmaps.

Local AI

YOLO11 detection with fine‑tuning on your own frames, InsightFace faces, OSNet re‑ID, plates, Qwen2.5‑VL descriptions, SigLIP semantic search.

Operations

Home/away/night modes with rules, Telegram alerts and daily digest, Web Push, MQTT and webhooks, map view, siren/strobe/talk on supported cameras.

Accounts and safety

Admin and per‑camera viewers, 2FA, revocable sessions, CSRF, strict CSP, audit log; go2rtc never listens on the LAN.

Honest about its origin

Built for one real installation (18 cameras, an RTX 2000 Ada) and published as is. UI in English and Romanian, other languages are a JSON file away. AGPL‑3.0; model licences in NOTICE.md.

Why OpenVigil

Screenshots

Taken on the built-in demo mode (synthetic cameras): no real footage, nobody's house.

Live grid with four demo cameras
Live grid
Playback with the day timeline
Playback and timeline
HD view of one camera
HD view with time-shift
System status page
Status: recording, disk, AI
Live on a phone
Phone: live
Playback on a phone
Phone: playback
More menu on a phone
Phone: more menu

What you need

A Linux box with Docker, disk for recordings (about 1 GB per camera per hour at 4 MP H.265), cameras on a LAN the box can reach, and, for the AI features, an NVIDIA GPU. Without a GPU you still get recording, live view and CPU detection.

Română

OpenVigil e un NVR auto‑găzduit: înregistrează totul local, rulează AI pe placa ta video și nu vorbește cu niciun cloud. Instalarea e o singură comandă; manualul complet, în română, e în docs/ro/manual.md.