{"adoption": {"forks": 300, "observed_at": "2026-08-28T04:03:25.958900+00:00", "stars": 1061}, "canonical_url": "https://ross.abutalabs.com/products/openvpn-monitor", "card": {"archived": false, "artifact_type": "application", "description": "openvpn-monitor is a web based OpenVPN monitor, that shows current connection information, such as users, location and data transferred.", "domain": ["networking", "monitoring", "security", "self-hosted", "web-development"], "enriched": true, "function": ["monitoring", "web-framework", "http-server", "analytics"], "health_score": 78, "homepage": "http://openvpn-monitor.openbytes.ie", "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["furlongm/openvpn-monitor"], "name": "furlongm/openvpn-monitor", "platform": ["python", "self-hosted"], "pushed_at": "2026-04-26T02:25:31+00:00", "repo": "furlongm/openvpn-monitor", "stars": 1061, "tags": ["openvpn", "vpn-monitoring", "flask", "dashboard", "connection-status", "geoip", "linux", "docker", "web-server"], "topics": ["openvpn-server", "python", "openvpn-monitor", "html", "openvpn", "openvpn-admin", "openvpn-status", "openvpn-client", "openvpn-configuration"], "urls": [], "use_cases": ["monitor openvpn server connections from a web dashboard", "see which users are currently connected to my vpn", "track data transferred per openvpn client", "show client locations for openvpn connections", "web gui for openvpn status", "admin dashboard for openvpn server"], "what_it_is": "openvpn-monitor is a Flask web application that displays the status of OpenVPN servers, including all current client connections, their locations, and data transferred. It communicates with OpenVPN via the management console and can run on the same host as the VPN server or manage remote servers.", "when_to_avoid": ["you use WireGuard or other non-OpenVPN VPN software", "you need multi-tenant VPN management or user provisioning, not just status monitoring", "you need alerting or historical metrics rather than a live status view"], "when_to_choose": ["you run OpenVPN servers and want a simple web dashboard of live connections", "you want a self-hosted, lightweight Python monitor using the OpenVPN management interface", "you need deb/rpm or docker deployment on Ubuntu, Debian, or RHEL-based systems"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/openvpn-monitor", "repo": "furlongm/openvpn-monitor", "role": "main", "score": 70}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:56:50.604506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb582a9bb46223e5f4601f0a033e9dfdc1ff00c62abaa47e7e3d2a999e21b5da", "fetched_at": "2026-08-28T04:03:25.958900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/furlongm/openvpn-monitor"}, {"content_hash": "8f934dfa69e2c9e17964dde5a28e05d8da51491b8155962da5ccdb678aeae39d", "fetched_at": "2026-08-29T12:58:47.747911+00:00", "kind": "homepage", "missing": false, "url": "http://openvpn-monitor.openbytes.ie"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:56:50.604506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb582a9bb46223e5f4601f0a033e9dfdc1ff00c62abaa47e7e3d2a999e21b5da", "fetched_at": "2026-08-28T04:03:25.958900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/furlongm/openvpn-monitor"}, {"content_hash": "8f934dfa69e2c9e17964dde5a28e05d8da51491b8155962da5ccdb678aeae39d", "fetched_at": "2026-08-29T12:58:47.747911+00:00", "kind": "homepage", "missing": false, "url": "http://openvpn-monitor.openbytes.ie"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:56:50.604506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb582a9bb46223e5f4601f0a033e9dfdc1ff00c62abaa47e7e3d2a999e21b5da", "fetched_at": "2026-08-28T04:03:25.958900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/furlongm/openvpn-monitor"}, {"content_hash": "8f934dfa69e2c9e17964dde5a28e05d8da51491b8155962da5ccdb678aeae39d", "fetched_at": "2026-08-29T12:58:47.747911+00:00", "kind": "homepage", "missing": false, "url": "http://openvpn-monitor.openbytes.ie"}], "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:03:25.958900+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:56:50.604506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb582a9bb46223e5f4601f0a033e9dfdc1ff00c62abaa47e7e3d2a999e21b5da", "fetched_at": "2026-08-28T04:03:25.958900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/furlongm/openvpn-monitor"}, {"content_hash": "8f934dfa69e2c9e17964dde5a28e05d8da51491b8155962da5ccdb678aeae39d", "fetched_at": "2026-08-29T12:58:47.747911+00:00", "kind": "homepage", "missing": false, "url": "http://openvpn-monitor.openbytes.ie"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:56:50.604506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb582a9bb46223e5f4601f0a033e9dfdc1ff00c62abaa47e7e3d2a999e21b5da", "fetched_at": "2026-08-28T04:03:25.958900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/furlongm/openvpn-monitor"}, {"content_hash": "8f934dfa69e2c9e17964dde5a28e05d8da51491b8155962da5ccdb678aeae39d", "fetched_at": "2026-08-29T12:58:47.747911+00:00", "kind": "homepage", "missing": false, "url": "http://openvpn-monitor.openbytes.ie"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:56:50.604506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb582a9bb46223e5f4601f0a033e9dfdc1ff00c62abaa47e7e3d2a999e21b5da", "fetched_at": "2026-08-28T04:03:25.958900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/furlongm/openvpn-monitor"}, {"content_hash": "8f934dfa69e2c9e17964dde5a28e05d8da51491b8155962da5ccdb678aeae39d", "fetched_at": "2026-08-29T12:58:47.747911+00:00", "kind": "homepage", "missing": false, "url": "http://openvpn-monitor.openbytes.ie"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:25.958900+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:56:50.604506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb582a9bb46223e5f4601f0a033e9dfdc1ff00c62abaa47e7e3d2a999e21b5da", "fetched_at": "2026-08-28T04:03:25.958900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/furlongm/openvpn-monitor"}, {"content_hash": "8f934dfa69e2c9e17964dde5a28e05d8da51491b8155962da5ccdb678aeae39d", "fetched_at": "2026-08-29T12:58:47.747911+00:00", "kind": "homepage", "missing": false, "url": "http://openvpn-monitor.openbytes.ie"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:56:50.604506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb582a9bb46223e5f4601f0a033e9dfdc1ff00c62abaa47e7e3d2a999e21b5da", "fetched_at": "2026-08-28T04:03:25.958900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/furlongm/openvpn-monitor"}, {"content_hash": "8f934dfa69e2c9e17964dde5a28e05d8da51491b8155962da5ccdb678aeae39d", "fetched_at": "2026-08-29T12:58:47.747911+00:00", "kind": "homepage", "missing": false, "url": "http://openvpn-monitor.openbytes.ie"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:56:50.604506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb582a9bb46223e5f4601f0a033e9dfdc1ff00c62abaa47e7e3d2a999e21b5da", "fetched_at": "2026-08-28T04:03:25.958900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/furlongm/openvpn-monitor"}, {"content_hash": "8f934dfa69e2c9e17964dde5a28e05d8da51491b8155962da5ccdb678aeae39d", "fetched_at": "2026-08-29T12:58:47.747911+00:00", "kind": "homepage", "missing": false, "url": "http://openvpn-monitor.openbytes.ie"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:56:50.604506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb582a9bb46223e5f4601f0a033e9dfdc1ff00c62abaa47e7e3d2a999e21b5da", "fetched_at": "2026-08-28T04:03:25.958900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/furlongm/openvpn-monitor"}, {"content_hash": "8f934dfa69e2c9e17964dde5a28e05d8da51491b8155962da5ccdb678aeae39d", "fetched_at": "2026-08-29T12:58:47.747911+00:00", "kind": "homepage", "missing": false, "url": "http://openvpn-monitor.openbytes.ie"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 79, "longevity": 100, "rhythm": 40}, "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": 5129, "days_push": 130, "days_rel": 608, "gap_med": 10, "n_releases_24m": 2}, "score": 70, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}