Share a local port over HTTPS
One command puts the app on your machine at a public address. Stop the command and the link is gone.
$ pb preview 3000
Preview ready
https://quiet-river-lantern-4821.pprbt.app -> http://127.0.0.1:3000
Press Ctrl+C to stop - 1
pb checks that something answers on port 3000 before it publishes anything.
Access and expiry
A link is public unless you say otherwise. Both choices are a flag on the same command.
| You run | Who gets in |
|---|---|
pb preview 3000 | Anyone with the link. No account, no Paperboat on their side. |
pb preview 3000 --private | Only you, from machines signed in to your account. Everyone else is refused. |
pb preview 3000 --team | Teammates you granted this preview to, from their own signed-in machines. |
| How you run it | How long it lives |
|---|---|
| In the foreground | Until you press Ctrl+C. Press b to hand it to the background, or t to turn it into a tunnel. |
--ttl 2h | Stops by itself after the time you give. |
--background | Returns your prompt. Lasts 30 minutes unless you set --ttl, up to 24 hours. Keeps its address through a Paperboat restart or update. |
| After a reboot | Gone. A preview is never restored after a reboot; that is what a tunnel is for. |
What a preview can serve
A dev server, a built site, a socket. Run pb preview with no argument and it walks you through the choices.
pb preview list shows what is running and pb preview stop ends one. The console shows the same list, with
each preview's expiry time.
$ pb preview 3000 $ pb preview http://127.0.0.1:8080 $ pb preview ./dist $ pb preview unix:///tmp/app.sock - 1
A port on this machine.
- 2
A full origin URL.
- 3
A folder of static files. Dotfiles and directory listings are not served.
- 4
A Unix socket.
Request inspector
Turn on capture and every request is kept on your machine, headers and bodies included. Replay one after you fix the handler.
The web console shows the same list live. Free on every plan.
$ pb preview inspect <preview> --enable --body $ pb preview inspect <preview> $ pb preview replay <preview> <capture-id> - 1
Start recording requests, with bodies.
- 2
List what came in: method, path, status, how long it took.
- 3
Send one recorded request to your app again.
Where the encryption ends
HTTPS ends at our edge, which routes the request to your machine, encrypted. Run your own edge to own that step.
Public link
A preview or tunnel is for people without Paperboat. Their HTTPS ends at the edge, which forwards the request to your machine.
- Encrypted between your machines. Nothing in the middle can read it.
- HTTPS. Encrypted to the edge, which reads the request to route it.
Any browser connects over HTTPS to the edge. The edge forwards the request to your machine over an encrypted connection.
Questions
Is this an ngrok alternative?
For sharing a local port over HTTPS, yes: one command, a stable generated address, request inspection and replay. ngrok does much more on the gateway side (traffic policies, OAuth in front of your app, load balancing). The comparison has the feature table and both price lists.
Is a preview end-to-end encrypted?
No, and it cannot be: visitors use a normal browser, so their HTTPS ends at our edge, which then forwards the request to your machine over an encrypted connection. Use private access when both ends are your own machines.
What does the address look like, and does it change?
Three words and four digits under pprbt.app, generated for you and never reused for anyone else. It stays the same for the life of the preview. For a name of your own, add --domain demo.example.com under a domain you verified.
Do WebSockets and HTTP/3 work?
Yes. Previews carry HTTP/1.1, HTTP/2, HTTP/3 and WebSocket, including large uploads and downloads.
How many previews can I run?
100 previews and tunnels at once on Free, 1,000 on Pro, no limit on Team. Stopped ones do not count. Requests through our edge use your plan's bandwidth: 5 GB a month on Free.
Where are inspected requests stored?
On your machine, in a bounded buffer. The console reads them from your machine over an end-to-end encrypted channel; our servers never hold them.
Related
Start with the machine in front of you
Install Paperboat here, then on a second machine. Free for personal use, no card needed.
$ curl -fsSL https://get.pprbt.dev/install | bash > irm https://get.pprbt.dev/install.ps1 | iex