PyForge è in vendita solo qui, sul sito ufficiale py-forge.com — diffida delle imitazioni.

Torna al catalogo
PulsePing CLIAI & Automation

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 CLI
main.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