{"id":22520556,"url":"https://github.com/gnh1201/caterpillar","last_synced_at":"2025-06-25T14:38:18.931Z","repository":{"id":60996511,"uuid":"546186463","full_name":"gnh1201/caterpillar","owner":"gnh1201","description":"Caterpillar Proxy - The simple web debugging proxy (formerly, php-httpproxy)","archived":false,"fork":false,"pushed_at":"2024-10-24T22:15:14.000Z","size":5042,"stargazers_count":19,"open_issues_count":9,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-24T23:12:14.548Z","etag":null,"topics":["aeiou","bot-detection","captcha","firewall","forward-proxy","hijacking","http-proxy","https-proxy","k-anonymity","mastodon","mitm","network-filtering","parasitic-computing","proxy","reverse-proxy","spam-detection","ssl","tls","waf","web-debugging-proxy"],"latest_commit_sha":null,"homepage":"https://catswords.social/@catswords_oss","language":"Python","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/gnh1201.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"gnh1201","open_collective":"welsonjs","liberapay":"catswords","custom":["https://www.buymeacoffee.com/catswords","https://toss.me/catswords"],"patreon":"catswords","ko_fi":"catswords"}},"created_at":"2022-10-05T17:16:30.000Z","updated_at":"2024-10-24T22:15:17.000Z","dependencies_parsed_at":"2024-04-05T09:39:18.000Z","dependency_job_id":"25873a67-93fc-41b4-b274-b660c24d2e48","html_url":"https://github.com/gnh1201/caterpillar","commit_stats":null,"previous_names":["gnh1201/caterpillar"],"tags_count":72,"template":false,"template_full_name":null,"purl":"pkg:github/gnh1201/caterpillar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnh1201%2Fcaterpillar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnh1201%2Fcaterpillar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnh1201%2Fcaterpillar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnh1201%2Fcaterpillar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gnh1201","download_url":"https://codeload.github.com/gnh1201/caterpillar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnh1201%2Fcaterpillar/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261892969,"owners_count":23226020,"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":["aeiou","bot-detection","captcha","firewall","forward-proxy","hijacking","http-proxy","https-proxy","k-anonymity","mastodon","mitm","network-filtering","parasitic-computing","proxy","reverse-proxy","spam-detection","ssl","tls","waf","web-debugging-proxy"],"created_at":"2024-12-07T05:07:54.149Z","updated_at":"2025-06-25T14:38:18.487Z","avatar_url":"https://github.com/gnh1201.png","language":"Python","funding_links":["https://github.com/sponsors/gnh1201","https://opencollective.com/welsonjs","https://liberapay.com/catswords","https://www.buymeacoffee.com/catswords","https://toss.me/catswords","https://patreon.com/catswords","https://ko-fi.com/catswords"],"categories":[],"sub_categories":[],"readme":"# Caterpillar Proxy (Songchoongi Project)\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fgnh1201%2Fcaterpillar.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fgnh1201%2Fcaterpillar?ref=badge_shield)\n[![DOI 10.5281/zenodo.13346533](https://zenodo.org/badge/DOI/10.5281/zenodo.13346533.svg)](https://doi.org/10.5281/zenodo.13346533)\n[![ChatGPT available](https://img.shields.io/badge/ChatGPT-74aa9c?logo=openai\u0026logoColor=white)](#)\n[![slideshare.net available](https://img.shields.io/badge/SlideShare-black?logo=slideshare)](https://www.slideshare.net/slideshow/2024-caterpillar-project-in-2024-korea-oss-contest/273031732)\n[![Discord chat](https://img.shields.io/discord/359930650330923008?logo=discord)](https://discord.gg/9VVTHpfsVW)\n[![Open to work](https://img.shields.io/badge/%23-OPENTOWORK-green)](https://github.com/gnh1201/welsonjs/discussions/167)\n\nCaterpillar Proxy (Songchoongi Project) - The simple web debugging proxy (formerly, php-httpproxy)\n\n![A cover image: Caterpillar on a tree looking at a rocket flying over the clouds](assets/img/cover.png)\n\nYou can connect all physical and logical channels with communication capabilities to the web!\n\nImagine various means such as time machines, satellites, quantum technology, sound, light, the Philosopher's Stone, or Excalibur, just like in science fiction movies! Caterpillar Proxy supports the implementation of extensions for Connectors, Filters, and RPC methods to bring your imagination to life.\n\n:rocket: [Open the Caterpillar Proxy Web Console](https://pub-1a7a176eea68479cb5423e44273657ad.r2.dev/console.html)\n\n## Use cases\n* [Build a network tunnel using Python and the LAMP(PHP) stack (qiita.com)](https://qiita.com/gnh1201/items/40f9350ca6d308def6d4)\n* [K-Anonymity for Spam Filtering: Case with Mastodon, and Misskey (qiita.com)](https://qiita.com/gnh1201/items/09f4081f84610db3a9d3)\n* [File Upload Vulnerability Attack Test (Caterpillar Proxy) (youtu.be) ](https://youtu.be/sPZOCgYtLRw)\n* [Real-time processing of emergency disaster sensor data (e.g., fire detection).](https://catswords.social/@catswords_oss/114016647285923011)\n\n## How it works\n\n### Basic structure\n```\n* You \u003c-\u003e Proxy client (Python) \u003c-\u003e Parasitized proxy server (Optional, PHP/LAMP) \u003c-\u003e On the Web\n* You \u003c-\u003e Proxy client (Python) \u003c-\u003e Connector extensions (Optional, Python) \u003c-\u003e On the Web\n```\n\nFor example, build a simple web debugging proxy on the shared servers.\n\n### Stateful mode\nThis project supports two modes of connection. The default is stateless. You can use the stateful mode to avoid being constrained by transfer capacity limits. See the [Stateful mode (catswords-oss.rdbl.io)](https://catswords-oss.rdbl.io/1155378128/5211324242).\n\n### Connector extensions\nThis project supports the implementation of Connector extensions. The provided basic examples include implementations of web archives (caches) and serial communication as Connector extensions. Go to the [caterpillar-plugins repository (github.com)](https://github.com/gnh1201/caterpillar-plugins)\n\n## (Optional) Before to use\nIf you have a server that ***will be parasitized*** and you want to proxy it, you should upload the `index.php` file to a shared server. The index.php file is located in the `assets/php` directory within this repository.\n\n## How to use\n1. Write a file `.env`(Linux) or `settings.ini`(Windows). Like this:\n\n```\n[settings]\nCONNECTION_TIMEOUT=1\nPORT=5555\nSERVER_URL=localhost\nSERVER_CONNECTION_TYPE=\nCA_KEY=ca.key\nCA_CERT=ca.crt\nCERT_KEY=cert.key\nCERT_DIR=certs/\nOPENSSL_BINPATH=openssl\nCLIENT_ENCODING=utf-8\nUSE_EXTENSIONS=wayback.Wayback,bio.PyBio\n```\n\n***Note***: If using Caterpillar Proxy (Python) alone, set `SERVER_URL=localhost`. Otherwise, use the endpoint URL of the Worker script (PHP or Java), e.g., `SERVER_URL=http://example.org`.\n\n- (Optional) Create a certificate for SSL decryption\n\n```bash\nchmod +x configure_certs.sh\n./configure_certs.sh\nsudo apt-get install -y ca-certificates\nsudo cp ca.crt /usr/local/share/ca-certificates/caterpillar-ca.crt\nsudo update-ca-certificates\n```\n\n2. Run `python3 server.py` and set HTTP(S) proxy in your web browser (e.g. Firefox, Chromium)\n\n3. Test [100MB](http://speed.hetzner.de/100MB.bin)/[SSL](https://speed.hetzner.de/100MB.bin), [1GB](http://speed.hetzner.de/1GB.bin)/[SSL](https://speed.hetzner.de/1GB.bin), [10GB](http://speed.hetzner.de/10GB.bin)/[SSL](http://speed.hetzner.de/10GB.bin) download and check the speed.\n\n3. Enjoy it\n\n4. (Optional) With [Cloudflare](https://cloudflare.com), we can expect to accelerate the 4x speed and reduce the network stuck.\n\n## Extensions\n* [Web Console](https://pub-1a7a176eea68479cb5423e44273657ad.r2.dev/console.html)\n* Fediverse (e.g., Mastodon): See the [Fediverse (catswords-oss.rdbl.io)](https://catswords-oss.rdbl.io/1155378128/3821602484).\n* Wayback (Private browsing with Google or Wayback cache): See the [Wayback (catswords-oss.rdbl.io)](https://catswords-oss.rdbl.io/1155378128/6994492654)\n\n## Thanks to\n* Pan Art by [@yeohangdang@i.peacht.art](#): [Image File](assets/img/logo.png)\n* [GitHub Sponsors](https://github.com/sponsors/gnh1201)\n\n## Contributors\n\u003ca href=\"https://github.com/gnh1201/caterpillar/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=gnh1201/caterpillar\" alt=\"Contributors\" /\u003e\n\u003c/a\u003e\n\n## Our roadmap\n![Roadmap image](assets/img/roadmap.png)\n\n## Report abuse\n- abuse@catswords.net\n- [GitHub Security Advisories (gnh1201/caterpillar)](https://github.com/gnh1201/caterpillar/security)\n\n## Join the community\n- ActivityPub [@catswords_oss@catswords.social](https://catswords.social/@catswords_oss)\n- XMPP [catswords@conference.omemo.id](xmpp:catswords@conference.omemo.id?join)\n- [Join Catswords OSS on Microsoft Teams (teams.live.com)](https://teams.live.com/l/community/FEACHncAhq8ldnojAI)\n- [Join Catswords OSS #caterpillar on Discord (discord.gg)](https://discord.gg/9VVTHpfsVW)\n\n## Special channels\n- [A paid consultation channel (m.expert.naver.com)](https://m.expert.naver.com/mobile/expert/product/detail?storeId=100051156\u0026productId=100144540) is available for Korean (한국어) region.\n- [Join the private operations channel (forms.gle)](https://forms.gle/ZKAAaGTiGamksHoo8) is available for all regions.\n\n## License\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fgnh1201%2Fcaterpillar.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fgnh1201%2Fcaterpillar?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnh1201%2Fcaterpillar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnh1201%2Fcaterpillar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnh1201%2Fcaterpillar/lists"}