Zero-config first launch. v2.0.0 shipped HTTPS via mkcert + Caddy at https://vyomi.local:9443, but a fresh laptop hit three Chrome gotchas in sequence: (1) Secure DNS bypassing /etc/hosts for .local TLDs, (2) HSTS cache locking failed early attempts into HTTPS-only, (3) HTTPS-First Mode auto-upgrading http:// requests. Users were dropped into chrome://net-internals/#hsts to debug. v2.0.1 sidesteps all three by pivoting the canonical URL to https://localhost:9443/ — a hostname Chrome universally trusts. mkcert already covered localhost in its SAN list, so the green padlock works without any browser config changes.
Added
socatlocalhost bridge —vyomi upnow forwards127.0.0.1:9000→VM_IP:9000and127.0.0.1:9443→VM_IP:9443via two host-sidesocatprocesses (PIDs tracked at~/.vyomi/run/socat-*.pid). Bridge is loopback-only (bind=127.0.0.1) — not reachable from outside the laptop. Idempotent — old PIDs killed before respawn.vyomi down/stop/killtear it down cleanly.- Auto browser open — after the health check passes, the launcher opens the working URL in the default browser (
openon macOS,xdg-openon Linux,Start-Processon Windows). HonorsVYOMI_NO_OPEN=1for CI / headless / scripted environments. - Loud mkcert failure surface — if the user dismisses the sudo prompt for
mkcert -install, the launcher now prints a clearly-visible yellow⚠warning with the exact remediation command (brew install mkcert && vyomi restart). Old behaviour was a silentverbose-mode-onlylog line that users missed.
Changed
- Default appliance URL →
https://localhost:9443/(washttps://vyomi.local:9443/). Banner probe ladder trieslocalhost:9443(TLS) →vyomi.local:9443(TLS) →localhost:9000(HTTP) →vyomi.local:9000(HTTP) → IP, and picks the first reachable one as primary. The other reachable URLs are advertised as fallbacks. Existing v2.0.0 URLs continue to work — this is purely a default-routing change. - mkcert SAN order — the leaf cert is now generated with
localhost 127.0.0.1 vyomi.local(wasvyomi.local localhost 127.0.0.1). The cert covers the exact same names — just primary subject swapped to match the new default URL. Existing certs from v2.0.0 stay valid (all SANs preserved). Force regeneration withVYOMI_REISSUE_TLS=1 vyomi up. - Brew formula adds
depends_on "socat"anddepends_on "mkcert"— both are required for the green-padlock-by-default UX. Pre-fetching them atbrew install vyomitime means the firstvyomi uphas one fewer interactive prompt. Reinstall to pick up:brew reinstall vyomi.
Notes for users on v2.0.0
- After
brew reinstall vyomi, runvyomi restartonce. The new launcher will start the socat bridge against your existing VM and your browser will land onhttps://localhost:9443/. - The
vyomi.localand192.168.x.xURLs from v2.0.0 still work — they're now listed as fallbacks rather than primary. - If your Chrome had cached HSTS / HTTPS-First Mode for
vyomi.local, the localhost pivot makes that irrelevant. You don't need to clear anything. - Windows: the localhost bridge is not yet wired (no
socatin standard tools). Windows users continue to hitvyomi.local:9443directly.netsh interface portproxy-based bridge is a v2.1.0 follow-up.
Artifacts
- SHA256SUMS
- cloud-learn-0.1.0.tar.gz
- cloud-learn-2.0.1-1.noarch.rpm
- cloud-learn-2.0.1.tar.gz
- cloud-learn_2.0.1_all.deb
Docker image: docker pull vyomi/appliance:2.0.1
Install: curl -fsSL https://raw.githubusercontent.com/vyomi-cloud/appliance/main/install.sh | bash
SHA256 checksums: see SHA256SUMS in attached artifacts.