finds.dev← search

// the find

pgrok/pgrok

★ 3,545 · Go · MIT · updated Jun 2026

Poor man's ngrok - a multi-tenant HTTP/TCP reverse tunnel solution through SSH remote port forwarding

pgrok is a self-hosted ngrok replacement for small teams that need stable public URLs for local development environments. It tunnels HTTP and TCP traffic through SSH remote port forwarding, gated by your own OIDC SSO provider. Meant for teams where non-engineers also need to expose local services — not for production.

Uses the standard SSH protocol under the hood, so you can skip the pgrok client entirely and tunnel with vanilla `ssh -R` if you prefer. The OIDC SSO gate is genuinely useful for teams that don't want random internet access to developer tunnels. Dynamic HTTP forwarding rules (routing `/api` to one port, everything else to another) solve a real pain point that most alternatives ignore. Integration tests are present and cover the actual tunnel flow, not just unit-level mocks.

TCP port assignment is 'semi-stable' — you get the same port when it's still available, which is fragile if the server restarts or someone else grabs it. There's no built-in TLS termination; the README punts this to Caddy, which means one more moving part admins have to wire up and maintain. The admin UI is minimal (a single-page React app that just shows your token and URL), so there's no visibility into active tunnels, traffic, or usage across the team. Activity on the repo has slowed noticeably — the last meaningful feature work predates the most recent commits, which are mostly dependency bumps.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →