A comprehensive website monitoring framework with both automated daily checks and a powerful web interface. Monitor the health, security, performance, and compliance of your websites with 53+ different checks organized into logical categories.
Run the local web interface for immediate testing:
python api.py
Then visit http://localhost:8000
for the interactive web interface.
Run with Docker for easy deployment:
docker run -p 8000:8000 fabriziosalmi/websites-monitor
Use the automated daily monitoring by configuring config.yaml
and enabling GitHub Actions.
- Interactive HTML interface for real-time website analysis
- Category-based check selection for easier management
- Mobile-responsive design
- Real-time results display
- No setup required - just run and test
- Daily automated checks via GitHub Actions
- Configurable scheduling and reporting
- Automatic markdown report generation
- GitHub integration with commit updates
Organized into 7 logical categories:
- SSL Certificate validation
- SSL Cipher Strength analysis
- Security Headers assessment
- HSTS (HTTP Strict Transport Security)
- XSS Protection verification
- CORS Headers analysis
- Mixed Content detection
- Subresource Integrity check
- Rate Limiting detection
- Data Leakage prevention
- PageSpeed Insights score
- Website Load Time measurement
- Server Response Time analysis
- Brotli Compression detection
- Asset Minification verification
- CDN Detection
- Redirect Chains analysis
- Redirects optimization
- Sitemap validation
- Robots.txt verification
- Open Graph Protocol compliance
- Alt Tags for images
- Semantic Markup analysis
- URL Canonicalization
- Favicon presence
- Broken Links detection
- External Links analysis
- Domain Expiration monitoring
- DNSSEC validation
- DNS Blacklist checking
- Domain Breach detection
- Domain Blacklists verification
- Subdomain Enumeration
- Email Domain validation
- Cookie Policy compliance
- Cookie Flags verification
- Cookie Duration analysis
- Cookie SameSite attributes
- Ad & Tracking detection
- FLoC (Federated Learning of Cohorts) detection
- Privacy Exposure assessment
- WHOIS Protection verification
- Third-Party Requests monitoring
- Third-Party Resources analysis
- Accessibility compliance
- Mobile Friendly testing
- AMP Compatibility
- Internationalization support
- Browser Compatibility
- Content-Type Headers validation
- CMS Detection
- Client-Side Rendering analysis
- Deprecated Libraries detection
- Web UI: Interactive browser-based interface
- API: RESTful endpoints for integration
- CLI: Command-line interface for automation
- GitHub Actions: Automated daily monitoring
- Swagger UI at
/docs
for interactive API testing - ReDoc documentation at
/redoc
for detailed API reference - Comprehensive API endpoints for all monitoring functions
- Docker support for easy deployment
-
Quick Start:
python api.py
Open
http://localhost:8000
in your browser. -
Using the Interface:
- Enter a website URL in the input field
- Select check categories you want to run
- Click "Run Checks" to analyze the website
- View real-time results with detailed explanations
-
Categories Available:
- Toggle entire categories on/off for easier management
- Each category contains multiple related checks
- Mobile-responsive interface works on all devices
-
Run with Docker:
docker run -p 8000:8000 fabriziosalmi/websites-monitor
-
Build from Source:
docker build -t websites-monitor . docker run -p 8000:8000 websites-monitor
-
Fork This Repository: Start by forking this repository to your GitHub account.
-
Configure Websites:
- Edit the
config.yaml
file - Add the websites you want to monitor:
websites: - audiolibri.org - example.com
- Edit the
-
Enable GitHub Actions:
- Navigate to the "Actions" tab in your repository
- Enable GitHub Actions with write permissions
-
Set API Key Secret (Optional):
- Get a Google PageSpeed Insights API key
- Add it as a repository secret named
PAGESPEED_API_KEY
-
Create Report Template:
- Create
report_template.md
in the root directory - Add your desired report template content
- Create
-
Commit Changes:
- Commit and push to trigger the initial report generation
GET /
- Web interfacePOST /check
- Run checks on a websiteGET /docs
- Swagger UI documentationGET /redoc
- ReDoc API documentationGET /health
- Health check endpoint
curl -X POST "http://localhost:8000/check" \
-H "Content-Type: application/json" \
-d '{
"url": "example.com",
"checks": ["ssl_certificate", "security_headers", "performance"]
}'
The config.yaml
file supports:
websites
: List of URLs to monitoroutput_file
: Report filename (default:README.md
)max_workers
: Concurrent tasks for checkstimeout
: Default timeout in secondsreport_template
: Template filename (default:report_template.md
)github_workflow_badge
: Workflow badge URLpagespeed_api_key
: Google PageSpeed API key
- Add New Checks: Create new check functions in the
checks
directory - Modify Existing: Edit files in
checks/
directory - Update Categories: Modify the category organization in
main.py
- Check Format: Ensure functions return status emojis (π’, π΄, π‘, βͺ)
- π’ Success: Check passed successfully
- π΄ Failed: Check failed or issue detected
- π‘ Warning: Check completed with warnings
- βͺ Error: Check could not be completed
- Real-time results display
- Detailed explanations for each check
- Category-based organization
- Mobile-friendly responsive design
- Automatic markdown table generation
- Daily updates via GitHub Actions
- Historical tracking through git commits
- Badge integration for status overview
- SSL/TLS Analysis: Certificate validation, cipher strength, HSTS
- Header Security: Security headers, XSS protection, CORS
- Content Security: Mixed content detection, subresource integrity
- Privacy Protection: Cookie analysis, tracking detection, data leakage
- Speed Analysis: Load times, server response, PageSpeed scores
- Optimization: Compression, minification, CDN detection
- Network: Redirect chains, external resource analysis
- SEO Compliance: Sitemaps, robots.txt, meta tags, structured data
- Accessibility: WCAG compliance, mobile-friendly testing
- Content Quality: Alt tags, semantic markup, internationalization
The project includes full Docker support for easy deployment:
# Available on Docker Hub
docker pull fabriziosalmi/websites-monitor
# Run with custom port
docker run -p 3000:8000 fabriziosalmi/websites-monitor
# Run with environment variables
docker run -e PAGESPEED_API_KEY=your_key fabriziosalmi/websites-monitor
- Swagger UI: Visit
/docs
for interactive API testing - ReDoc: Visit
/redoc
for detailed API reference
- REST API endpoints for all monitoring functions
- JSON response format for easy integration
- Comprehensive error handling and status codes
- Fork the repository
- Create a feature branch
- Add new checks in the
checks/
directory - Update documentation
- Submit a pull request
This project is open source. See the license file for details.
For issues or suggestions:
- Open a GitHub issue
- Check the documentation at
/docs
- Review existing issues and discussions
This comprehensive monitoring framework provides everything you need to keep your websites secure, fast, and compliant. Whether you prefer the interactive web interface, automated GitHub Actions, or API integration - Website Monitor has you covered.