{"id":13778413,"url":"https://github.com/mperlet/pomsky","last_synced_at":"2025-08-25T12:07:20.134Z","repository":{"id":71677148,"uuid":"89678786","full_name":"mperlet/pomsky","owner":"mperlet","description":"python web shell ✌ dependency free","archived":false,"fork":false,"pushed_at":"2017-08-18T17:36:03.000Z","size":9,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T13:53:23.481Z","etag":null,"topics":["autossh","basehttprequesthandler","caddy-examples","curl","dependency-free","downloadmanager","http","oldsnakes","python","system-information","webshell"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mperlet.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-04-28T07:14:34.000Z","updated_at":"2023-09-04T02:17:32.000Z","dependencies_parsed_at":"2023-02-27T21:45:30.578Z","dependency_job_id":null,"html_url":"https://github.com/mperlet/pomsky","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mperlet/pomsky","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mperlet%2Fpomsky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mperlet%2Fpomsky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mperlet%2Fpomsky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mperlet%2Fpomsky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mperlet","download_url":"https://codeload.github.com/mperlet/pomsky/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mperlet%2Fpomsky/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272063205,"owners_count":24866673,"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","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["autossh","basehttprequesthandler","caddy-examples","curl","dependency-free","downloadmanager","http","oldsnakes","python","system-information","webshell"],"created_at":"2024-08-03T18:00:53.658Z","updated_at":"2025-08-25T12:07:20.105Z","avatar_url":"https://github.com/mperlet.png","language":"Python","readme":"# pomsky - lightweight webshell\n[![Build Status](https://travis-ci.org/mperlet/pomsky.svg?branch=master)](https://travis-ci.org/mperlet/pomsky)\n![pylint Score](https://mperlet.github.io/pybadge/badges/4.81.svg)\n\n## What is pomsky?\n\n![Pomsky](http://www.wallpapermaiden.com/image/2017/03/08/dog-yawning-tongue-muzzle-fluffy-animal-14137-thumb.jpg)\n\n\u003e Pomskies are robust like siberian huskies and small like pomeranians.\n\nPomsky is a very simple and rudimentary service to call programms via http.\nTo share files with python you can run `python -m SimpleHTTPServer`.\nTo execute programms or functions call `python pomsky.py`.\n\nPomsky executes user defined programms. The second main feature is the workingfile.\nYou can edit the workingfile via pomsky and use it as input for your scripts or\nprogramms (See *What can i do with pomsky?*).   \n\n#### Warning\n\nThere is **no security** logic in pomsky and it is not at all suitable for production!\nSo if you run pomsky as root (not recommended) all commands will be executed as root.  \n\n## Design Goals\n\n### Dependency Free\nYou need no extra packages, no easy_install no pip. Pomsky use only standard python librarys.\n\n### Python Version Independent\nPomsky is tested from python version 2.3 to 3.6. See `Dockerfile` or `.travis.yml` for more information.\n\n### Lightweight\nPomsky currently has a file size of 12KB.\n\n## What do i need?\n\n\u003e Just python. Install via Github.\n\nThere is no dependency hell with pomksy. You only need python on your system.\n\n## How to try?\n\n```\ncurl https://raw.githubusercontent.com/mperlet/pomsky/master/pomsky.py -o pomsky.py\n```\n\n### Help\n\n```\npython pomsky.py -h\n\npomsky v0.0.1\nusage: python pomsky.py [options]\nAvailable options are:\n  -h        prints help\n  -w\u003cFILE\u003e  sets the workingfile, default: /tmp/pomsky.txt\n  -p\u003cPORT\u003e  changes the port, default: 8888\n  -d\u003cDEBUG\u003e sets the debug command, default: \"du -h *\"\n  -a#\u003cCMD\u003e  sets a command a0 to a9 are free slots to define commands\n            default: \"ls \u003e /dev/null\"\n  -v        verbose mode\n\nExample:\n    python pomsky.py -w\"top.dat\" -a0\"ps -ax \u003e top.dat\" -a1\"ls \u003e top.dat\"\n```\n\n## What can i do with pomsky?\n\nHere some examples what you can do with pomsky.\n\n### Video-Downloader\n\n```\npython pomsky.py -w\"video_links.txt\" -a0\"youtube-dl --batch-file video_links.txt\"\n```\n\nThat creates a simple web ui for [youtube-dl](https://github.com/rg3/youtube-dl).\n\n### Start, stop and edit a service\n\n```\npython pomsky.py -w\"/etc/systemd/my_service.service\" -a0\"systemctl start my_service.service\" -a0\"systemctl stop my_service.service\"\n```\n\n## Where are the tests?\n\nThe tests are based on curl requests/responses. So you need curl ¯\\_(ツ)_/¯.\n\n```\n./test.sh \u0026\u0026 echo \"OK\" || echo \"FAIL\"\n```\n\nYou can test against multiple python versions with docker.\n\n```\n./TestAllPythonVersionsWithDocker.sh\n```\n\n## Fun\n\n### Generate a binary with cython\nGenerate a binary with cython via:\n\n```\n# create C source-code\ncython3 --embed pomsky.py\n\n# compile with clang or gcc\nclang $(python3-config --cflags --ldflags) pomsky.c -o pomsky\n\n# run pomsky\n./pomsky\n```\n## Example setup with caddy and autossh\n\n### pomsky and autossh on raspberry pi at home\n\nStart pomsky on the local machine\n```\npython pomsky.py -p8888 -w\"video_links.txt\" -a0\"youtube-dl --batch-file video_links.txt\"\n```\nStart `autossh` to open a tunnel on a remote server\n```\nautossh -f -M 9999 -p2222 -NC -R 8888:localhost:8888 my@remoteServer.org\n```\n\n### caddy on the remote servier to make pomsky available with https\n[caddy](https://caddyserver.com/)\n\nCaddyfile for pomsky\n```\npomksy.remoteServer.org {\n    proxy / localhost:8888\n}\n```\n\nStart caddy\n```\n/usr/local/bin/caddy -conf=/etc/caddy/Caddyfile\n```\n\n## TODO-List\n\n- [ ] solve encoding problems\n- [ ] enhance test cases\n- [ ] support for [grumpy](https://github.com/google/grumpy)\n- [ ] HTML in workingfile is not escaped (bug or feature?)\n\n## License\n\nMIT License\n\nCopyright (c) 2017 Mathias Perlet\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","funding_links":[],"categories":["\u003ca id=\"faa91844951d2c29b7b571c6e8a3eb54\"\u003e\u003c/a\u003e新添加"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmperlet%2Fpomsky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmperlet%2Fpomsky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmperlet%2Fpomsky/lists"}