this post was submitted on 21 May 2026
32 points (100.0% liked)

Selfhosted

56957 readers
646 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

Hi all! i finally come around publishing a small side project i am running at my home for the last few years. This past month i have revamped it by rewriting the C++ backend and improving the web UI (single page HTML+CSS+AlpineJS) for a broader public.

LazyNVR is a different take on hosting webcams and centralizing access to them. Instead of working on the cameras feed, which is CPU/GPU heavy and doesn't scale much, it relies on cameras on-board capabilities to detect motion and upload recorded videos to your own server.

If you own IP cameras from brands like Dahua, Reolink and many others, you can leverage their on board motion detection capabilities and off-load your server computational power using LazyNVR.

I have some 15 cameras and tools like Frigate or MotionEye just kill my server CPU, but all my cameras can detect motions and automatically record a video and upload it to my server using different protocols (like FTP, sftp, and such). So LazyNVR was born.

The server is written in C++ and basically detect incoming videos, recode (without re-encoding) them to an MP4 web streammable format, and store them well sorted. It will also keep your incoming folders clean and purge stored videos when they are too old. The server will also fetch and refresh still live images from the cameras.

The client is a WEB GUI, actually a single HTML file with CSS and some AlpineJS, which will show the still live images and the list of all the recorded videos letting you download or view them directly.

I am running over 15 cameras from my RaspPi with basically 0% CPU overhead.

I have published LazyNVR on Codeberg (here https://codeberg.org/LazyNVR/lazynvr-sources) because well, i think it's better than GitHub. And there is also a pretty lazy web site on https://www.lazynvr.it/ (which mostly redirect to Codeberg).

Currently there are docker images for AMD64 and ARM64, but it's pretty easy to compile directly, with the provided instructions in the Codeberg Wiki.

Please, feel free to try it!

Mandatory AI disclaimer: i don't use AI for coding. Zero code (C++ or Javscript) has been written by or with AI support in this project. I have used AI extensively for the CSS stuff that i hate, but reviewed and mostly edited it anyway. I have also used AI for research and to write the dockerfile faster, since i am no docker expert. I have personally written the dockerfile anyway, and personally tested as well. The logo has been created with AI, probably it shows.

top 5 comments
sorted by: hot top controversial new old
[–] irmadlad@lemmy.world 7 points 42 minutes ago

Mandatory AI disclaimer

At least you are upfront about it, and I certainly do appreciate the honesty.

[–] lka1988@lemmy.dbzer0.com 1 points 41 seconds ago

Mandatory AI disclaimer: i don’t use AI for coding. Zero code (C++ or Javscript) has been written by or with AI support in this project. I have used AI extensively for the CSS stuff that i hate, but reviewed and mostly edited it anyway. I have also used AI for research and to write the dockerfile faster, since i am no docker expert. I have personally written the dockerfile anyway, and personally tested as well. The logo has been created with AI, probably it shows.

This. I really appreciate this. It shows that you're using it as a tool (which is where this entire AI train should have stopped) and not a "talent substitute" (like so many others).

[–] DevoidWisdom@sh.itjust.works 3 points 26 minutes ago* (last edited 23 minutes ago)

Omg! This might just be the thing I didnt know I needed.

Ya. Good job on the Ai disclosure.

*edit. I'll be installing this later today after reading the github.

[–] ReedReads@lemmy.zip 1 points 30 minutes ago

This is a great project. Read the docs. You mention Authelia a couple of times as a viable auth method. It would be nice if you gave an example of, say, a Traefik + Authelia config with LazyNVR (I’m assuming you don’t support Authelia’s OIDC implementation).

I’m definitely going to try this out. Thanks for sharing!

[–] gingerman@piefed.ca 1 points 39 minutes ago

This looks like a great fit for my setup. I'll be testing it out over the weekend