If you want a really simple and cheap local storage camera, check out Wyze[0]. By "simple" I mean actually simple for non-techies. It’s one of the very few consumer oriented options with support for local SD storage.
By default it uploads short clips of motion to “the cloud” and requires an app + wifi for setup, but you can disable clip uploading after it’s setup.
If you don’t trust it even with cloud uploading disabled, you can just deprive it of internet access once it’s setup. (Block the device on your network, etc). It’ll keep writing video to the SD card while offline. Though with the fully offline approach you'll need to physically take out the SD card to access the video instead of using their app.
There's certainly better local storage options out there. But for local storage with a single camera it’s the easiest and cheapest setup I know.
Looking at their assorted instructions I see some pre-canned methods that assume a specific OS. I can't find detailed instructions for people that already have Node, FFmpeg and MariaDB installed. Is that on a forum?
How have you found Shinobi versus Zoneminder? I've been using ZoneMinder for years. It's a bit clunky but once it's set up it works fairly well, but I'd be open to switching to something better.
I am using Frigate. Simple, open source project. It streams the cameras and can do object and motion detection and only record for specific events (like motion). It allows me to set how long to keep the recordings. For any additional functionality, I have it integrated with my home assistant.
Reolink cameras are pretty affordable, can be accessed with ONVIF, and you can just put them on a VLAN/Firewall that has no internet access if you're afraid that it's phoning home.
I have a Synology NAS and their free security camera software is pretty easy to set-up and use with ONVIF cameras.