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 #

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 #

  1. Installation Guide - Complete setup instructions
  2. Configuration Guide - Environment variables and settings
  3. Queue Setup - Worker configuration and Supervisor

Core Features #

  1. Server Management - Adding and managing servers
  2. Heartbeat Monitoring - Setting up passive monitoring
  3. Status Pages - Creating public status pages
  4. Branding - Customizing logos and appearance

Notifications & Incidents #

  1. Notification System - Email, SMS, Slack, and webhooks
  2. Slack Notifications - Slack integration guide

Advanced Topics #

  1. API Reference - Cron jobs and API endpoints
  2. SaasBase Integration - Subscription and user management
  3. Database Structure - Models and relationships
  4. Worker Monitoring - Queue worker performance
  5. Performance Optimization - Scaling and optimization
  6. Security - Security best practices

Maintenance & Support #

  1. Troubleshooting - Common issues and solutions
  2. Migration Guide - Data import and version upgrades
  3. Support - Getting help

Quick Start #

  1. Install Dependencies

    # Install SaasBase first
    cd plugins
    git clone [saasbase-repo] albrightlabs/saasbase
    
    # Install ServerMonitor
    git clone [this-repo] albrightlabs/servermonitor
  2. Run Migrations

    php artisan october:migrate
  3. Configure Environment

    SERVER_MONITOR_API_KEY=your-secure-api-key
    QUEUE_CONNECTION=database
  4. Set Up Scheduler

    * * * * * cd /path/to/site && php artisan schedule:run >> /dev/null 2>&1
  5. Start Queue Workers

    # See Queue Setup guide for Supervisor configuration
    php artisan queue:work --queue=premium

Next: Complete Installation Guide

License #

Proprietary - Albright Labs LLC. All Rights Reserved.

Support #


Current Version: 1.6.4 - See version.yaml for changelog.