{"id":16541553,"url":"https://github.com/codemug/shhttp","last_synced_at":"2025-10-28T14:32:01.302Z","repository":{"id":166429412,"uuid":"169572881","full_name":"codemug/shhttp","owner":"codemug","description":"An http service that can execute commands/shell scripts and manage their jobs","archived":false,"fork":false,"pushed_at":"2020-07-06T18:34:27.000Z","size":29,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-05-17T13:34:37.323Z","etag":null,"topics":["http","remote-control","shell"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codemug.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":"2019-02-07T13:04:55.000Z","updated_at":"2024-06-19T08:04:26.499Z","dependencies_parsed_at":null,"dependency_job_id":"f17550b5-5926-4c88-a78b-8c41a4d29344","html_url":"https://github.com/codemug/shhttp","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemug%2Fshhttp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemug%2Fshhttp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemug%2Fshhttp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemug%2Fshhttp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codemug","download_url":"https://codeload.github.com/codemug/shhttp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219859383,"owners_count":16556036,"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":["http","remote-control","shell"],"created_at":"2024-10-11T18:55:20.141Z","updated_at":"2025-10-28T14:31:56.051Z","avatar_url":"https://github.com/codemug.png","language":"Go","readme":"# shhttp\n\nIt's a small HTTP service written in go that can accept different commands and shell scripts, execute them on the machine it's running on and return the result. It can also manage these commands/shell scripts as jobs. When a command(s)/script(s) is submitted as a job, the response of the HTTP request is returned immediately while the command/script keeps on executing. The service also exposes api to query the state of these jobs. \n\n\n### Installation\n\n\n#### Go based:\n\nYou need to install golang and [dep](https://github.com/golang/dep) on your machine. Clone the repo in your gopath/src and do a:\n```sh\ndep ensure\ngo install\n```\n\n#### Docker:\n\nTo directly run the docker image:\n\n```\ndocker run -p 2112:2112 codemug/shhttp:latest\n```\n\nTo build the image from source:\n\n```\ndocker build -t codemug/shhttp:latest .\n```\n\n### Usage\n\nThe service can be directly launched from the shell, do an `sshttp --help`:\n\n```\n$ shhttp --help\nUsage of shhttp:\n  -alsologtostderr\n    \tlog to standard error as well as files\n  -clean-interval int\n    \tinterval (hours) after which finished jobs are cleaned (default -1)\n  -dir string\n    \tlocation to store the job data (default \"shhttp\")\n  -hostname string\n    \thostname to listen on (default \"0.0.0.0\")\n  -log_backtrace_at value\n    \twhen logging hits line file:N, emit a stack trace\n  -log_dir string\n    \tIf non-empty, write log files in this directory\n  -logtostderr\n    \tlog to standard error instead of files\n  -port int\n    \tport to listen on (default 2112)\n  -stderrthreshold value\n    \tlogs at or above this threshold go to stderr\n  -v value\n    \tlog level for V logs\n  -vmodule value\n    \tcomma-separated list of pattern=N settings for file-filtered logging\n```\nTo run the daemon with defaults, simply do `shhttp`  in the shell. \n\n\n### API: \n\nRead [Wiki](https://github.com/codemug/shhttp/wiki) for API usage.\n\n### Roadmap:\n\nI'm looking forward to add the following:\n1. A kick-ass UI\n2. Ability to run all tasks in a job concurrently\n3. Ability to blacklist/whitelist certain commands using regexes\n4. Ability to run jobs on a schedule\n\n### Contributions:\n\nAre welcome and encouraged.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodemug%2Fshhttp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodemug%2Fshhttp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodemug%2Fshhttp/lists"}