PulsePing CLI
#python#automation#microsaas
Dì addio ai costi SaaS con PulsePing CLI: un watchdog in Go senza dipendenze per HTTP(S), TCP, DNS, gRPC e la scadenza SSL. Ricevi avvisi istantanei via Telegram, Discord, Slack e PagerDuty, oltre a pagine di stato statiche zero-JS automatizzate per GitHub/Cloudflare Pages. Include binari multi-arch, template Docker e systemd.
Leggi l'approfondimento tecnicoHealth Check Self-Hosted: Sostituire i Monitor Uptime SaaS con PulsePing CLImain.pymain.py — estratto d'esempio nello stile del tool
#!/usr/bin/env python3
"""
PulsePing CLI - Zero-dependency uptime monitoring & status page generator.
PulsePing CLI is an ultra-lightweight, high-performance watchdog that monitors HTTP(S),
TCP ports, DNS resolution, gRPC endpoints, and SSL certificate expiration. It triggers
instant alerts to Telegram, Discord, Slack, and PagerDuty while compiling zero-JS
static status pages suitable for hosting on GitHub Pages or Cloudflare Pages.
Features:
- Multi-protocol health checks (HTTP/S, TCP, DNS, gRPC, SSL Expiry)
- Multi-channel alerting (Telegram, Discord, Slack, PagerDuty)
- Zero-JS static status page generation for Jamstack hosting
- Lightweight execution with zero external runtime dependencies
- Configurable check intervals, timeouts, and failure thresholds
Usage:
$ python main.py check --config config.json
$ python main.py status-page --output ./dist
"""
from dataclasses import dataclass, field
from enum import Enum
from typing import Dict, List, Optional
import logging
import sys
class CheckType(Enum):
"""Supported target check protocols."""
HTTP = "http"
HTTPS = "https"
TCP = "tcp"
DNS = "dns"
GRPC = "grpc"
SSL = "ssl"
@dataclass
class CheckTarget:
"""Configuration model for a single monitoring target."""
name: str
type: CheckType
endpoint: str
timeout: float = 5.0
interval: int = 60
class PulsePingEngine:
"""Core orchestration engine for health checks and status generation."""
def __init__(self, targets: List[CheckTarget]) -> None:
self.targets: List[CheckTarget] = targets
# ... the full file ships with your download