🚧 UNDER DEVELOPMENT 🚧
A modern, all-in-one uptime monitoring and SSL certificate health tool designed to keep your websites and applications running smoothly. With real-time notifications via email, SMS, and Slack, PulseCheck ensures you're always informed about downtime, SSL expirations, and critical issues—so you can act fast and stay ahead.
The goal of this project is to help businesses and individuals stay informed about the status of their applications and websites by:
- Ensuring minimal downtime with quick alerts.
- Proactively notifying about SSL certificate expiry.
- Offering a centralized dashboard for status monitoring and alert management.
- Uptime Monitoring:
- Periodically checks the availability of registered websites and applications.
- SSL Monitoring:
- Tracks SSL certificate expiration and notifies users in advance.
- Real-Time Alerts:
- Sends notifications via SMS, email, and Slack when issues are detected.
- Customizable Alerts:
- Allow users to set alert thresholds and notification preferences.
- Dashboard:
- Displays application status history, SSL expiry dates, and recent alerts.
- Backend: FastAPI (Python)
- Database: PostgreSQL
- Background Task Processing: Celery or APScheduler
- Notifications: Twilio, Slack SDK, Amazon SES
- Frontend: (To be decided, likely React or HTMX)
graph TD
subgraph Frontend
A[React/Vue.js Dashboard] -->|API Calls| B[FastAPI Backend]
end
subgraph Backend
B -->|Task Scheduling| C[Celery Worker]
B -->|Database Operations| D[PostgreSQL]
C -->|Task Queue| E[Redis]
end
subgraph Third-Party Services
B -->|Send Notifications| F[Twilio]
B -->|Send Notifications| G[SendGrid]
B -->|Send Notifications| H[Slack]
end
subgraph Monitoring
I[Prometheus] -->|Metrics| J[Grafana]
end
subgraph Deployment
K[Docker] -->|Orchestration| L[Kubernetes]
end
style A fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
style C fill:#f96,stroke:#333,stroke-width:2px
style D fill:#6f9,stroke:#333,stroke-width:2px
style E fill:#f66,stroke:#333,stroke-width:2px
style F fill:#69f,stroke:#333,stroke-width:2px
style G fill:#69f,stroke:#333,stroke-width:2px
style H fill:#69f,stroke:#333,stroke-width:2px
style I fill:#f9f,stroke:#333,stroke-width:2px
style J fill:#f9f,stroke:#333,stroke-width:2px
style K fill:#6f9,stroke:#333,stroke-width:2px
style L fill:#6f9,stroke:#333,stroke-width:2px
-
Monitoring Service: Handles periodic checks for uptime and SSL status.
-
Notification Service: Manages sending alerts via SMS, email, or Slack.
-
API Layer: Exposes endpoints for user interaction (e.g., adding websites, setting thresholds).
-
Frontend: Dashboard for users to view data (can be built using React, HTMX, or another framework).
-
Database: Stores user data, registered applications, alert configurations, and logs.
- Scheduler: Periodically triggers uptime and SSL checks (e.g., Celery, APScheduler).
- Worker Queue: Ensures scalable and asynchronous processing of tasks (e.g., Redis + Celery).
- Database: PostgreSQL for structured data storage.
- Notification Integrations: Use libraries or APIs for Twilio (SMS), Amazon SES (email), and Slack.
- Users register and add websites with configurations (alert preferences, thresholds).
- Scheduler triggers monitoring tasks periodically.
- Monitoring tasks log results in the database and trigger notifications if conditions are met.
- Dashboard retrieves data from the database to display application status and alert history.
The project is in its early development stages. Core features such as uptime monitoring and SSL checks are being prototyped.
This project aims to:
- Provide an accessible, user-friendly solution for monitoring uptime and SSL health.
- Offer a scalable platform for small to medium-sized businesses.
- Eventually evolve into a SaaS product with subscription tiers and advanced analytics.
This repository will soon include setup instructions, including how to:
- Clone the repository.
- Install dependencies.
- Run the application locally.
Stay tuned for updates!
Contributions are welcome! If you'd like to collaborate, please fork this repository and submit a pull request with your changes.