{"repo":"boinkor-net/tsnsrv","free":true,"listed":false,"github":"https://github.com/boinkor-net/tsnsrv","clone":"git clone https://github.com/boinkor-net/tsnsrv.git","description":"A reverse proxy that exposes services on your tailnet (as their own tailscale participants)","language":"Nix","stars":315,"topics":["golang","http","reverse-proxy","tailscale"],"license":"MIT","category":"networking-infra","readme_excerpt":"tsnsrv - a reverse proxy on your tailnet This package includes a little go program that sets up a reverse proxy listening on your tailnet (optionally with a funnel), forwarding requests to a service reachable from the machine running this program. This is directly and extremely inspired by the amazing talk by Xe Iaso about the wonderful things one can do with tsnet . Why use this? First, you'll want to watch the talk linked above. But if you still have that question: Say you run a service that you haven't written yourself (we can't all be as wildly productive as Xe), but you'd still like to benefit from tailscale's access control, encrypted communication and automatic HTTPS cert provisioning? Then you can just run that service, have it listen on localhost or a unix domain socket, then run tsnsrv and have that expose the service on your tailnet (or, as I mentioned, on the funnel). Is this probably full of horrible bugs that will make you less secure or more unhappy? Almost certainly: I have not thought much about request forgery. You're by definition forwarding requests of one degree of trustedness to a thing of another degree of trustedness. This tool uses go's httputil.ReverseProxy , which seems notorious for having bugs in its mildly overly-naive URL path rewriting (especially resulting in an extraneous / getting appended to the destination URL path). So how do you use this? First, you have to have a service you want to proxy to, reachable from the machine that runs tsnsrv.","default_branch":null,"files":null,"tree":[],"storefront":"/r/boinkor-net","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/boinkor-net/tsnsrv/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."}