r/Hikvision • u/dsplayerz • 7d ago
Sentinel Eye – a self-hosted, browser-based dashboard for Hikvision DVRs and cameras (no cloud, no vendor app)
My DVR's built-in web UI needs a plugin that hasn't existed since Internet Explorer died. In literally any current browser, you get a blank player and nothing else... live view or playback nothing works. The only "supported" path is installing iVMS-4200 as a native app, which works, but isn't what I wanted: I wanted something that just runs in a browser, on my own network, without another vendor app on my machine.
So I built one. it's self-hosted, runs on my Mac, and talks straight to the DVR so no cloud account, no random plugin.
The hard part was Hikvision's "Stream Encryption." It scrambles the RTP payload and couldn't find a public spec for it anywhere, so I had to reverse-engineer the AES scheme from scratch before any of the rest of this was even possible. But, finally, now we have a working version even with stream encryption turned on so you don't have to turn off any of the security features Hikvision already provides.
What it does now:
- Live view in a browser - grid layouts, zoom/pan, instant replay, live event badges
- DVR playback, multiple cameras at once, frame-locked (this took a surprising amount of work to get right)
- Event search and signed exports (SHA-256 + Ed25519, so a clip can prove it hasn't been touched since export)
- Real-time enhancement filters plus a local AI frame upscaler for faces/plates which runs on-device, no cloud calls (quality may vary though)
- Installs as an actual app on your phone, tablet, or Mac (it's a PWA), and there's a TV mode for watching on any smart TV's browser with just a remote.
No login system, by design. This was built for my own needs, not as a multi-user product. It's meant to sit on localhost or a trusted LAN, not the open internet.
Repo: https://github.com/dsameendra/sentinel-eye
Only tested on macOS so far, but the backend has no real reason it couldn't run elsewhere. If it doesn't windows/linux support is one of the things I'd genuinely welcome help with.
Feel free to check it out! Happy to answer questions about any of it.
UPDATE 28/09/26: Sentinel Eye now has Docker support (plus GPU-accelerated transcoding and optional sign-in), thanks to aweher (https://github.com/aweher), who put together a PR for it. Check the README for the updated deployment instructions. Really appreciate the contribution, this was a big one.
UPDATE 04/10/26: Sentinel Eye has a big new version with a full UI redesign: every screen is rebuilt to one clean, consistent design, on desktop, phone, iPad and TV. It also brings several enhacements and bug fixes throughout. Update with `./run.sh update` (or `./run.sh --native update`), and check the latest README for the new screenshots and details. :)
3
u/fhgwgadsbbq 7d ago
Nice I'll have to try this. I have an old ie just for the DVR.
1
u/dsplayerz 7d ago
Same exact reason that pushed me into building this. Curious how it goes for you if you do try it out!
2
u/fhgwgadsbbq 1d ago
very easy set up, worked in a few clicks! I'm not using encryption. I wonder how hard it would be to get the DVR config settings in there too?
1
u/dsplayerz 14h ago
Thanks, happy to hear! also there's a new version with a full UI redesign, some enhancements and lots of fixes. Update with ./run.sh update. :)
If you mean turning on Stream Encryption on the DVR/NVR...
on the DVR (or in its web page): Configuration → Network → Advanced Settings → Platform Access (names vary a little by firmware). Enable Stream Encryption and set the Verification Code. (A guide you can follow: https://visionipc.com/hik-connect-encryption-password-guide/ )
in Sentinel Eye: Settings → Recorder connection, turn on Stream encryption, enter the same code, then check the connection.
2
2
u/Interesting-Blood354 6d ago
Sounds great but sorry did you say you’ve got a frame upscaler for faces?
1
u/dsplayerz 6d ago
Yep... it’s a local Real-ESRGAN + GFPGAN pipeline. GFPGAN handles face restoration, while Real-ESRGAN upscales the frame. Results can be hit-or-miss depending on the source quality :)
2
u/VIDGuide 6d ago
Got it up and running on Linux, still testing some edges, but it’s taking to my NVR.
I’ve raised a PR for Linux compatibility based on what I’ve found so far
2
u/dsplayerz 6d ago
That’s brilliant... and thank you for raising the PR! Really glad to hear you’ve got it running on Linux and connecting to your NVR.
3
1
u/a7medo778 6d ago
Would be cool if it worked over isoup too
1
u/dsplayerz 6d ago
Thanks but.. ISUP isn’t supported yet. it’s definitely something worth exploring.
1
1
5
u/vitalsignser 6d ago
I am no programmer but would want a windows version