# amalshaji/portr

Expose local http, tcp or websocket connections to the public internet

Repository: https://github.com/amalshaji/portr
Canonical: https://ross.abutalabs.com/products/portr
Homepage: https://portr.dev
Language: Go
License: AGPL-3.0
License Family: copyleft
Topics: ngrok-alternative, ssh-tunnel, tunneling, golang, python, shadcn-svelte, svelte, cli, open-source, developer-tools, http, reverse-tunnel, tcp, ngrok-replacement, self-hosted, shadcn-ui
Last push: 2026-08-16T08:08:19+00:00

## Health v2 (maintenance only)
Score: 92/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 98, release rhythm 97, longevity 72
- inputs: {"age_days": 1016, "days_push": 17, "days_rel": 21, "gap_med": 10, "n_releases_24m": 40}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3180, forks 114 (observed 2026-08-28T04:07:47.805036+00:00)

## What it is
Portr is a self-hosted open-source tunnel solution that exposes local HTTP, TCP, and WebSocket connections to the public internet using SSH remote port forwarding. It includes a CLI client, a local request inspector with replay capabilities, and an admin dashboard for team and connection management.

## Use cases
- expose local dev server on a public url
- self-hosted ngrok alternative
- debug stripe webhooks locally
- inspect and replay http requests
- share localhost tunnel with team
- tunnel tcp and websocket connections
- test webhook integrations without deploying

## When to choose
- you want a self-hosted ngrok alternative you fully control
- your small team needs to expose development servers on public URLs
- you need request inspection and replay for webhook debugging
- you want tunnel access management with teams and an admin dashboard

## When to avoid
- you need a production-grade edge or high-traffic ingress
- you don't want to operate your own tunnel server infrastructure
- you just need a quick one-off tunnel without self-hosting setup

## Facets
- artifact type: cli-tool
- maturity: active
- function: http-server, proxy, websocket, cli, developer-tools, self-hosted, logging
- domain: developer-tools, web-development, networking, self-hosted
- platform: windows, self-hosted, go, cli
- tags: tunneling, ngrok-alternative, ssh-tunnel, reverse-tunnel, request-inspector, webhook-debugging, localhost-exposure, team-management, command-line, linux, macos, docker

## Member repositories
- amalshaji/portr (main) score 92

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:47.805036+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:25:05.224681+00:00, confidence not recorded.
  - readme: https://github.com/amalshaji/portr (fetched 2026-08-28T04:07:47.805036+00:00, sha 98cf834273ee)
  - homepage: https://portr.dev (fetched 2026-08-29T09:39:19.935876+00:00, sha a2b9b7acfd7f)
  - site_page: https://portr.dev/docs (fetched 2026-08-29T09:39:19.939334+00:00, sha b95f369cc4f7)
  - site_page: https://portr.dev/docs/server (fetched 2026-08-29T09:39:19.941086+00:00, sha 8693ae0cb5d6)
  - site_page: https://portr.dev/docs/getting-started (fetched 2026-08-29T09:39:19.942858+00:00, sha eb783a122fa3)
  - site_page: https://portr.dev/docs/client/http-tunnel (fetched 2026-08-29T09:39:19.944498+00:00, sha 4e31acf3eec6)
  - site_page: https://portr.dev/docs/client/request-replay (fetched 2026-08-29T09:39:19.946174+00:00, sha c85416e118b5)
- Data as of 2026-08-30T08:39:29.467469+00:00.
