Skip to content

localghost v3.1.0

Choose a tag to compare

@SmileyChris SmileyChris released this 12 Sep 08:47
· 91 commits to main since this release

Published to PyPI on 2026-09-08; this release page was added afterwards. 3.2.0 supersedes it.

Localghost 3.1 lets tailnet hosting run on a public-looking suffix such as work or dev instead of refusing it, and fixes tailnet HTTPS hubs dropping the ghost pages.

Upgrade

uvx --refresh localghost --version

Highlights

  • Public-looking tailnet suffixes route over HTTP. A suffix naming a public TLD or reserved zone (work, dev, two-letter country codes) is no longer refused. It routes HTTP only — no tailnet root is minted for it, and the gateway skips the trust.<suffix> page and the 443 proxy — and enable, hub up and tailscale status say so. State saved with such a suffix by earlier releases loads again. Detection never picks a public label; pass one with --suffix deliberately.
  • Tailnet HTTPS keeps the ghost pages. With tailnet hosting enabled, the hub's Traefik command dropped the ghost-page fallback plugin and the certificate registry. The tailnet HTTPS overlay now carries both.
  • CA provider mode option. The bundled CA provider plugin gains mode=http, which mirrors routers onto its suffix without a signer. LOCALGHOST_LOCALHOST_CA_MODE and LOCALGHOST_TAILNET_CA_MODE select each provider's mode, so one Traefik command covers every combination of localhost and tailnet HTTPS.
  • forget lists what it can forget. localghost forget with no name lists the remembered project names in its usage error.

The full list is in CHANGELOG.md.