{"id":13582751,"url":"https://github.com/johannesschaefer/webnettools","last_synced_at":"2025-04-06T14:31:22.213Z","repository":{"id":41357127,"uuid":"331758071","full_name":"johannesschaefer/webnettools","owner":"johannesschaefer","description":"Web Net Tools is a web frontend for some useful command line tooling. It provides especially an web frontend for tools like testssl.sh and nmap.","archived":false,"fork":false,"pushed_at":"2023-06-14T22:36:44.000Z","size":1351,"stargazers_count":102,"open_issues_count":11,"forks_count":22,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-05T22:42:14.028Z","etag":null,"topics":["certificates","nmap","testssl","web-frontend"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johannesschaefer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-21T21:21:02.000Z","updated_at":"2024-11-01T17:19:18.000Z","dependencies_parsed_at":"2024-11-05T22:44:13.097Z","dependency_job_id":null,"html_url":"https://github.com/johannesschaefer/webnettools","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannesschaefer%2Fwebnettools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannesschaefer%2Fwebnettools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannesschaefer%2Fwebnettools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannesschaefer%2Fwebnettools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johannesschaefer","download_url":"https://codeload.github.com/johannesschaefer/webnettools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247495882,"owners_count":20948121,"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":["certificates","nmap","testssl","web-frontend"],"created_at":"2024-08-01T15:02:59.667Z","updated_at":"2025-04-06T14:31:20.013Z","avatar_url":"https://github.com/johannesschaefer.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# Web Net Tools\n[![GitHub tag](https://img.shields.io/github/tag/johannesschaefer/webnettools.svg)](https://github.com/johannesschaefer/webnettools/tags)\n[![License](https://img.shields.io/github/license/johannesschaefer/webnettools)](LICENSE)\n[![Docker](https://img.shields.io/docker/pulls/johannesschafer/webnettools)](https://hub.docker.com/r/johannesschafer/webnettools)\n\nWeb Net Tools is a web frontend for some useful command line tooling. It provides especially an web frontend for tools like testssl.sh and nmap.\nCurrently it support the following tools:\n* [testssl.sh](https://github.com/drwetter/testssl.sh)\n* Ping\n* Traceroute\n* [Nmap](https://nmap.org)\n* Dig\n* [MTR](https://www.bitwizard.nl/mtr/)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg align=\"center\" style=\"display: inline\" src=\"docs/testssl.png\" alt=\"test ssl tooling\" height=\"400\" /\u003e\n  \u003cimg align=\"center\" style=\"display: inline\" src=\"docs/ping.png\" alt=\"ping tooling\" height=\"400\" /\u003e\n\u003c/p\u003e\n\nWeb Net Tools is a ready to use Docker image. No additional setup of the mentioned tools is needed.\n\n## Main usage\n\nThis tool was made to make command line tools available in closed networks.\nEspecially the tool testssl.sh has currently no web frontend and similar tools\nin the public internet can't be used in close private networks. Web Net Tools\ncan help you to make such services available for easy use.\n\n## Usage\n\nSimple run the following Docker command:\n```\ndocker run -p 8080:8080 --name webnettools johannesschafer/webnettools\n```\n\n## Configuration options\n\nCurrently you can configure the following aspects\n\n* Available tools - set the Docker environment variable `AVAILABLE_TOOLS` with an set of the following tools to limit the tools shown in the web frontend: `testssl`, `ping`, `traceroute`, `nmap`. E.g. `AVAILABLE_TOOLS=testssl,nmap`.\n\n* Rate limit - Limits the number of calls of a specific tool to a specific target (e.g. host). The value is set in milliseconds between consecutive calls. E.g. set Docker variable `RATE_LIMIT=60000` to limit the calls to one per minute.\n\n* To set additional certificates for the testssl.sh tool, just map the folder with the certificates to the container folder /certs. This directory can be adjusted by the Docker environment variable `CA_DIR` E.g.\n```\ndocker run -p 8080:8080 -v ./localfolderwithcerts:/certs --name webnettools johannesschafer/webnettools\n```\n\n\n* Intro text - set the Docker environment variable `INTRO_TEXT` to show an additional paragraph in front of the tool selection. This can be used to help the users in your specific environment. HTML tags are supported.\n\n## Extension\nTo build the tooling, just run `mvn clean install`. This builds the backend and frontend and creates an Docker image (`johannesschafer/webnettools`).\nTo run the application during development mode, please start the backend with the following command from the root folder.\n```\nmvn compile quarkus:dev\n```\n\nThe frontend needs to be started from the frontend folder with the following command.\n```\nnpm run dev\n```\n\nThe backend listens on port 8080 and the frontend on port 5000 (and connects to the backend on port 8080). During testing, please make sure to disable CORS in your browser.\n\nTo add own tools you have to create an clone or fork of this repository and create an \npayload class for your tool. Via Java annotations to your parameter fields, all\nsettings for an tool are done.\n\nE.g.\n\n```java\nimport io.github.johannesschaefer.webnettools.annotation.*;\nimport lombok.Data;\n\n@Data\n@Tool(name=\"demo\", displayName = \"Demo\", cmd=\"echo\", description=\"Demo for the tooling.\")\npublic class DemoPayload implements Payload {\n    @MainParameter(displayName =\"Main\", description=\"Main parameter for this tool.\")\n    private String main;\n\n    @NumberParam(displayName =\"NumInt\", param=\"num-int\", description=\"number integer demo \", min=0., max=100., step=1.)\n    private Integer numInt = 50;\n\n    @NumberParam(displayName =\"NumDouble\", param=\"num-double\", description=\"number double demo \", min=0.1, max=99.9, step=.1)\n    private Double numDouble = 66.6;\n\n    @StringParam(displayName =\"String\", param=\"string\", description=\"String demo\", paramType = ParameterType.EQUALS)\n    private String string;\n\n    @BooleanParam(displayName =\"Bool\", param=\"bool1\", description=\"boolean demo\")\n    private Boolean bool;\n\n    @EnumParam(displayName = \"color\", param = \"--color\", description=\"color selection\")\n    private Color color;\n\n    @FileParam(displayName = \"file\", param = \"--file-ca\", accept = \"*.abc\", description = \"File upload\" )\n    private String file;\n    \n    @ServerParam(param = \"--optionXXX\", handler = XXXHandler.class)\n    private String xxx;\n    \n    @FixedParam(param = \"--warnings\")\n    private String warnings = \"off\";\n}\n```\n\nThe following parameter type are supported.\n\n* Main parameter - string value used for the main input panel\n* String - simple input for strings\n* Number - simple input for number\n* Boolean - dropdown selection for true/false\n* Enum - dropdown selection for values from the given enum, the enum should have the final parameter value as toString result. See examples in [testssl payload](https://github.com/johannesschaefer/webnettools/tree/main/src/main/java/io/github/johannesschaefer/webnettools/payload/testssl/).\n* File - file upload, web net tools create a temporary file with the content and passes the path to the file\n* Fixed - Fixes parameter with no choice on client side\n* Server side - Special parameter with additional control logic on the server side\n\nPlease check the existing payload under [/src/main/java/io/github/johannesschaefer/webnettools/payload](https://github.com/johannesschaefer/webnettools/tree/main/src/main/java/io/github/johannesschaefer/webnettools/payload) for more examples.\n\nTo make the tool available, please enter the name of the tool in the [Dockerfile](https://github.com/johannesschaefer/webnettools/tree/main/src/main/docker/Dockerfile.jvm) (`ENV AVAILABLE_TOOLS`, used as default for the Docker image) and in the Java file [Producer](https://github.com/johannesschaefer/webnettools/tree/main/src/main/java/io/github/johannesschaefer/webnettools/Producer.java) (ConfigProperty `availableTools`, used at development time).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohannesschaefer%2Fwebnettools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohannesschaefer%2Fwebnettools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohannesschaefer%2Fwebnettools/lists"}