Zoneminder is pretty good, all things considered. It was my go-to NVR before I switched to the Unifi ecosystem.
I guess the one drawback (when I was using it) was that it didn't record audio, and that its UI was relatively unpolished. Having said that, setting up motion sensing on the cameras in Zoneminder was far better than a lot of other solutions that I had tried.