Governance / Infrastructure Standards

Local Server Port Registry

Authoritative registry of reserved and assigned Just Headlines local server ports.

Text size
Status: publishedCreated: 2026-06-27Last updated: 2026-06-27

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.1 unless 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 Hostname column with the full HTTPS URL.
  • When a tunnel hostname is removed, update the registry instead of leaving stale access information.
  • Use None when tunnel exposure is intentionally absent.
  • Use TBD only 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.