introduction
expose local services to the internet through websocket connections
🕳️ funnel
a tunneling solution built with go
expose local services to the internet through websocket connections
⚠️ disclaimer
this tunneling solution is intended for development and testing purposes. while functional, it may not include all security features required for production environments.
funnel is a lightweight tunneling solution that allows you to expose your local development services to the internet. it works by creating a persistent websocket connection between a client on your machine and a remote server.
key features
- http tunneling: expose any local http service with a single command
- secure connections: supports tls with let's encrypt for secure tunnels
- custom subdomains: use your own memorable tunnel ids
- automatic reconnection: client automatically reconnects if connection is lost
- cross-platform: single binary for linux, macos, and windows
how it works
the flow is straightforward:
- the funnel client starts on your local machine and connects to the funnel server
- the funnel server registers a unique public url for your tunnel
- when a request comes in, the server proxies it through the websocket to the client
- the client forwards the request to your local service
- the response travels back through the same path
getting started
🚀 quick start
install and create your first tunnel
📦 self-hosting
deploy your own server
🗺️ roadmap
see what's coming next
Last updated: July 18, 2025
by karol-broda