I've been using Shinobi in docker (running in a Trunas VM) with 6 1080p cameras. It supports just about any IP camera, pretty low on resources and free. You can pair it with a self hosted VPN and use that to view the cameras on your local network without exposing them to the internet.