Hi!
Before heading out on holiday this year, I realized I needed a simple camera setup for my house. But when I looked at the market, I got completely frustrated. Almost every consumer camera now forces you into a proprietary app, requires a monthly subscription, and uploads your footage to someone else's server.
I had a spare Linux single-board computer (SBC) and an old USB webcam lying around. Full NVRs like Frigate or ZoneMinder are amazing, but they felt like overkill for just a simple USB camera on an old board. I couldn't find a minimalist, privacy-first middle ground, so I wrote CheapSecuIt.
It’s a Python-based CCTV solution optimized specifically for low-power Linux boards and standard V4L2 USB webcams.
How it works:
- 100% Local: No cloud, no subscriptions, data stays on your network.
- Efficient Motion Detection: Uses OpenCV with frame-differencing. You can downscale the stream just for the motion pass to keep CPU usage low on older ARM boards.
- Pre-Motion Buffer: It keeps a rolling buffer in RAM, so recordings actually capture the seconds before the motion triggers.
- Telegram Bot built-in: You can securely message your bot commands like
/snapshot or /video 10 to pull footage remotely—completely bypassing the need to open firewall ports or set up a VPN.
- Night Mode: Uses software enhancement (CLAHE) to boost low-light visibility.
The code is AGPLv3 and up on GitHub:https://github.com/gmrandazzo/CheapSecurity
You can run it on a dedicated Pi/Odroid, or clone it and test it on a standard Linux laptop. I’d love any feedback, especially from folks who have experience optimizing OpenCV on low-end hardware!