GhostlyShare for localhost previews
GhostlyShare share localhost on Windows or Linux
GhostlyShare is a small desktop app for Windows and Ubuntu/Debian Linux that finds local web apps and turns them into public Cloudflare-powered links without deploys, DNS setup, or browser-tab chaos.

Product idea
A public link for the app already running on your machine
Start a dev server, a local dashboard, a webhook receiver, or a small API. GhostlyShare notices it, shows the port, and gives you a Start button. One click later you have a public URL you can open, copy, and share.
Supported frameworks
If it runs as a local web app, GhostlyShare can usually share it
GhostlyShare does not need framework plugins. It discovers and forwards local HTTP, HTTPS, WebSocket, long-polling, streaming, and API traffic, so the common development stacks fit the same simple Start button workflow.
React, Vite, Next.js
Share hot-reload previews and frontend dev servers on ports like 3000, 5173, or similar local development ports.
ASP.NET Core, Blazor Server, Blazor WebAssembly
Forward framework assets, SignalR-style traffic, long polling, redirects, cookies, and local HTTPS development endpoints.
Vue, Nuxt, Angular, SvelteKit
Expose browser apps that run on a local HTTP or HTTPS server, including dev-server routes and WebSocket updates.
Node.js, Express, Fastify, ASP.NET APIs
Share JSON APIs, webhook receivers, Swagger or OpenAPI surfaces, health endpoints, and normal POST requests.
WordPress, PHP, static HTML
Preview local CMS, static sites, and content-heavy pages when GhostlyShare can identify a stable browser-facing endpoint.
WebSockets, SSE, streaming responses
Keep modern realtime previews usable through the public route with WebSocket proxying and streaming-aware timeouts.
Features
Everything needed for a clean local-to-public workflow
Automatic local app discovery
GhostlyShare scans local listening ports, probes HTTP and HTTPS endpoints, reads page titles, and can recognize API surfaces through OpenAPI, Swagger, docs, and health endpoints.
Temporary links first, custom domains optional
No login, no account, no paid plan, and no custom domain are needed for the quick path. When a branded URL matters, use the optional Cloudflare custom domain flow.
HTTP and WebSocket proxying
Modern apps keep working because GhostlyShare forwards normal HTTP traffic and WebSocket connections through the active public route.
Copy, open, stop, repeat
Every live app gets a compact action strip: open the public URL, copy it with confirmation, or stop the public preview when the session is over.
Windows and Linux desktop app
Install from the Microsoft Store on Windows or use the Ubuntu/Debian .deb package on Linux. The main sharing flow stays the same on both platforms.
Safe lifecycle behavior
When local apps close or previews need to stop, GhostlyShare reconciles state and cleans up routes instead of leaving old public links hanging around.
Flow
From localhost to public URL in three quiet steps
- 1
Run your local app
Start Vite, ASP.NET Core, a dashboard, a webhook receiver, or any local web service as usual.
- 2
Press Start in GhostlyShare
The app finds the port, prepares the secure public route, waits for the URL, and shows a Live state when it is ready.
- 3
Share the URL
Copy the link, open it in the browser, send it to a client, or use it from another device for quick testing.
Video demo
Watch GhostlyShare in action
A short YouTube demo shows how GhostlyShare turns a local app into a public preview URL.
Why it feels fast
The app does the boring parts before you have to think about them
GhostlyShare keeps watching local ports, remembers live previews, reconciles routes when apps appear or disappear, and gives every visible action clear feedback on Windows and Linux. The result is simple: no manual sharing commands, no copied terminal URLs, no guessing which port is safe to share.
Custom Domains
Use a branded Cloudflare URL when the temporary link is not enough
The fast path still works without DNS, but GhostlyShare also has an optional custom URL flow for Cloudflare zones. Add a token, choose the zone, pick a hostname, and GhostlyShare creates the managed tunnel and DNS record for that local app.
preview.your-domain.com
Custom URLs are built for demos that should look stable and recognizable. GhostlyShare can reuse saved assignments, refresh the route, and stop the managed tunnel from the same app flow.
- 1
Connect Cloudflare
Paste a Cloudflare API token once, then GhostlyShare validates it and stores the credential in secure user storage for later custom URL sessions.
- 2
Choose zone and hostname
Pick the Cloudflare zone, enter the hostname label, and let GhostlyShare check that the full hostname is available.
- 3
Publish the managed route
GhostlyShare creates the Cloudflare tunnel, configures ingress, writes the DNS record, and starts the secure route to your local port.
Use cases
Built for the moments when localhost is not enough
Client and teammate previews
Send a working link before deploying a branch or publishing a temporary build.
Webhook testing
Point external services at a local receiver while keeping your development loop on your machine.
Mobile device checks
Open your local site from another phone, tablet, or test machine without joining the same network.
API demos
Expose a local API for a quick integration conversation, then stop it when the session is done.
Compared with ngrok
A simpler path when you only need to share what is running locally
If you usually reach for ngrok, GhostlyShare aims at a more direct local-preview flow: open the desktop app, pick the detected service, press Start, and send the link. Temporary links stay setup-light, while custom domains are there when you want a branded Cloudflare URL.
Desktop-first and visual
Best when you want to see detected local apps, start sharing with one click, copy the URL, and stop the preview from a compact desktop window.
Free temporary links first
Great for quick previews because there is no login, no account, and no subscription step before you can share. Custom domains are an optional upgrade path for Cloudflare users.
Powerful, but more manual
Terminal-first sharing tools are excellent for advanced routing workflows. GhostlyShare focuses on the everyday preview moment where speed and simplicity matter most.
Download
Download GhostlyShare for Windows or Linux
Choose the Microsoft Store build on Windows or the Ubuntu/Debian package from the GitHub release repository on Linux. Both editions follow the same local app to public preview workflow.
Windows
Install GhostlyShare from the Microsoft Store for Windows. Store updates handle the app, and the sharing flow stays focused on local apps, APIs, dashboards, and webhook receivers.
Open Microsoft StoreUbuntu / Debian Linux
Open the latest GitHub release, choose the x64 .deb package, install it with apt, then start GhostlyShare from the application launcher or with the ghostlyshare command.
Open Linux releaseRelease repository and wiki
The GitHub repository contains Linux downloads, installation notes, troubleshooting, and documentation for both supported desktop platforms.
Open GitHubDocumentation
Read the GhostlyShare documentation
The GitHub wiki explains installation, app detection, link readiness, custom domains, Windows and Linux differences, and the checks to run when a local app does not appear.
Getting Started
Run a test app, open GhostlyShare, create a public URL, and stop sharing cleanly.
Open guideInstallation and Updates
Use the Microsoft Store on Windows, or install and update the Ubuntu/Debian package with apt.
Open guideApp Detection
See which local ports, frameworks, titles, APIs, and development processes are strong detection signals.
Open guideWindows and Linux
Compare packaging, secure token storage, tray behavior, desktop differences, and the supported sharing flow.
Open guideGoing Public
Understand random Cloudflare URLs, custom URLs, link readiness delays, and what happens when sharing stops.
Open guideTroubleshooting
Check why an app is hidden, why a link looks offline, or why Linux desktop integration behaves differently.
Open guideSupport
Report bugs or request GhostlyShare features
Open the GitHub issue forms for bugs and feature ideas. Before posting, remove tokens, passwords, private URLs, and customer data.
FAQ
Quick answers before you share a local app
Do I need an account to use GhostlyShare?
No. GhostlyShare is built for quick local previews without login, account creation, or a subscription step.
Do I need my own domain?
No. You can share a temporary public preview link without buying a domain, changing DNS, or publishing a test deployment. If you already use Cloudflare, GhostlyShare can also create a custom URL for a branded preview.
Which frameworks does GhostlyShare support?
GhostlyShare is framework agnostic. It works with local HTTP and HTTPS apps from stacks such as React, Vite, Next.js, Vue, Angular, SvelteKit, ASP.NET Core, Blazor, Node APIs, WordPress, static HTML, Swagger or OpenAPI services, and webhook receivers.
Can I use GhostlyShare on Linux?
Yes. GhostlyShare ships as an Ubuntu/Debian x64 .deb package from the GitHub release repository, while Windows remains available through the Microsoft Store.
How do custom domains work?
Custom domains use Cloudflare. After you add a valid token, GhostlyShare loads your zones, checks the hostname, creates the tunnel and DNS record, and routes the public hostname to the selected local app. Windows stores the token with DPAPI, while Linux uses Secret Service through libsecret.
Where is the GhostlyShare documentation?
The GitHub wiki covers installation, app detection, going public, custom domains, Windows and Linux differences, troubleshooting, bug reports, and feature requests.
Is GhostlyShare meant to replace ngrok?
It depends on the workflow. ngrok-style tools are powerful for advanced routing, while GhostlyShare focuses on fast desktop previews for local apps, APIs, webhooks, and demos on Windows and Linux.

Bottom line
GhostlyShare turns a local build into something people can actually try
It is intentionally small, direct, and practical on Windows and Linux: start the app you are building, press Start in GhostlyShare, send the link, and keep working.
Choose your download