{"adoption": {"forks": 1138, "observed_at": "2026-08-28T04:11:06.708137+00:00", "stars": 14305}, "canonical_url": "https://ross.abutalabs.com/products/nginx-admins-handbook", "card": {"archived": false, "artifact_type": "learning-resource", "description": "How to improve NGINX performance, security, and other important things.", "domain": ["web-development", "security", "documentation", "tutorials"], "enriched": true, "function": ["documentation", "security", "developer-tools"], "health_score": 20, "homepage": null, "language": "Shell", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["trimstray/nginx-admins-handbook"], "name": "trimstray/nginx-admins-handbook", "platform": ["self-hosted"], "pushed_at": "2024-11-19T13:58:35+00:00", "repo": "trimstray/nginx-admins-handbook", "stars": 14305, "tags": ["nginx", "handbook", "cheatsheet", "best-practices", "hardening", "performance-tuning", "reverse-proxy", "https", "ssl-tls", "openresty", "devops", "linux", "web-server"], "topics": ["nginx", "nginx-proxy", "nginx-configuration", "security", "performance", "http", "https", "ssllabs", "notes", "cheatsheet", "reference", "handbook", "best-practices", "hacks", "snippets", "tengine", "openresty"], "urls": [], "use_cases": ["harden my nginx configuration against common attacks", "improve nginx reverse proxy performance", "get an A+ on SSL Labs with nginx", "learn nginx configuration tips and gotchas", "find nginx best practices for production servers", "generate secure nginx config snippets", "troubleshoot nginx proxy and TLS issues"], "what_it_is": "A comprehensive community handbook of notes, cheatsheets, and best practices for administering NGINX, covering performance tuning, security hardening, and configuration gotchas. It includes printable hardening cheatsheets, config generators, and curated external resources.", "when_to_avoid": ["you need runnable software rather than documentation", "you use a different web server like Apache, Caddy, or HAProxy", "you need official vendor documentation or paid support"], "when_to_choose": ["you administer or configure NGINX, OpenResty, or Tengine servers", "you want a curated reference of hardening and performance practices", "you need printable cheatsheets or config checklists for nginx"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nginx-admins-handbook", "repo": "trimstray/nginx-admins-handbook", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:12:39.675567+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07f91359176338d56ac72522934bed8e7f14e0a0eb3a60819b9d404308e89291", "fetched_at": "2026-08-28T04:11:06.708137+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trimstray/nginx-admins-handbook"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:12:39.675567+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07f91359176338d56ac72522934bed8e7f14e0a0eb3a60819b9d404308e89291", "fetched_at": "2026-08-28T04:11:06.708137+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trimstray/nginx-admins-handbook"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:12:39.675567+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07f91359176338d56ac72522934bed8e7f14e0a0eb3a60819b9d404308e89291", "fetched_at": "2026-08-28T04:11:06.708137+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trimstray/nginx-admins-handbook"}], "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:11:06.708137+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:12:39.675567+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07f91359176338d56ac72522934bed8e7f14e0a0eb3a60819b9d404308e89291", "fetched_at": "2026-08-28T04:11:06.708137+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trimstray/nginx-admins-handbook"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:12:39.675567+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07f91359176338d56ac72522934bed8e7f14e0a0eb3a60819b9d404308e89291", "fetched_at": "2026-08-28T04:11:06.708137+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trimstray/nginx-admins-handbook"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:12:39.675567+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07f91359176338d56ac72522934bed8e7f14e0a0eb3a60819b9d404308e89291", "fetched_at": "2026-08-28T04:11:06.708137+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trimstray/nginx-admins-handbook"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.708137+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:12:39.675567+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07f91359176338d56ac72522934bed8e7f14e0a0eb3a60819b9d404308e89291", "fetched_at": "2026-08-28T04:11:06.708137+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trimstray/nginx-admins-handbook"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:12:39.675567+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07f91359176338d56ac72522934bed8e7f14e0a0eb3a60819b9d404308e89291", "fetched_at": "2026-08-28T04:11:06.708137+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trimstray/nginx-admins-handbook"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:12:39.675567+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07f91359176338d56ac72522934bed8e7f14e0a0eb3a60819b9d404308e89291", "fetched_at": "2026-08-28T04:11:06.708137+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trimstray/nginx-admins-handbook"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:12:39.675567+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07f91359176338d56ac72522934bed8e7f14e0a0eb3a60819b9d404308e89291", "fetched_at": "2026-08-28T04:11:06.708137+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trimstray/nginx-admins-handbook"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2774, "days_push": 652, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}