{"id":13776078,"url":"https://github.com/mricon/rev-proxy-grapher","last_synced_at":"2025-12-29T23:45:07.815Z","repository":{"id":45176474,"uuid":"105920504","full_name":"mricon/rev-proxy-grapher","owner":"mricon","description":"Reverse proxy grapher","archived":false,"fork":false,"pushed_at":"2024-07-28T15:48:43.000Z","size":367,"stargazers_count":400,"open_issues_count":4,"forks_count":42,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-08-03T17:12:29.490Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mricon.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-05T17:39:23.000Z","updated_at":"2024-08-01T17:53:13.000Z","dependencies_parsed_at":"2022-07-13T19:10:56.076Z","dependency_job_id":null,"html_url":"https://github.com/mricon/rev-proxy-grapher","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mricon%2Frev-proxy-grapher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mricon%2Frev-proxy-grapher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mricon%2Frev-proxy-grapher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mricon%2Frev-proxy-grapher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mricon","download_url":"https://codeload.github.com/mricon/rev-proxy-grapher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225031491,"owners_count":17410084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T17:01:59.771Z","updated_at":"2025-12-29T23:45:07.776Z","avatar_url":"https://github.com/mricon.png","language":"Python","funding_links":[],"categories":["\u003ca id=\"01e6651181d405ecdcd92a452989e7e0\"\u003e\u003c/a\u003e工具","Python"],"sub_categories":["\u003ca id=\"e9f97504fbd14c8bb4154bd0680e9e62\"\u003e\u003c/a\u003e反向代理"],"readme":"Reverse proxy grapher\n---------------------\nThis is a useful little tool that will generate a nice graphviz graph\nillustrating your reverse proxy flow. It takes a manually curated YAML\nfile describing the topology of your network, proxy definitions, and\noptionally a collection of nmap output files for additional port/service\ninformation and output a graph in any format supported by graphviz.\n\n.. image:: https://raw.githubusercontent.com/mricon/rev-proxy-grapher/master/examples/graph.png\n   :alt: Example graph produced\n   :width: 100%\n   :align: center\n\nUsage\n~~~~~\nWhen run with --help::\n\n    usage: rev-proxy-grapher.py [-h] --topology TOPOLOGY [--resolve-dns]\n                                [--nmap-xml NMAP_XML [NMAP_XML ...]]\n                                [--limit-ext LIMIT_EXT [LIMIT_EXT ...]]\n                                [--font FONT] [--fontsize FONTSIZE]\n                                [--ranksep RANKSEP] [--out OUT] [--verbose]\n\n    Draw a nice graph of your external to internal proxies\n\n    optional arguments:\n      -h, --help            show this help message and exit\n      --topology TOPOLOGY   File describing the proxies and the topology of your\n                            networks (default: topology.yaml)\n      --resolve-dns         Attempt to resolve DNS for all IPs (default: False)\n      --nmap-xml NMAP_XML [NMAP_XML ...]\n                            Get additional node details from these nmap XML scan\n                            files (default: ())\n      --limit-ext LIMIT_EXT [LIMIT_EXT ...]\n                            Only include these source IPs or networks (default:\n                            ())\n      --font FONT           Font to use in the graph (default: droid sans,dejavu\n                            sans,helvetica)\n      --fontsize FONTSIZE   Font size to use in the graph (default: 11)\n      --ranksep RANKSEP     Node separation between columns (default: 1)\n      --out OUT             Write graph into this file, guessing the output format\n                            by extension (default: graph.png)\n      --verbose             Be more verbose (default: False)\n\nRequirements\n~~~~~~~~~~~~\n- python3-pydotplus\n- python3-PyYAML\n- python3-netaddr\n\nExamples\n~~~~~~~~\nSee output of --help, and examples in the examples directory. To\ngenerate an example graph of your own, simply run::\n\n    rev-proxy-grapher.py --topology examples/topology.yaml\n\nThis will generate graph.png if everything worked well.\n\nIf you want to see what is added by running nmap::\n\n    rev-proxy-grapher.py \\\n        --topology examples/topology.yaml \\\n        --nmap-xml examples/nmap-external.xml \\\n        --out graph-with-nmap.svg\n\nLimitations\n~~~~~~~~~~~\nCurrently, this only supports one level of proxying. For example you cannot\ndefine a haproxy-\u003enginx-\u003elb-cluster relationship, but this will hopefully be\ncoming in the future, as we have a need to get that properly represented\nanyway.\n\nAuthors\n~~~~~~~\n- Konstantin Ryabitsev \u003ckonstantin@linuxfoundation.org\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmricon%2Frev-proxy-grapher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmricon%2Frev-proxy-grapher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmricon%2Frev-proxy-grapher/lists"}