This project provides a lightweight, self-hosted CCTV solution designed for Linux-based single-board computers (SBCs) and standard USB webcams. It offers an affordable, privacy-focused alternative for home monitoring by keeping your video data entirely under your control. Project Philosophy Privacy-First: By storing all footage locally, this system eliminates the need for third-party cloud subscriptions and ensures your data never leaves your network. Cost-Effective: Leverage existing hardware—such as a spare Linux board and a USB webcam—to build a fully functional surveillance system without recurring fees. Minimalist Architecture: The software is optimized to run efficiently on low-power devices, ensuring high performance even on entry-level hardware. Key Features Hardware Agnostic: Highly compatible with a wide range of standard USB webcams. Resource Efficient: Optimized specifically for Linux-based boards (e.g., Raspberry Pi, Orange Pi, or similar SBCs). Data Sovereignty: Full control over your storage path, retention policies, and access methods. Simple Deployment: Designed for quick setup and easy maintenance. Live MJPEG stream with a web dashboard Motion detection with frame differencing Automatic recording with a pre-motion buffer Email alerts with a snapshot picture when motion starts Telegram integration: Automatic video upload after motion is recorded Bot commands: /snapshot, /video <seconds>, /help Night mode low-light enhancement (software CLAHE + brightness/contrast boost) Recordings bulk actions: select all, send to Telegram, download ZIP, delete Storage cleanup by age, total size, and emergency low-disk cleanup systemd autostart ready Licensed under GNU AGPLv3 Python 3.10 or newer OpenCV with V4L2 support (see installation options below) A USB webcam (/dev/video0 by default) Optional: a Telegram bot token for Telegram notifications Optional: SMTP credentials for email alerts Verify OpenCV is available: python3 -c "import cv2; print(cv2.__version__)" ...
First seen: 2026-07-26 17:02
Last seen: 2026-07-27 11:26