{"adoption": {"forks": 1437, "observed_at": "2026-08-28T04:07:45.719408+00:00", "stars": 3137}, "canonical_url": "https://ross.abutalabs.com/products/siteproxy", "card": {"archived": false, "artifact_type": "service", "description": "reverse proxy, online proxy, 反向代理,免翻墙访问Youtube/twitter/Google, 支持github和telegram web登录(请注意不要通过不信任的代理进行登录)。支持DuckDuckGo AI Chat", "domain": ["privacy", "censorship-circumvention", "web-development", "self-hosted", "networking"], "enriched": true, "function": ["proxy", "http-server", "web-framework", "security", "privacy"], "health_score": 97, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["netptop/siteproxy"], "name": "netptop/siteproxy", "platform": ["cloud", "self-hosted", "serverless"], "pushed_at": "2026-08-02T00:21:20+00:00", "repo": "netptop/siteproxy", "stars": 3137, "tags": ["reverse-proxy", "online-proxy", "cloudflare-workers", "cloudflare-pages", "anti-censorship", "duckduckgo-ai-chat", "password-protected", "nodejs", "web-server", "docker"], "topics": [], "urls": [], "use_cases": ["access blocked websites like youtube and twitter without a vpn", "self-host a web proxy on cloudflare workers", "browse the internet anonymously hiding my real ip", "deploy a zero-configuration online proxy for users behind firewalls", "use duckduckgo ai chat through a proxy", "protect a proxy endpoint with a password", "set up a reverse proxy on a vps with docker"], "what_it_is": "SiteProxy is a self-hosted online reverse proxy built on Hono that lets users browse blocked sites like YouTube, Twitter, and Google through a proxy URL without any client configuration. It supports deployment to Cloudflare Workers/Pages, VPS, or Docker, includes password protection with RSA+AES encrypted login, GitHub/Telegram web login support, and an integrated DuckDuckGo AI Chat.", "when_to_avoid": ["you need high-throughput or protocol-level proxying (e.g., SOCKS/VPN tunneling)", "you require reliable access to sites that block Cloudflare IPs", "you need to proxy sites with aggressive anti-bot or anti-ad mechanisms like Google search or YouTube at scale", "you cannot trust the proxy operator - never log in through an untrusted proxy"], "when_to_choose": ["you need a browser-only proxy with no client software or configuration", "you want to deploy to Cloudflare Workers, Pages, a VPS, or Docker", "you need password-protected proxy access with encrypted login", "you want integrated AI chat (Duck.ai) alongside web proxying"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/siteproxy", "repo": "netptop/siteproxy", "role": "main", "score": 96}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:26:05.055198+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a372d108506e160d535dbbecaa5ad6fa1821972883847722d30e6ffb62a48c83", "fetched_at": "2026-08-28T04:07:45.719408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netptop/siteproxy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:26:05.055198+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a372d108506e160d535dbbecaa5ad6fa1821972883847722d30e6ffb62a48c83", "fetched_at": "2026-08-28T04:07:45.719408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netptop/siteproxy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:26:05.055198+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a372d108506e160d535dbbecaa5ad6fa1821972883847722d30e6ffb62a48c83", "fetched_at": "2026-08-28T04:07:45.719408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netptop/siteproxy"}], "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:07:45.719408+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:26:05.055198+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a372d108506e160d535dbbecaa5ad6fa1821972883847722d30e6ffb62a48c83", "fetched_at": "2026-08-28T04:07:45.719408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netptop/siteproxy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:26:05.055198+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a372d108506e160d535dbbecaa5ad6fa1821972883847722d30e6ffb62a48c83", "fetched_at": "2026-08-28T04:07:45.719408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netptop/siteproxy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:26:05.055198+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a372d108506e160d535dbbecaa5ad6fa1821972883847722d30e6ffb62a48c83", "fetched_at": "2026-08-28T04:07:45.719408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netptop/siteproxy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.719408+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:26:05.055198+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a372d108506e160d535dbbecaa5ad6fa1821972883847722d30e6ffb62a48c83", "fetched_at": "2026-08-28T04:07:45.719408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netptop/siteproxy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:26:05.055198+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a372d108506e160d535dbbecaa5ad6fa1821972883847722d30e6ffb62a48c83", "fetched_at": "2026-08-28T04:07:45.719408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netptop/siteproxy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:26:05.055198+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a372d108506e160d535dbbecaa5ad6fa1821972883847722d30e6ffb62a48c83", "fetched_at": "2026-08-28T04:07:45.719408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netptop/siteproxy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:26:05.055198+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a372d108506e160d535dbbecaa5ad6fa1821972883847722d30e6ffb62a48c83", "fetched_at": "2026-08-28T04:07:45.719408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netptop/siteproxy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 96}, "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": 2391, "days_push": 32, "days_rel": 31, "gap_med": 3.0, "n_releases_24m": 15}, "score": 96, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}