Local Server Port Registry
This registry records durable local port assignments made under the Local Server Port Allocation Guide.
| Port | Block | Repository | Service Name | Purpose | Status | Bind Address | Tunnel Hostname | Date Assigned | Notes |
|---|---|---|---|---|---|---|---|---|---|
| 41000 | App / SaaS core | news (future app) |
app-primary-gateway |
Main app gateway or primary local service | Reserved | 127.0.0.1 |
TBD | 2026-06-27 | No local web entry point is currently defined. |
| 42000 | Admin portal | admin |
admin-portal-gateway |
Main private admin portal and document-library preview | Assigned | 127.0.0.1 |
https://jh-admin.darkhorsekarma.net/ |
2026-06-27 | Serves C:\dev\admin; /docs/ uses the same server when the admin portal exposes that route. The tunnel URL is protected by Cloudflare Access and routes to this local origin through the server-side cloudflared connector. |
| 43000 | Public site | site |
site-public-preview |
Main public site and customer document-library preview | Assigned | 127.0.0.1 |
https://jh-site.darkhorsekarma.net/ |
2026-06-27 | Serves C:\dev\site\public; /docs/ uses the same server. The tunnel URL is protected by Cloudflare Access and routes to this local origin through the server-side cloudflared connector. This is the local development copy, not the production public website. |
| 44000 | Shared infrastructure | Shared | shared-infrastructure-gateway |
Future shared local infrastructure gateway | Reserved | 127.0.0.1 |
TBD | 2026-06-27 | Activate only when a genuine shared service exists. |
| 45000 | Experiments | Experimental | experiments-gateway |
Temporary development and experiments gateway | Reserved | 127.0.0.1 |
None | 2026-06-27 | Temporary services may use the experiments block and must be promoted if made durable. |
Current tunnel-mapped assignments
The current Cloudflare Tunnel implementation exposes two assigned local gateway services through authenticated browser URLs.
Public site preview:
Local origin: http://127.0.0.1:43000/
Tunnel hostname: https://jh-site.darkhorsekarma.net/
Repository: site
Source path: C:\dev\site\public
Access layer: Cloudflare Access
Private admin portal:
Local origin: http://127.0.0.1:42000/
Tunnel hostname: https://jh-admin.darkhorsekarma.net/
Repository: admin
Source path: C:\dev\admin
Access layer: Cloudflare Access
The local origin address is the address used by the service on the server machine and by the cloudflared connector.
The tunnel hostname is the browser-facing address used from internet-connected devices after the Cloudflare Access login flow succeeds.
The production public website is separate from the tunnel-mapped local public site preview:
https://justheadlines.pages.dev/
Local origin versus tunnel hostname
A 127.0.0.1 address is a server-local address. It should be used when checking whether the local service is running on the server machine, validating startup commands, testing the origin directly, or troubleshooting whether the application itself responds.
A Cloudflare Tunnel hostname is an authenticated browser-access route. It should be used when an approved user, developer, contractor, employee, AI agent, or browser workflow needs to reach the mapped local service from a device other than the server machine.
For the current assigned ports:
http://127.0.0.1:43000/ server-local public site preview
https://jh-site.darkhorsekarma.net/ authenticated tunnel access to the public site preview
http://127.0.0.1:42000/ server-local private admin portal
https://jh-admin.darkhorsekarma.net/ authenticated tunnel access to the private admin portal
The tunnel hostname does not change the port assignment. The port remains the local origin. The tunnel hostname is the external browser route to that origin.
Assignment rules
- Assign a new port only when a separate local server process is required.
- Keep each service inside its owning project block.
- Bind to
127.0.0.1unless a reviewed exception is documented. - Update this registry before treating a port as a permanent assignment.
- Record retired ports instead of silently reusing them.
- Cloudflare Tunnel and Access configuration must be documented before remote exposure.
- When a port receives a tunnel hostname, update the
Tunnel Hostnamecolumn with the full HTTPS URL. - When a tunnel hostname is removed, update the registry instead of leaving stale access information.
- Use
Nonewhen tunnel exposure is intentionally absent. - Use
TBDonly when tunnel exposure is undecided or planned but not yet configured. - Do not treat a tunnel hostname as a replacement for the local origin address. Both values should remain documented when the service is tunnel-mapped.