A comprehensive license plate recognition management system that processes webhooks from OpenALPR web servers, manages IP cameras, and provides intelligent alerting capabilities.

- Real-time Processing: Receives and processes license plate webhooks from OpenALPR web servers
- Data Storage: Stores plate numbers, vehicle descriptions, timestamps, and confidence scores
- Image Management: Handles full vehicle images and cropped license plate images
- Statistics: Tracks plate frequency and visit patterns
- Multi-Camera Support: Manage multiple IP cameras with individual configurations
- Manufacturer Support: Compatible with Hikvision and Dahua camera systems
- Live Overlay Updates: Display detected license plates directly on camera video feeds
- Automatic Day/Night Mode: Schedule sunrise/sunset camera mode switching
- Focus Control: Automatic zoom and focus adjustments based on time of day
- Camera Masking: Define detection areas to improve accuracy
- Custom Alert Rules: Set up alerts for specific license plates or patterns
- Multiple Notification Channels: Push notifications, Pushover integration, and webhook forwarding
- Real-time Notifications: Instant alerts when monitored plates are detected
- Visit Prediction: Predict when specific license plates will next appear
- Pattern Recognition: Analyze historical data to identify visiting patterns
- Batch Processing: Handle multiple prediction requests simultaneously
- Model Training: Automatic background model retraining with latest data
- Live Feed: Real-time license plate detection updates
- Search & Filter: Find specific plates by number, date, or camera
- Statistics View: Plate frequency analysis and visit patterns
- System Logs: Monitor application activity and troubleshoot issues
- User Management: Multi-user support
- Camera Configuration: Set up overlay text, day/night schedules, and focus settings
- Alert Configuration: Configure notification preferences and alert rules
- Ignore Lists: Define plates to exclude from processing or alerts
- Webhook Forwarding: Send processed data to external systems
- Two-Factor Authentication: Enhanced security for user accounts
- Data Enrichment: Enhance plate data with additional information sources
- Real-time Updates: Live system status and connection monitoring
- Debug Tools: System diagnostics and scheduled job monitoring
dotnet ./OpenAlprWebhookProcessor.dlldocker run -d \
--name=openalprwebhookprocessor \
--net=bridge \
-v /host/path/:/app/config/ \
-p 3859:80 \
mlapaglia/openalprwebhookprocessor
Available at: mlapaglia/openalprwebhookprocessor
The application requires persistent storage for:
- License plate database
- User settings and configurations
- Machine learning models
- Camera snapshots and images
Mount a volume to /app/config/ to persist data between container restarts.
- .NET 9 SDK
- Node.js 24+ and npm
- Angular CLI:
npm install -g @angular/cli
-
Navigate to the server project directory:
cd OpenAlprWebhookProcessor.Server -
Restore dependencies:
dotnet restore
-
Start the backend server:
dotnet run
The backend will start at
https://localhost:5001
-
Navigate to the client project directory:
cd openalprwebhookprocessor.client -
Install dependencies:
npm install
-
Start the development server:
npm startThe frontend will start at
https://localhost:4200and automatically proxy API requests to the backend.
For the best development experience, run both the backend and frontend simultaneously:
-
Terminal 1 - Start the backend:
cd OpenAlprWebhookProcessor.Server dotnet run -
Terminal 2 - Start the frontend:
cd openalprwebhookprocessor.client npm start
-
Open your browser to
https://localhost:4200
- Backend Tests:
dotnet test(from the solution root) - Frontend Tests:
npm test(from the client directory)
