{"repo":"degola/punchmole","free":true,"listed":false,"github":"https://github.com/degola/punchmole","clone":"git clone https://github.com/degola/punchmole.git","description":"Punchmole is a simple tool to give your locally running HTTP servers a public URL and is an easy to self-host alternative to `ngrok` and/or `tunnelmole`.","language":"JavaScript","stars":19,"topics":[],"license":"GPL-2.0","category":"self-hosted-apps","readme_excerpt":"Punchmole Punchmole is a simple tool to give your locally running HTTP(s) servers a public URL and is an easy to self-host alternative to ngrok and/or tunnelmole . Implemented in Node with the goal to have as much flexibility and as little dependencies and code as possible. The project has 2 components: - Client: runs locally to connect a given HTTP endpoint running locally (or in a non-public network). - Server: deployable on a server, behind a reverse proxy connects to the outside world and any domain it is accessible from This service allows streaming of origin request (e.g. file-uploads, other than Tunnelmole which buffers request data completely in memory). The service also supports Websocket proxying depending on websocket endpoint url path. Next.js hot reload / HMR is fully supported. Punchmole correctly forwards WebSocket text and binary frames (including Next.js / next/hmr and / next/webpack-hmr ) and preserves subprotocols, so next dev works through the public tunnel the same way it does on localhost. Client & Server are both solely configurable via ENV-variables. Status This project has been experimental for quite a while but I have used it extensively for heavy-duty websocket applications as well as larger webapps developped and even partially deployed to a larger audience without issues. I deployed the punchmole server on Kubernetes with 20 replicas with thousands of requests per second. Server The server opens a single HTTP port to which the Punchmole client con","default_branch":null,"files":null,"tree":[],"storefront":"/r/degola","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/degola/punchmole/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}