-
Notifications
You must be signed in to change notification settings - Fork 0
App Merging
Sometimes one local app appears on more than one port. GhostlyShare tries to show one clean app card instead of a confusing list of duplicates.
Modern development stacks often open multiple related ports:
- One HTTP port and one HTTPS port.
- A redirect port that forwards to the real app.
- A frontend port and an internal helper endpoint.
- A framework app that exposes the same content through more than one local URL.
Showing every technical port would make the app list noisy. GhostlyShare merges ports when they look like the same app.
GhostlyShare can merge apps when probes produce the same stable app fingerprint.
The fingerprint is based on normalized response identity such as:
- Page title.
- Content type.
- A small body snippet.
Dynamic details are reduced before fingerprinting. For example, localhost ports, timestamps, and GUID-like values are normalized so the same app does not look different just because a dev server changed port or generated a fresh value.
If one app is available through both HTTP and HTTPS, GhostlyShare prefers the HTTPS entry when it can clearly identify the pair.
Example:
| Port | Behavior |
|---|---|
5113 |
Redirects to HTTPS |
7143 |
Serves the app over HTTPS |
GhostlyShare will usually show the HTTPS app, not both ports.
If a local port redirects to another local port, GhostlyShare may follow the redirect and show the target app.
This avoids showing a launcher or redirect endpoint when the real app is somewhere else.
When multiple candidates represent the same app, GhostlyShare prefers:
- The app whose displayed URL port matches the actual app port.
- HTTPS over HTTP.
- The lower port number when the candidates are otherwise equivalent.
This keeps the list stable and predictable.
Apps are not merged just because they have the same process name or run from the same runtime.
For example, one dotnet process may host multiple apps, or one Node workspace may
start separate frontend and backend apps. GhostlyShare keeps entries separate when
their fingerprints or app identities are different.
Duplicates can still happen when:
- The same app returns different content on different ports.
- One endpoint has a title and the other does not.
- One endpoint returns HTML and another returns JSON.
- A framework dev server changes its response during startup.
- The app has different public-facing paths on different ports.
If you see a duplicate, wait a few seconds after startup. Many dev servers first serve a partial response, then settle into the final app response.
- Home
- Installation
- Getting Started
- Command Line Interface
- Security and Privacy
- App Detection
- App Merging
- Going Public
- Traffic Statistics
- Link Lifetime
- Password Protection
- Rate Limits and Sessions
- Custom Domains
- Cleanup and Uninstall
- Known Limitations
- Windows and Linux
- Troubleshooting
- Report Bugs / Request Features
- Testing Checklist
- FAQ