Server Monitor Plugin (Pulsey) #
A comprehensive uptime and incident monitoring solution for October CMS v3. Provides active server monitoring, passive heartbeat monitoring, SSL certificate tracking, maintenance windows, and complete incident lifecycle management.
Requirements #
- OctoberCMS 3.0+
- Albrightlabs.SaasBase plugin (required dependency)
- Queue driver (database or Redis)
- Supervisor for production
Key Features #
Server Monitoring (Active) #
- Automated Status Checks - Monitors HTTP/HTTPS endpoints at plan-defined intervals
- Response Body Validation - Validate responses using contains, not_contains, or regex patterns
- Uptime Tracking - Calculates and displays percentage uptime for each server
- Status History - Logs all status changes with timestamps
- Performance Metrics - Tracks response times and averages
- Bulk Import - CSV import for adding servers in bulk
- Archive/Restore - Soft delete servers while preserving history
Heartbeat Monitoring (Passive) #
- Unique URLs - Each heartbeat gets a unique, permanent URL for pinging
- Flexible Timeframes - 10 minutes to 1 month monitoring intervals
- Automatic Alerts - Notifications when heartbeats go missing
- Recovery Detection - Automatic status recovery when pings resume
- Perfect for Cron Jobs - Monitor scheduled tasks, backups, and batch processes
- Bulk Import - CSV import for adding heartbeats in bulk
SSL Certificate Monitoring #
- Expiration Tracking - Monitor SSL/TLS certificates for expiration
- Configurable Thresholds - Set warning thresholds (default 14 days)
- Daily Automated Checks - Certificates checked daily at 6AM
- Rich Certificate Details - Issuer, subject, expiration date, days remaining
- Alert on Issues - Notifications for expiring, expired, or error states
Maintenance Windows #
- Scheduled Downtime - Define planned maintenance periods
- Alert Suppression - Automatically suppress notifications during maintenance
- Selective Scope - Apply to specific servers, heartbeats, or certificates
- Status Page Integration - Shows "Maintenance" status on public pages
Incident Lifecycle Management #
- Automatic Incident Creation - Incidents created when services go down
- Lifecycle States - pending → acknowledged → investigating → resolved
- Auto-Resolution - Incidents auto-resolve when services recover
- MTTR/MTTA Metrics - Track mean time to resolution and acknowledgment
- Escalation Policies - Auto-escalate unacknowledged incidents to backup recipients
Status Pages (Public Monitoring) #
- Custom Status Pages - Create public-facing status pages for transparency
- Selective Display - Choose which servers and heartbeats to show
- Logo Branding - Upload custom logos for branded status pages
- Dark Mode Support - Automatic dark/light theme with manual toggle
- Dynamic Favicon - Status indicator in browser tab (🟢/🟡/🔴/🔵)
- Maintenance Status - Shows blue "Maintenance" badge during planned downtime
- Real-time Updates - Auto-refreshes every 60 seconds
- Responsive Design - Mobile-friendly layout
- No Authentication - Public pages accessible to anyone with the URL
Notification System #
- Multi-channel Alerts - Email, SMS, Slack, and custom webhooks
- Slack Integration - Organization-level webhook with independent scheduling
- Custom Webhooks - Send alerts to PagerDuty, Discord, Telegram, or any HTTP endpoint
- HMAC Signature Verification - Secure webhook delivery with sha256 signatures
- Async Webhook Delivery - Non-blocking webhook dispatch with automatic retry
- Enriched Alert Context - Response time, recent history, uptime, and action buttons
- Escalation Policies - Auto-escalate to backup recipients after configurable delay
- Flexible Scheduling - Configure business hours, after hours, or always
- Per-User Preferences - Individual email/SMS toggles for each recipient
- Communication Logs - Tracks all sent notifications with costs
Plan-Based Features #
- Monitor Limits - Each plan has limits for servers, heartbeats, certificates, and status pages
- Check Frequency - Premium plans get 1-minute checks, free gets 5-minute
- Log Retention - Different retention periods per plan (7-90 days)
- SMS Availability - SMS notifications only for paid plans
- Advanced Scheduling - On-call rotations and time-based schedules for paid plans
- Recipient Limits - Free plan limited to 1 recipient, paid plans unlimited
- Escalation Policies - Available on paid plans only
Subscription Plans #
| Plan | Price | Frequency | Servers | Heartbeats | Certificates | Status Pages | Log Retention | SMS | Webhooks | Escalation |
|---|---|---|---|---|---|---|---|---|---|---|
| Free | $0/mo | 5 min | 50 | 50 | 50 | 50 | 7 days | - | - | - |
| Basic | $15/mo | 1 min | 200 | 200 | 200 | 200 | 30 days | Yes | Yes | Yes |
| Pro | $30/mo | 1 min | 500 | 500 | 500 | 500 | 90 days | Yes | Yes | Yes |
| Enterprise | $100/mo+ | 1 min | Unlimited | Unlimited | Unlimited | Unlimited | 90 days | Yes | Yes | Yes |
Documentation #
Getting Started #
- Installation Guide - Complete setup instructions
- Configuration Guide - Environment variables and settings
- Queue Setup - Worker configuration and Supervisor
Core Features #
- Server Management - Adding and managing servers
- Heartbeat Monitoring - Setting up passive monitoring
- Status Pages - Creating public status pages
- Branding - Customizing logos and appearance
Notifications & Incidents #
- Notification System - Email, SMS, Slack, and webhooks
- Slack Notifications - Slack integration guide
Advanced Topics #
- API Reference - Cron jobs and API endpoints
- SaasBase Integration - Subscription and user management
- Database Structure - Models and relationships
- Worker Monitoring - Queue worker performance
- Performance Optimization - Scaling and optimization
- Security - Security best practices
Maintenance & Support #
- Troubleshooting - Common issues and solutions
- Migration Guide - Data import and version upgrades
- Support - Getting help
Quick Start #
-
Install Dependencies
# Install SaasBase first cd plugins git clone [saasbase-repo] albrightlabs/saasbase # Install ServerMonitor git clone [this-repo] albrightlabs/servermonitor -
Run Migrations
php artisan october:migrate -
Configure Environment
SERVER_MONITOR_API_KEY=your-secure-api-key QUEUE_CONNECTION=database -
Set Up Scheduler
* * * * * cd /path/to/site && php artisan schedule:run >> /dev/null 2>&1 -
Start Queue Workers
# See Queue Setup guide for Supervisor configuration php artisan queue:work --queue=premium
Next: Complete Installation Guide
Related Projects #
- SaasBase Plugin - Multi-tenant foundation
- October CMS - The framework this plugin extends
License #
Proprietary - Albright Labs LLC. All Rights Reserved.
Support #
- Documentation Issues: Check the Troubleshooting Guide
- Email Support: support@albrightlabs.com
Current Version: 1.6.4 - See version.yaml for changelog.