{"adoption": {"forks": 95, "observed_at": "2026-08-28T04:04:19.111309+00:00", "stars": 1309}, "canonical_url": "https://ross.abutalabs.com/products/reproxy", "card": {"archived": false, "artifact_type": "application", "description": "Simple edge server / reverse proxy", "domain": ["networking", "self-hosted", "web-development", "backend"], "enriched": true, "function": ["proxy", "http-server", "routing", "middleware", "load-testing", "monitoring", "auth", "rate-limiting"], "health_score": 99, "homepage": "http://reproxy.io", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["umputun/reproxy"], "name": "umputun/reproxy", "platform": ["go", "self-hosted", "cross-platform"], "pushed_at": "2026-08-21T00:53:13+00:00", "repo": "umputun/reproxy", "stars": 1309, "tags": ["reverse-proxy", "edge-server", "ssl-termination", "lets-encrypt", "docker-discovery", "consul", "single-binary", "health-check", "virtual-hosts", "devops", "linux", "macos", "docker"], "topics": ["proxy-server", "proxy", "reverse-proxy"], "urls": [], "use_cases": ["reverse proxy for docker containers with automatic discovery", "automatic ssl termination with lets encrypt", "self-hosted edge server for multiple virtual hosts", "load balancing and failover for backend services", "add basic auth and ip access control to internal services", "route http requests to backend services with regex url rewriting", "expose prometheus metrics for proxied routes"], "what_it_is": "Reproxy is a simple edge HTTP(s) server and reverse proxy written in Go, distributed as a single binary or Docker container. It supports multiple discovery providers (docker, static, file, consul catalog), automatic Let's Encrypt SSL termination, health checks, load balancing, and per-route authentication.", "when_to_avoid": ["you need advanced API gateway features like complex transformations or gRPC proxying", "you already run Traefik, nginx, or Caddy and are satisfied with them", "you need a GUI or extensive plugin ecosystem"], "when_to_choose": ["you want a lightweight single-binary reverse proxy with automatic SSL", "you run docker services and want zero-config route discovery", "you need simple proxy rules with regex-based URL rewriting", "you want built-in health checks, failover, and basic auth without a full gateway"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/reproxy", "repo": "umputun/reproxy", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:50:01.751809+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "553679417e4a5bc59601db7fe7d806e8fe8e630bb9aeed5a0036da70f7686e68", "fetched_at": "2026-08-28T04:04:19.111309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/reproxy"}, {"content_hash": "08f8be782f93878240da8c0c9b6b8eef7bfa4bffa1f4002373cd30bd35e872f1", "fetched_at": "2026-08-29T12:08:14.102483+00:00", "kind": "homepage", "missing": false, "url": "http://reproxy.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:50:01.751809+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "553679417e4a5bc59601db7fe7d806e8fe8e630bb9aeed5a0036da70f7686e68", "fetched_at": "2026-08-28T04:04:19.111309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/reproxy"}, {"content_hash": "08f8be782f93878240da8c0c9b6b8eef7bfa4bffa1f4002373cd30bd35e872f1", "fetched_at": "2026-08-29T12:08:14.102483+00:00", "kind": "homepage", "missing": false, "url": "http://reproxy.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:50:01.751809+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "553679417e4a5bc59601db7fe7d806e8fe8e630bb9aeed5a0036da70f7686e68", "fetched_at": "2026-08-28T04:04:19.111309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/reproxy"}, {"content_hash": "08f8be782f93878240da8c0c9b6b8eef7bfa4bffa1f4002373cd30bd35e872f1", "fetched_at": "2026-08-29T12:08:14.102483+00:00", "kind": "homepage", "missing": false, "url": "http://reproxy.io"}], "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:04:19.111309+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:50:01.751809+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "553679417e4a5bc59601db7fe7d806e8fe8e630bb9aeed5a0036da70f7686e68", "fetched_at": "2026-08-28T04:04:19.111309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/reproxy"}, {"content_hash": "08f8be782f93878240da8c0c9b6b8eef7bfa4bffa1f4002373cd30bd35e872f1", "fetched_at": "2026-08-29T12:08:14.102483+00:00", "kind": "homepage", "missing": false, "url": "http://reproxy.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:50:01.751809+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "553679417e4a5bc59601db7fe7d806e8fe8e630bb9aeed5a0036da70f7686e68", "fetched_at": "2026-08-28T04:04:19.111309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/reproxy"}, {"content_hash": "08f8be782f93878240da8c0c9b6b8eef7bfa4bffa1f4002373cd30bd35e872f1", "fetched_at": "2026-08-29T12:08:14.102483+00:00", "kind": "homepage", "missing": false, "url": "http://reproxy.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:50:01.751809+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "553679417e4a5bc59601db7fe7d806e8fe8e630bb9aeed5a0036da70f7686e68", "fetched_at": "2026-08-28T04:04:19.111309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/reproxy"}, {"content_hash": "08f8be782f93878240da8c0c9b6b8eef7bfa4bffa1f4002373cd30bd35e872f1", "fetched_at": "2026-08-29T12:08:14.102483+00:00", "kind": "homepage", "missing": false, "url": "http://reproxy.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.111309+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:50:01.751809+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "553679417e4a5bc59601db7fe7d806e8fe8e630bb9aeed5a0036da70f7686e68", "fetched_at": "2026-08-28T04:04:19.111309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/reproxy"}, {"content_hash": "08f8be782f93878240da8c0c9b6b8eef7bfa4bffa1f4002373cd30bd35e872f1", "fetched_at": "2026-08-29T12:08:14.102483+00:00", "kind": "homepage", "missing": false, "url": "http://reproxy.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:50:01.751809+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "553679417e4a5bc59601db7fe7d806e8fe8e630bb9aeed5a0036da70f7686e68", "fetched_at": "2026-08-28T04:04:19.111309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/reproxy"}, {"content_hash": "08f8be782f93878240da8c0c9b6b8eef7bfa4bffa1f4002373cd30bd35e872f1", "fetched_at": "2026-08-29T12:08:14.102483+00:00", "kind": "homepage", "missing": false, "url": "http://reproxy.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:50:01.751809+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "553679417e4a5bc59601db7fe7d806e8fe8e630bb9aeed5a0036da70f7686e68", "fetched_at": "2026-08-28T04:04:19.111309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/reproxy"}, {"content_hash": "08f8be782f93878240da8c0c9b6b8eef7bfa4bffa1f4002373cd30bd35e872f1", "fetched_at": "2026-08-29T12:08:14.102483+00:00", "kind": "homepage", "missing": false, "url": "http://reproxy.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:50:01.751809+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "553679417e4a5bc59601db7fe7d806e8fe8e630bb9aeed5a0036da70f7686e68", "fetched_at": "2026-08-28T04:04:19.111309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/reproxy"}, {"content_hash": "08f8be782f93878240da8c0c9b6b8eef7bfa4bffa1f4002373cd30bd35e872f1", "fetched_at": "2026-08-29T12:08:14.102483+00:00", "kind": "homepage", "missing": false, "url": "http://reproxy.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 86}, "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": 1984, "days_push": 13, "days_rel": 13, "gap_med": 61.5, "n_releases_24m": 7}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}