WebsiteServiceManagerOne is an open-source web-based utility for monitoring the uptime, SSL status, and performance of your websites and API endpoints. It provides a modern dashboard, downtime reports, and configurable notifications (email, Slack, Discord, webhooks) to help you stay informed about incidents and recoveries.
- Monitor multiple websites and API endpoints for uptime and response time
- SSL certificate expiry checks and HTTP-to-HTTPS suggestions
- Customizable alert thresholds (response time, consecutive failures)
- Email, Slack, Discord, and webhook notifications
- Responsive dashboard with real-time status, incident history, and statistics
- Detailed downtime reports with exportable CSV
- Easy configuration via web UI or YAML file
- Python 3
- pip (Python package manager)
- See
requirements.txtfor Python dependencies
-
Clone the repository:
git clone https://github.com/Azio0/WebsiteServiceManagerOne.git cd WebsiteServiceManagerOne -
Install Python and pip (if not already installed):
sudo apt-get install python3 sudo apt-get install python3-pip
-
Install required Python packages:
pip install -r requirements.txt
-
Configure your monitoring settings:
- Edit
src/utils/config/config.ymldirectly, or - Start the web app and use the Configuration page at
/configfor a user-friendly interface.
- Edit
-
Run the application:
cd src python run.pyThe dashboard will be available at http://localhost:5000.
WebsiteServiceManagerOne uses the following components:
- Configuration: Reads settings from a YAML file or web UI.
- Scheduler: Periodically checks all configured websites and APIs.
- Website/API Checks: Uses HTTP requests to determine status, response time, and SSL validity.
- Incident Tracking: Records downtime periods, incidents, and recoveries.
- Notifications: Sends alerts via email, Slack, Discord, or custom webhooks.
- Dashboard & Reports: Visualizes status, incidents, SSL info, and performance metrics.
- Add websites and APIs via the
/configpage or by editingconfig.yml. - Start monitoring from the dashboard or let it run automatically.
- View real-time status and incident history on the dashboard.
- Check SSL certificate health and receive expiry warnings.
- Export downtime reports as CSV from the Reports page.
All settings can be managed via the web UI or by editing src/utils/config/config.yml:
- websites: List of websites to monitor.
- api_endpoints: API endpoints with custom methods, expected status, and timeouts.
- email: SMTP settings and notification recipients.
- notifications: Enable/disable Slack, Discord, or webhook alerts.
- alert_thresholds: Set response time and failure thresholds for alerts.
- schedule: Set the monitoring interval (in minutes).
To run WebsiteServiceManagerOne in production, use Gunicorn with the provided configuration file:
-
Install Gunicorn (if not already installed):
pip install gunicorn
-
Start the app with Gunicorn from the
srcdirectory:cd src gunicorn -c gunicorn.py wsmo:app- This uses
src/gunicorn.pyfor worker/thread/binding settings. - The main Flask app should be exposed as
appinsrc/wsmo.py.
- This uses
-
Access the dashboard at http://localhost:5000 (or your configured bind address).
Tip: For development, you can still use:
python run.pyThis is an open-source project, and contributions are welcome. Please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License.
For any questions or suggestions, please open an issue or contact the project maintainers.
This project is intended to be open-source and free from cost to use. I love coding, setting a target and accomplishing it, sometimes by using pre-existing technology or creating an original approach to a problem. It excites me and gives me a sense of purpose, but it is not always easy to find the time or motivation to keep pushing forward. Donations are welcome if you wish to give something towards the work I do, but it is completely optional and is certainly not a requirement.
