Portr
Open source ngrok alternative designed for teams. Tunnel http, tcp or websocket connections.
- 2.4k
- GitHub stars
- Free
- Price
- Jan 15, 2025
- Updated
Overview
Portr is an open-source, self-hosted tunnel for development teams and an alternative to ngrok. It exposes local HTTP, TCP and WebSocket services on public URLs, with the server, team access, request history and replay running on infrastructure the team controls. Servers can use SSH or WebSocket as the client-to-server transport. The project recommends it for exposing development servers, not for use alongside production.
The tunnel server and client are written in Go. Portr's admin dashboard for managing teams, users and connections, and the client's local inspector UI, are React 19 apps built with Vite, Tailwind CSS v4 and Radix-based shadcn/ui components.
Features
- HTTP, TCP and WebSocket tunnels: Public HTTPS URLs that forward to local services, with WebSocket upgrades over HTTP tunnels.
- Reserved subdomains: Pin a tunnel to a subdomain with
-sor--subdomain. - Local inspector: A dashboard at
localhost:7777to inspect requests, replay them as-is or edited, and debug WebSocket frames. - CLI request logs:
portr logsqueries stored request data, with URL filtering and JSON output. - Admin dashboard: Team, user and connection management for the self-hosted server.
- Deploy options: One-click Railway deploy, Docker Compose and setup guides for server and client.
- Agent skill: A
portr-cliskill for Claude Code and Codex.
Tech stack
- Go (server and client)
- React 19, Vite 7, TypeScript
- Tailwind CSS v4, Radix UI, shadcn/ui
Getting started
portr http 9000