OptiVue is a lightweight, self-hosted camera management system built with Python and Flask. It handles live viewing, continuous recording, motion detection, and snapshot capture through a clean browser-based interface -- no cloud, no subscriptions, no bloat.
Designed to run on low-powered hardware. Tested on a Raspberry Pi 3B+.
| Feature | Description |
|---|---|
| Live view | Multi-camera grid, accessible from any browser on your network |
| Recording | Continuous or scheduled recording, configurable per camera |
| Motion detection | Trigger clips and snapshots on movement |
| Photo capture | Periodic or event-driven snapshots with timestamps |
| Recordings browser | Review clips and snapshots, filterable by date and time |
| Lightweight | Minimal dependencies, runs comfortably on older hardware |
| Web config | Camera and system settings managed through the UI |
git clone https://github.com/syntaxerror019/optivue.git
cd optivue
pip install -r requirements.txt
cp config.example.yaml config.yamlCreate a .env file in the root directory (same directory as main.py)
Put the following contents into the .env file, replacing the USERNAME and PASSWORD
These will be the credentials asked for upon opening some pages on the web interface.
USERNAME=your_username
PASSWORD=your_secure_passwordNext you need to configure everything to your specific environment.
Edit config.yaml with your camera details, then:
python main.pyOpen http://localhost:5000 in your browser.
See the Quick Start wiki page for the full setup guide, including how to run OptiVue as a background service.
- Python 3.9+
- OpenCV (Learn to install quickly on RPi)
- USB camera(s) connected physically
Full documentation is in the Wiki:
OptiVue is built to be hardware-agnostic.
| Hardware | Status |
|---|---|
| Raspberry Pi 3B+ | Tested, working |
| Raspberry Pi 4 | Expected to work |
| Any Linux x86_64 machine | Tested, working |
- Live multi-camera view
- Continuous recording
- Motion detection
- Snapshot capture
- Recordings browser with date/time filtering
- Push alerts (email / webhook)
- Per-camera motion sensitivity controls
- Mobile-optimised UI
Issues and pull requests are welcome. If you find a bug or want to request a feature, open an issue and describe what you're seeing or what you need.