{"adoption": {"forks": 294, "observed_at": "2026-08-28T04:06:19.667867+00:00", "stars": 2156}, "canonical_url": "https://ross.abutalabs.com/products/f8x", "card": {"archived": false, "artifact_type": "cli-tool", "description": "红/蓝队环境自动化部署工具 | Red/Blue team environment automation deployment tool", "domain": ["security", "penetration-testing", "developer-tools"], "enriched": true, "function": ["security", "configuration-management", "deployment", "developer-tools", "cli"], "health_score": 77, "homepage": "https://f8x.wgpsec.org", "language": "Shell", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["ffffffff0x/f8x"], "name": "ffffffff0x/f8x", "platform": ["cli"], "pushed_at": "2026-07-25T21:19:17+00:00", "repo": "ffffffff0x/f8x", "stars": 2156, "tags": ["red-team", "blue-team", "ctf", "bash-script", "pentest", "environment-setup", "vps-provisioning", "devops", "command-line", "linux"], "topics": ["bash-script", "vps", "pentest-tool", "bash", "ffffffff0x", "shell", "linux", "ctf", "ctf-tools"], "urls": [], "use_cases": ["set up a pentest toolkit on a fresh VPS with one command", "deploy CTF tools like pwntools and z3 before a competition", "provision blue team defense tools such as fail2ban and rkhunter", "quickly install dev environments with Python, Go, Docker, and Node.js", "bootstrap security tooling in GitHub Actions or GitLab CI pipelines", "deploy C2 infrastructure like CobaltStrike with frp and RedGuard"], "what_it_is": "f8x is a Bash-based automation deployment script that installs 100+ security and development tools for red team, blue team, CTF, and cloud-native environments on Linux hosts. It auto-detects the OS and dependencies, offers 108+ pluggable flags, and supports non-interactive CI/CD runs.", "when_to_avoid": ["you are on Windows or macOS natively", "you need declarative, idempotent infrastructure-as-code rather than a shell script", "you require strict auditability of every installed package"], "when_to_choose": ["you need to provision security tooling on many Linux hosts quickly", "you want a zero-dependency single-script installer for pentest or CTF environments", "you run CI pipelines that need non-interactive tool installation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/f8x", "repo": "ffffffff0x/f8x", "role": "main", "score": 65}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:50:27.765982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63320b1bb25120770b07e4a320892e9ed7bf61269b486c5ac19ad91e5e66b76a", "fetched_at": "2026-08-28T04:06:19.667867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ffffffff0x/f8x"}, {"content_hash": "fcf3cb806e6a1f3384b74a75b50b0805ebf37e5e4a22e3636dd9e5f4245306f6", "fetched_at": "2026-08-29T10:30:29.808403+00:00", "kind": "homepage", "missing": false, "url": "https://f8x.wgpsec.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:50:27.765982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63320b1bb25120770b07e4a320892e9ed7bf61269b486c5ac19ad91e5e66b76a", "fetched_at": "2026-08-28T04:06:19.667867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ffffffff0x/f8x"}, {"content_hash": "fcf3cb806e6a1f3384b74a75b50b0805ebf37e5e4a22e3636dd9e5f4245306f6", "fetched_at": "2026-08-29T10:30:29.808403+00:00", "kind": "homepage", "missing": false, "url": "https://f8x.wgpsec.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:50:27.765982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63320b1bb25120770b07e4a320892e9ed7bf61269b486c5ac19ad91e5e66b76a", "fetched_at": "2026-08-28T04:06:19.667867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ffffffff0x/f8x"}, {"content_hash": "fcf3cb806e6a1f3384b74a75b50b0805ebf37e5e4a22e3636dd9e5f4245306f6", "fetched_at": "2026-08-29T10:30:29.808403+00:00", "kind": "homepage", "missing": false, "url": "https://f8x.wgpsec.org"}], "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:19.667867+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:50:27.765982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63320b1bb25120770b07e4a320892e9ed7bf61269b486c5ac19ad91e5e66b76a", "fetched_at": "2026-08-28T04:06:19.667867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ffffffff0x/f8x"}, {"content_hash": "fcf3cb806e6a1f3384b74a75b50b0805ebf37e5e4a22e3636dd9e5f4245306f6", "fetched_at": "2026-08-29T10:30:29.808403+00:00", "kind": "homepage", "missing": false, "url": "https://f8x.wgpsec.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:50:27.765982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63320b1bb25120770b07e4a320892e9ed7bf61269b486c5ac19ad91e5e66b76a", "fetched_at": "2026-08-28T04:06:19.667867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ffffffff0x/f8x"}, {"content_hash": "fcf3cb806e6a1f3384b74a75b50b0805ebf37e5e4a22e3636dd9e5f4245306f6", "fetched_at": "2026-08-29T10:30:29.808403+00:00", "kind": "homepage", "missing": false, "url": "https://f8x.wgpsec.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:50:27.765982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63320b1bb25120770b07e4a320892e9ed7bf61269b486c5ac19ad91e5e66b76a", "fetched_at": "2026-08-28T04:06:19.667867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ffffffff0x/f8x"}, {"content_hash": "fcf3cb806e6a1f3384b74a75b50b0805ebf37e5e4a22e3636dd9e5f4245306f6", "fetched_at": "2026-08-29T10:30:29.808403+00:00", "kind": "homepage", "missing": false, "url": "https://f8x.wgpsec.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.667867+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:50:27.765982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63320b1bb25120770b07e4a320892e9ed7bf61269b486c5ac19ad91e5e66b76a", "fetched_at": "2026-08-28T04:06:19.667867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ffffffff0x/f8x"}, {"content_hash": "fcf3cb806e6a1f3384b74a75b50b0805ebf37e5e4a22e3636dd9e5f4245306f6", "fetched_at": "2026-08-29T10:30:29.808403+00:00", "kind": "homepage", "missing": false, "url": "https://f8x.wgpsec.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:50:27.765982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63320b1bb25120770b07e4a320892e9ed7bf61269b486c5ac19ad91e5e66b76a", "fetched_at": "2026-08-28T04:06:19.667867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ffffffff0x/f8x"}, {"content_hash": "fcf3cb806e6a1f3384b74a75b50b0805ebf37e5e4a22e3636dd9e5f4245306f6", "fetched_at": "2026-08-29T10:30:29.808403+00:00", "kind": "homepage", "missing": false, "url": "https://f8x.wgpsec.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:50:27.765982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63320b1bb25120770b07e4a320892e9ed7bf61269b486c5ac19ad91e5e66b76a", "fetched_at": "2026-08-28T04:06:19.667867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ffffffff0x/f8x"}, {"content_hash": "fcf3cb806e6a1f3384b74a75b50b0805ebf37e5e4a22e3636dd9e5f4245306f6", "fetched_at": "2026-08-29T10:30:29.808403+00:00", "kind": "homepage", "missing": false, "url": "https://f8x.wgpsec.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:50:27.765982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "63320b1bb25120770b07e4a320892e9ed7bf61269b486c5ac19ad91e5e66b76a", "fetched_at": "2026-08-28T04:06:19.667867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ffffffff0x/f8x"}, {"content_hash": "fcf3cb806e6a1f3384b74a75b50b0805ebf37e5e4a22e3636dd9e5f4245306f6", "fetched_at": "2026-08-29T10:30:29.808403+00:00", "kind": "homepage", "missing": false, "url": "https://f8x.wgpsec.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "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": 2050, "days_push": 39, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 65, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}