# BackupChecks A backup monitoring and compliance application designed for Managed Service Providers (MSPs) and IT departments. ## Features ### Mail Ingestion & Parsing - Automated email import from Microsoft Graph API (Office 365) - Supports 11 backup software platforms: - Veeam (including SOBR capacity monitoring) - Synology - QNAP - Nakivo - Syncovery - Boxafe - R-Drive - 3CX - NTFS Auditing - And more - Intelligent email parsing extracts backup metadata - Raw EML storage for debugging with configurable retention ### Backup Job Tracking - Dashboard with daily backup job status summaries - Expected vs. actual job runs based on schedules - Missed backup detection - Status tracking: Success, Warning, Error, Missed - Timezone-aware calculations (defaults to Europe/Amsterdam) ### Run Checks & Review Workflow - Manual review interface for backup failures - Mark runs as "reviewed" - Approval workflow for backup email processing - Storage capacity monitoring - Autotask PSA ticket integration ### Override Rules - Exception rules at global or job-level - Matching criteria: status, error message patterns - Validity windows for temporary overrides ### Multi-Customer Management - Organize jobs by customer - Autotask company mapping - Customer-scoped reporting and permissions ### Tickets & Remarks - Internal ticket system for backup issues - Automatic linking to affected job runs - Scope-based ticket resolution - Feedback/feature request board ### Reporting & Analytics - Snapshot-based reporting with configurable periods - Historical success rates and trend analysis - CSV export functionality ### Autotask Integration - Create PSA tickets from failed backup runs - Link internal tickets to Autotask - Deep links back to BackupChecks ### User Management - Role-based access control (admin, viewer, custom roles) - Theme preferences (light/dark/auto) - In-app news/announcements ## Technology Stack **Backend:** - Flask 3.0.3 (Python) - SQLAlchemy with PostgreSQL 16 - Flask-Login for authentication - Gunicorn server **Frontend:** - Jinja2 templates (server-side rendering) - Bootstrap-based responsive UI - JavaScript/AJAX for dynamic interactions **Infrastructure:** - Docker containerized - PostgreSQL database - Adminer for database management ## Project Structure ``` backupchecks/ ├── containers/backupchecks/ │ ├── Dockerfile │ ├── requirements.txt │ └── src/ │ ├── backend/app/ │ │ ├── main.py # Entry point │ │ ├── models.py # Database models │ │ ├── parsers/ # Backup software parsers │ │ ├── integrations/ # Autotask integration │ │ └── main/ # Route handlers │ ├── templates/ # Jinja2 templates │ └── static/ # CSS, JS, assets ├── deploy/ │ └── backupchecks-stack.yml # Docker Compose └── docs/ # Documentation ``` ## Deployment The application runs as a Docker stack in Portainer. ## Configuration Key settings are managed via the web interface under Settings: - Mail import configuration (Microsoft Graph API) - Autotask integration credentials - Timezone settings - User management ## License See [LICENSE](LICENSE) file.