India NVR Monitor
India NVR Monitor – Multi-Location Centralized CCTV Dashboard
Managing hundreds of CCTV cameras across multiple factories, offices, warehouses, showrooms, and remote locations can quickly become difficult.
India NVR Monitor is a professional Flask-based centralized CCTV monitoring system designed to monitor Hikvision NVRs and IP cameras across multiple locations in India from a single dashboard.
Instead of checking each NVR or camera individually, administrators can monitor the entire CCTV infrastructure through one centralized w
eb application.
What Is India NVR Monitor?
India NVR Monitor provides a structured hierarchy:
Location → NVR → Camera
For example:
India
│
├── Bikaner
│ ├── Karni
│ │ ├── NVR-01
│ │ │ ├── Camera 01
│ │ │ ├── Camera 02
│ │ │ └── Camera 03
│ │ └── NVR-02
│ │
│ ├── Bichhwal
│ ├── HAPL
│ ├── ASRS
│ └── FROZEN
│
└── Mumbai
├── Malad Showroom
└── Malad Factory
This makes it possible for management and IT teams to quickly understand the health of the complete CCTV network.
Key Features
1. Multi-Location CCTV Monitoring
Monitor CCTV infrastructure from multiple cities and sites through a single application.
Locations can contain multiple NVRs, and each NVR can contain multiple cameras.
There is no need to modify the application code when adding a new location or NVR.
2. Hikvision NVR Integration
The system uses Hikvision ISAPI to communicate with compatible NVRs.
Administrators can:
Add NVRs
Test NVR connectivity
Discover cameras automatically
Retrieve camera information
Monitor NVR status
Monitor connected cameras
This significantly reduces manual camera configuration.
3. NVR-First Monitoring Logic
One of the important design decisions is the NVR-first monitoring architecture.
Instead of attempting an RTSP connection to every camera when an NVR itself is unavailable, the system first checks the NVR.
For example:
NVR Online
│
├── Camera 01 → ONLINE
├── Camera 02 → ONLINE
├── Camera 03 → OFFLINE
└── Camera 04 → ONLINE
If the NVR goes offline:
NVR Offline
│
├── Camera 01 → NVR_OFFLINE
├── Camera 02 → NVR_OFFLINE
├── Camera 03 → NVR_OFFLINE
└── Camera 04 → NVR_OFFLINE
This prevents unnecessary RTSP connection attempts and makes the monitoring results much more meaningful.
4. RTSP Online / Offline Detection
Individual cameras are monitored using RTSP connectivity.
The system can identify situations such as:
Camera online
Camera offline
NVR offline
Camera recovered
Monitoring errors
This allows the IT team to identify whether the problem is with an individual camera or the NVR/network infrastructure.
5. Last Known Good Snapshot
The application can capture camera snapshots using OpenCV.
When a camera becomes temporarily unavailable, the system can retain the last known good frame instead of leaving the dashboard completely blank.
Snapshots are stored under:
static/snapshots/
This provides useful visual context when reviewing camera status.
Email Alerts With Anti-Spam Protection
The monitoring system can automatically send email alerts when cameras or NVRs remain offline beyond a configured threshold.
Example:
CAMERA OFFLINE
Location: Karni
NVR: NVR-01
Camera: Camera 07
Status: OFFLINE
Time: 10:42 AM
When the device becomes available again:
CAMERA RECOVERED
Location: Karni
NVR: NVR-01
Camera: Camera 07
Status: ONLINE
Time: 11:03 AM
Anti-spam logic prevents the system from sending repeated emails every few seconds for the same failure.
Executive Dashboard
The system provides a centralized dashboard with important CCTV infrastructure KPIs.
Management can quickly see:
Total locations
Total NVRs
Total cameras
Online cameras
Offline cameras
NVR offline count
Alert statistics
Problem locations
Monitoring events
Charts and KPI cards provide a quick overview without requiring the user to inspect every NVR individually.
Background Monitoring
Monitoring runs in the background using Python's ThreadPoolExecutor.
This allows multiple NVRs and cameras to be monitored concurrently instead of checking every device sequentially.
The architecture can therefore be scaled for larger CCTV installations by adjusting the worker configuration.
User Roles
The application supports different user access levels.
Admin
Administrators can:
Manage locations
Add/edit NVRs
Discover cameras
Configure monitoring
Configure email settings
View reports
Manage system configuration
Viewer
Viewers can access monitoring information without receiving administrative configuration privileges.
Passwords are stored using secure password hashing rather than plain-text authentication.
Automatic Audit Excel Reports
The system also maintains daily audit logs in Excel format.
Example:
audit/
└── 2026-09/
├── 2026-09-05.xlsx
├── 2026-09-06.xlsx
└── 2026-09-07.xlsx
Each daily workbook contains:
Summary
Alerts
Events
Cameras
NVRs
Alerts and events are appended as they occur, while camera and NVR status information can be refreshed during monitoring cycles.
Reports can be downloaded directly from the Reports section by selecting:
Year → Month → Day
This provides an audit trail that can be useful for IT teams, security departments, and management reviews.
Configuration
The system currently uses JSON-based configuration.
NVRall.json
Contains the CCTV hierarchy:
Locations
↓
NVRs
↓
Cameras
Administrators can manage this information through the web interface.
config.json
Contains settings such as:
SMTP configuration
Monitoring intervals
Offline thresholds
Email recipients
Application configuration
Environment variables can also be used for important settings:
NVR_SECRET_KEY
NVR_HOST
NVR_PORT
NVR_DEBUG
For production deployments, sensitive credentials and secret keys should be protected appropriately.
Quick Start – Windows
Clone or copy the project and create a Python virtual environment:
cd india_nvr_monitor
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python app.py
Then open:
http://localhost:5000
Linux
cd india_nvr_monitor
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 app.py
For Excel audit reports:
pip install openpyxl
First-Time Setup
The typical deployment workflow is:
Step 1: Login as administrator.
Step 2: Create the required locations.
Step 3: Add NVRs under each location.
Step 4: Enter the NVR IP address and credentials.
Step 5: Use Test Connection.
Step 6: Select Discover Cameras.
Step 7: The discovered cameras become available for monitoring.
Step 8: Configure SMTP and alert recipients.
Step 9: Allow the background monitoring service to run.
Step 10: Monitor the complete CCTV infrastructure from the dashboard.
Example Deployment
A company with multiple factories could deploy the system like this:
Central CCTV Monitoring Server
│
├── Bikaner
│ ├── Karni
│ ├── Bichhwal
│ ├── HAPL
│ ├── ASRS
│ └── FROZEN
│
└── Mumbai
├── Malad Showroom
└── Malad Factory
Each site can have one or more NVRs, while every NVR can contain multiple IP cameras.
The monitoring team gets a single centralized view instead of logging into individual NVRs.
Technology Stack
The project is built using:
Python
Flask
Hikvision ISAPI
RTSP
OpenCV
ThreadPoolExecutor
Bootstrap 5
Chart.js
Flask-Login
JSON configuration
OpenPyXL
SMTP email alerts
The application has been designed with a modular architecture:
app/
├── config_manager.py
├── nvr_manager.py
├── camera_monitor.py
├── email_manager.py
├── monitoring.py
├── history.py
├── auth.py
├── routes.py
└── utils.py
Each module handles a specific responsibility, making the application easier to maintain and extend.
Production Deployment
For a production environment, the following practices are recommended:
Change the default administrator password
Change the Flask
SECRET_KEYProtect NVR credentials
Use environment variables for sensitive configuration
Run behind a reverse proxy such as Nginx
Use HTTPS when the application is accessed remotely
Ensure snapshot directories have appropriate permissions
Configure regular backups
Consider SQLite or PostgreSQL for larger deployments
Increase monitoring workers according to the number of devices
The initial JSON configuration makes the system easy to deploy, while the architecture allows migration to a database as the installation grows.
Acceptance Testing
A typical deployment can be validated using the following checklist:
Add a location
Add an NVR
Test NVR connection
Discover cameras
Confirm camera status
Disconnect a camera
Verify OFFLINE detection
Verify email alert
Reconnect the camera
Verify RECOVERED email
Disconnect the NVR
Confirm all cameras become
NVR_OFFLINEAdd another location/NVR
Disable an NVR
Confirm monitoring stops for that NVR
Verify daily Excel audit reports
Who Can Use It?
India NVR Monitor can be useful for organizations managing CCTV infrastructure across:
Manufacturing plants
Warehouses
Corporate offices
Retail stores
Showrooms
Educational campuses
Hotels
Logistics facilities
Multiple branch offices
Industrial sites
Large residential/commercial properties
It is particularly useful where a centralized IT or security team needs visibility into CCTV infrastructure deployed across different cities.
Future Expansion
The current architecture can be extended further with features such as:
SQLite/PostgreSQL database
User and permission management
Mobile-responsive monitoring
WhatsApp/Telegram alerts
SMS alerts
Camera downtime analytics
Monthly uptime reports
NVR storage/health monitoring
Disk-space monitoring
Camera-wise uptime percentage
Location-wise SLA reports
Automatic PDF reports
Multi-server monitoring
Cloud dashboard
Remote troubleshooting tools
AI-based camera health analytics
Conclusion
India NVR Monitor is designed to solve a common problem in large CCTV deployments: how to monitor multiple NVRs and hundreds of cameras from different locations through one centralized system.
With its multi-location hierarchy, Hikvision integration, NVR-first monitoring logic, RTSP detection, snapshot management, email alerts, background workers, executive dashboard, role-based access, and automated Excel audit reports, it provides a practical foundation for centralized CCTV infrastructure monitoring.
For organizations operating CCTV systems across multiple sites in India, centralized monitoring can reduce manual checking, improve response time, and provide a clear historical record of CCTV availability.
India NVR Monitor — One dashboard. Multiple locations. Complete CCTV visibility.
License
Proprietary — for the customer project only.
Subscribe Us on YouTube: CCTV Networking Technical Support

Post a Comment
0 Comments
Thanks for Comment. Please directly email us on nitinplus@gmail.com