{"adoption": {"forks": 384, "observed_at": "2026-08-28T04:06:37.688682+00:00", "stars": 2330}, "canonical_url": "https://ross.abutalabs.com/products/serverstatus-rust", "card": {"archived": false, "artifact_type": "application", "description": "✨ Rust 版 ServerStatus 探针、威力加强版", "domain": ["monitoring", "self-hosted", "networking"], "enriched": true, "function": ["monitoring", "alerting", "http-server", "webhook"], "health_score": 86, "homepage": "https://ssr.rs", "language": "Rust", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["zdz/ServerStatus-Rust"], "name": "zdz/ServerStatus-Rust", "platform": ["windows", "cross-platform", "self-hosted"], "pushed_at": "2026-08-26T20:08:31+00:00", "repo": "zdz/ServerStatus-Rust", "stars": 2330, "tags": ["server-status", "system-probe", "vnstat", "telegram-notifications", "wechat-notifications", "cloudflare-tunnels", "mtls", "rust-rewrite", "vps-monitoring", "devops", "linux", "macos", "android", "docker"], "topics": ["rust", "serverstatus", "serverstatus-rust", "railway", "vnstat", "telegram", "wechat", "webhook", "probe"], "urls": [], "use_cases": ["monitor cpu and memory usage across multiple vps servers", "get telegram alerts when a server goes offline", "track monthly network traffic with vnstat without losing data on reboot", "self-host a server status dashboard page", "deploy a server monitoring probe on railway or heroku", "monitor raspberry pi and android devices", "group hosts and dynamically register clients"], "what_it_is": "A Rust rewrite of the ServerStatus cloud probe with a lightweight single-binary server and client for monitoring multiple hosts' CPU, memory, network, and traffic. It adds alerting via Telegram, WeChat, email, and webhook, vnstat monthly traffic tracking, HTTP reporting, and easy deployment to Railway/Heroku.", "when_to_avoid": ["you need full metrics dashboards with historical graphs like prometheus/grafana", "you require application-level or container-level monitoring rather than host-level stats", "you need snmp or agentless monitoring of devices you cannot install a client on"], "when_to_choose": ["you want a lightweight single-binary server monitoring probe with simple deployment", "you need offline/online alerts via telegram, wechat, email, or webhook", "you want vnstat-based monthly traffic accounting that survives restarts", "you need cross-platform monitoring including linux, macos, windows, android, and raspberry pi"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/serverstatus-rust", "repo": "zdz/ServerStatus-Rust", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:38:07.194113+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82db94335d963ba0b827d9972d734febe979dce07cbfbe0413f9491599612afe", "fetched_at": "2026-08-28T04:06:37.688682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zdz/ServerStatus-Rust"}, {"content_hash": "ddc5ddbbd7646ec38bd12339cfbcce2e4e3eade3569207a730ce505edd2dc8ce", "fetched_at": "2026-08-29T10:18:27.974693+00:00", "kind": "homepage", "missing": false, "url": "https://ssr.rs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:38:07.194113+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82db94335d963ba0b827d9972d734febe979dce07cbfbe0413f9491599612afe", "fetched_at": "2026-08-28T04:06:37.688682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zdz/ServerStatus-Rust"}, {"content_hash": "ddc5ddbbd7646ec38bd12339cfbcce2e4e3eade3569207a730ce505edd2dc8ce", "fetched_at": "2026-08-29T10:18:27.974693+00:00", "kind": "homepage", "missing": false, "url": "https://ssr.rs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:38:07.194113+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82db94335d963ba0b827d9972d734febe979dce07cbfbe0413f9491599612afe", "fetched_at": "2026-08-28T04:06:37.688682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zdz/ServerStatus-Rust"}, {"content_hash": "ddc5ddbbd7646ec38bd12339cfbcce2e4e3eade3569207a730ce505edd2dc8ce", "fetched_at": "2026-08-29T10:18:27.974693+00:00", "kind": "homepage", "missing": false, "url": "https://ssr.rs"}], "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:06:37.688682+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:38:07.194113+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82db94335d963ba0b827d9972d734febe979dce07cbfbe0413f9491599612afe", "fetched_at": "2026-08-28T04:06:37.688682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zdz/ServerStatus-Rust"}, {"content_hash": "ddc5ddbbd7646ec38bd12339cfbcce2e4e3eade3569207a730ce505edd2dc8ce", "fetched_at": "2026-08-29T10:18:27.974693+00:00", "kind": "homepage", "missing": false, "url": "https://ssr.rs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:38:07.194113+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82db94335d963ba0b827d9972d734febe979dce07cbfbe0413f9491599612afe", "fetched_at": "2026-08-28T04:06:37.688682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zdz/ServerStatus-Rust"}, {"content_hash": "ddc5ddbbd7646ec38bd12339cfbcce2e4e3eade3569207a730ce505edd2dc8ce", "fetched_at": "2026-08-29T10:18:27.974693+00:00", "kind": "homepage", "missing": false, "url": "https://ssr.rs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:38:07.194113+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82db94335d963ba0b827d9972d734febe979dce07cbfbe0413f9491599612afe", "fetched_at": "2026-08-28T04:06:37.688682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zdz/ServerStatus-Rust"}, {"content_hash": "ddc5ddbbd7646ec38bd12339cfbcce2e4e3eade3569207a730ce505edd2dc8ce", "fetched_at": "2026-08-29T10:18:27.974693+00:00", "kind": "homepage", "missing": false, "url": "https://ssr.rs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.688682+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:38:07.194113+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82db94335d963ba0b827d9972d734febe979dce07cbfbe0413f9491599612afe", "fetched_at": "2026-08-28T04:06:37.688682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zdz/ServerStatus-Rust"}, {"content_hash": "ddc5ddbbd7646ec38bd12339cfbcce2e4e3eade3569207a730ce505edd2dc8ce", "fetched_at": "2026-08-29T10:18:27.974693+00:00", "kind": "homepage", "missing": false, "url": "https://ssr.rs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:38:07.194113+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82db94335d963ba0b827d9972d734febe979dce07cbfbe0413f9491599612afe", "fetched_at": "2026-08-28T04:06:37.688682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zdz/ServerStatus-Rust"}, {"content_hash": "ddc5ddbbd7646ec38bd12339cfbcce2e4e3eade3569207a730ce505edd2dc8ce", "fetched_at": "2026-08-29T10:18:27.974693+00:00", "kind": "homepage", "missing": false, "url": "https://ssr.rs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:38:07.194113+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82db94335d963ba0b827d9972d734febe979dce07cbfbe0413f9491599612afe", "fetched_at": "2026-08-28T04:06:37.688682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zdz/ServerStatus-Rust"}, {"content_hash": "ddc5ddbbd7646ec38bd12339cfbcce2e4e3eade3569207a730ce505edd2dc8ce", "fetched_at": "2026-08-29T10:18:27.974693+00:00", "kind": "homepage", "missing": false, "url": "https://ssr.rs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:38:07.194113+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82db94335d963ba0b827d9972d734febe979dce07cbfbe0413f9491599612afe", "fetched_at": "2026-08-28T04:06:37.688682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zdz/ServerStatus-Rust"}, {"content_hash": "ddc5ddbbd7646ec38bd12339cfbcce2e4e3eade3569207a730ce505edd2dc8ce", "fetched_at": "2026-08-29T10:18:27.974693+00:00", "kind": "homepage", "missing": false, "url": "https://ssr.rs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1682, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}