Free, source-available ngrok alternative

Expose localhost to the internet.

Give your Next.js, Vite, or local API server a public HTTPS URL with one Bore tunnel. Use persistent subdomains to test webhooks, OAuth callbacks, and mobile apps without changing your local development server.

curl -sL https://bore.dk/install.sh | bash

Start with: share a local Next.js server, expose a Vite dev server, webhook testing on localhost, test a local app on mobile, expose a local API, or compare Bore with ngrok.

Namespaces

Managed

Telemetry

SQLite-backed

Tunnel mode

Persistent

Terminal

$ bore up 3000

Authenticating with Bore control plane...

Namespace attached: pia

Public URL: https://pia.bore.dk

Status: persistent

Control Plane

Authenticated Bore session issued.

SQLite-backed account state is active.

Telemetry

Request stream connected.

Namespace and host metrics update live.

Developer Workflows

One public URL for the local work you already do.

Share framework dev servers, receive webhook callbacks, connect mobile clients to local APIs, and manage persistent HTTPS subdomains from one control plane.

Live Console

See tunnels resolve in one authenticated dashboard.

A dashboard view for namespace health, child hosts, request stats, and tunnel activity without bouncing between tools.

Dashboard Preview

Namespace inventory

Live

pia

pia.bore.dk

Active

Claims

3

Hosts

5

RPM

1.2k

Tunnel claimed from macbook-pro
api.pia.bore.dk cert active
Traffic cleaned 34 seconds ago

Public HTTPS

Expose any localhost port at a public HTTPS URL.

Point Bore at a Next.js, Vite, or local API port and give browsers, mobile devices, and external services a URL they can reach.

One tunnel, real workflows
Share a local Next.js or Vite server
Receive Stripe or GitHub webhooks
Open the same dev build on a mobile device

Persistence

Keep the same HTTPS subdomain between test sessions.

Persistent tunnels keep callback URLs and shared development links stable when you pause and resume local work.

08:41Tunnel restored
09:03Namespace reassigned
09:03Traffic resumed

Managed Namespaces

Persistent HTTPS URLs without fragile manual routing.

Reserve `pia.bore.dk`, attach HTTPS child hosts like `api.pia.bore.dk`, and keep tunnel ownership explicit across the team.

Namespace Rules

First-level child hosts like `api.pia.bore.dk` are persisted. Deeper trees are intentionally rejected to keep routing predictable.

Source AvailablePublicly reviewable

Source available. Built in public.

Bore ships the web control plane, the local agent, and deployment primitives in a public repository. Review the stack, file issues, or fork and modify the code within the terms of the BUSL-1.1 license.

Built by

Casper Fenger Jensen

Founder-facing trust signal for a developer tool is simple: public code, a real person, and a direct path to the builder.

Meet the founder