// the find
pgrok/pgrok
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.