ZoneMinder is Free as in Freedom as well as price. Blue Iris is neither. To me, the Freedom aspect is much more important than the price.
But I find both of the above to be quite “heavy”, requiring databases, web server, etc. So instead, I started using Motion which is much “lighter” as it is headless (config only involves editing a text file). I have it running on an ODROID-XU4.
For cameras, I can highly recommend Xiaomi Xiaofang 1S, which are available on AliExpress for about $20 each, shipped. They are quite nice little 1080P IP cameras. But what makes them really interesting, is that some clever people have hacked the firmware to open them up.
So I just point Motion at the RTSP stream on the camera. That does the motion detection in software on the ODROID-XU4 (as well as saving of video, or pictures if you prefer) to a folder on the ODROID which is synced to whatever devices I want (phones of family members) with Syncthing. The videos are available within moments, usually.
In addition, you can set Motion to execute scripts upon events. I just set this up to update Presence in OpenHAB via MQTT. But you could do whatever you want. Next I will set it to trigger alerts, for when we are not home.