{"adoption": {"forks": 265, "observed_at": "2026-08-28T04:09:45.764081+00:00", "stars": 6624}, "canonical_url": "https://ross.abutalabs.com/products/rcourtman-pulse", "card": {"archived": false, "artifact_type": "application", "description": "Monitoring for Proxmox, Docker, Kubernetes, TrueNAS, and vSphere that watches your infrastructure for you: smart alerts, AI patrols that catch silent failures, and verified fixes", "domain": ["monitoring", "self-hosted", "infrastructure-as-code"], "enriched": true, "function": ["monitoring", "alerting", "self-hosted", "webhook"], "health_score": 100, "homepage": "https://pulserelay.pro", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["rcourtman/Pulse"], "name": "rcourtman/Pulse", "platform": ["self-hosted", "go"], "pushed_at": "2026-08-26T23:37:32+00:00", "repo": "rcourtman/Pulse", "stars": 6624, "tags": ["proxmox", "kubernetes", "docker-monitoring", "truenas", "vsphere", "homelab", "backup-monitoring", "ai-patrol", "infrastructure-monitoring", "dashboard", "devops", "containers", "docker", "linux", "web-server"], "topics": ["monitoring", "proxmox", "alerts", "docker", "docker-monitoring", "go", "homelab", "infrastructure-monitoring", "proxmox-backup-server", "proxmox-mail-gateway", "proxmox-ve", "self-hosted", "typescript", "webhooks", "ai", "dashboard", "kubernetes", "truenas", "vsphere", "msp"], "urls": [], "use_cases": ["monitor proxmox cluster nodes and guests", "get alerts when docker containers become unhealthy", "track failed proxmox backup server jobs", "monitor kubernetes cluster health from a single dashboard", "watch truenas zfs pools and replication tasks", "self-hosted monitoring for homelab infrastructure", "catch silent infrastructure failures automatically"], "what_it_is": "Pulse is a self-hosted infrastructure monitoring application for Proxmox, Docker, Kubernetes, TrueNAS, and vSphere, combining live state, history, adaptive alerts, and scheduled AI-driven health checks (Patrol). It provides dedicated per-platform views with backup/recovery visibility and webhook-based alert delivery.", "when_to_avoid": ["you need full Prometheus/Grafana-style metrics pipelines and custom exporters", "you only monitor cloud services like AWS or GCP rather than virtualization and container platforms", "you require vSphere support in production without validation, as it is early access"], "when_to_choose": ["you run Proxmox, Docker, Kubernetes, TrueNAS, or vSphere and want one unified monitoring workspace", "you want self-hosted, privacy-first monitoring without an enterprise stack like Zabbix or Prometheus", "you need backup and replication job monitoring with recovery visibility", "you want adaptive alerting that avoids alert flapping"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rcourtman-pulse", "repo": "rcourtman/Pulse", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:43:15.956556+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d2f813f697ca2cade8477198438dd295baf76271e7a893d5264b30669d7ae51", "fetched_at": "2026-08-28T04:09:45.764081+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rcourtman/Pulse"}, {"content_hash": "b654844e269156095bdb2b4a470e94f069e416b22bb75d18a606f0757915c4be", "fetched_at": "2026-08-29T08:39:37.389137+00:00", "kind": "homepage", "missing": false, "url": "https://pulserelay.pro"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:43:15.956556+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d2f813f697ca2cade8477198438dd295baf76271e7a893d5264b30669d7ae51", "fetched_at": "2026-08-28T04:09:45.764081+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rcourtman/Pulse"}, {"content_hash": "b654844e269156095bdb2b4a470e94f069e416b22bb75d18a606f0757915c4be", "fetched_at": "2026-08-29T08:39:37.389137+00:00", "kind": "homepage", "missing": false, "url": "https://pulserelay.pro"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:43:15.956556+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d2f813f697ca2cade8477198438dd295baf76271e7a893d5264b30669d7ae51", "fetched_at": "2026-08-28T04:09:45.764081+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rcourtman/Pulse"}, {"content_hash": "b654844e269156095bdb2b4a470e94f069e416b22bb75d18a606f0757915c4be", "fetched_at": "2026-08-29T08:39:37.389137+00:00", "kind": "homepage", "missing": false, "url": "https://pulserelay.pro"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:43:15.956556+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d2f813f697ca2cade8477198438dd295baf76271e7a893d5264b30669d7ae51", "fetched_at": "2026-08-28T04:09:45.764081+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rcourtman/Pulse"}, {"content_hash": "b654844e269156095bdb2b4a470e94f069e416b22bb75d18a606f0757915c4be", "fetched_at": "2026-08-29T08:39:37.389137+00:00", "kind": "homepage", "missing": false, "url": "https://pulserelay.pro"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:43:15.956556+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d2f813f697ca2cade8477198438dd295baf76271e7a893d5264b30669d7ae51", "fetched_at": "2026-08-28T04:09:45.764081+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rcourtman/Pulse"}, {"content_hash": "b654844e269156095bdb2b4a470e94f069e416b22bb75d18a606f0757915c4be", "fetched_at": "2026-08-29T08:39:37.389137+00:00", "kind": "homepage", "missing": false, "url": "https://pulserelay.pro"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:43:15.956556+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d2f813f697ca2cade8477198438dd295baf76271e7a893d5264b30669d7ae51", "fetched_at": "2026-08-28T04:09:45.764081+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rcourtman/Pulse"}, {"content_hash": "b654844e269156095bdb2b4a470e94f069e416b22bb75d18a606f0757915c4be", "fetched_at": "2026-08-29T08:39:37.389137+00:00", "kind": "homepage", "missing": false, "url": "https://pulserelay.pro"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:45.764081+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:43:15.956556+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d2f813f697ca2cade8477198438dd295baf76271e7a893d5264b30669d7ae51", "fetched_at": "2026-08-28T04:09:45.764081+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rcourtman/Pulse"}, {"content_hash": "b654844e269156095bdb2b4a470e94f069e416b22bb75d18a606f0757915c4be", "fetched_at": "2026-08-29T08:39:37.389137+00:00", "kind": "homepage", "missing": false, "url": "https://pulserelay.pro"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:43:15.956556+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d2f813f697ca2cade8477198438dd295baf76271e7a893d5264b30669d7ae51", "fetched_at": "2026-08-28T04:09:45.764081+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rcourtman/Pulse"}, {"content_hash": "b654844e269156095bdb2b4a470e94f069e416b22bb75d18a606f0757915c4be", "fetched_at": "2026-08-29T08:39:37.389137+00:00", "kind": "homepage", "missing": false, "url": "https://pulserelay.pro"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:43:15.956556+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d2f813f697ca2cade8477198438dd295baf76271e7a893d5264b30669d7ae51", "fetched_at": "2026-08-28T04:09:45.764081+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rcourtman/Pulse"}, {"content_hash": "b654844e269156095bdb2b4a470e94f069e416b22bb75d18a606f0757915c4be", "fetched_at": "2026-08-29T08:39:37.389137+00:00", "kind": "homepage", "missing": false, "url": "https://pulserelay.pro"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:43:15.956556+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d2f813f697ca2cade8477198438dd295baf76271e7a893d5264b30669d7ae51", "fetched_at": "2026-08-28T04:09:45.764081+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rcourtman/Pulse"}, {"content_hash": "b654844e269156095bdb2b4a470e94f069e416b22bb75d18a606f0757915c4be", "fetched_at": "2026-08-29T08:39:37.389137+00:00", "kind": "homepage", "missing": false, "url": "https://pulserelay.pro"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 40, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 565, "days_push": 7, "days_rel": 8, "gap_med": 0, "n_releases_24m": 258}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}