docs / project

Changelog

Every notable change to lokal, release by release.

On this page

All notable changes to lokal are listed here. Downloads and release notes for each version are on GitHub Releases.

lokal follows Semantic Versioning. Before 1.0, minor versions may change the command line. The --json output ("schema": 1) and state.toml (version = 1) stay backwards compatible until their schema numbers change.

After you upgrade, run lokal upgrade so the background service switches to the new version. See Upgrading and uninstalling.

Unreleased#

No changes since 0.1.0 yet. To see what’s on main but not in a release, compare v0.1.0 with main.

0.1.0#

The first public release. macOS 14 Sonoma or later. Tested on Apple Silicon. Intel builds are published but haven’t been tested on an Intel Mac. Release on GitHub.

Added#

  • lokal setup: one-time onboarding. It creates a name-constrained CA (.lokal and .local only, no IP addresses), trusts it in the System keychain, installs /etc/resolver/lokal, installs the per-user LaunchAgent with launchd-owned sockets on 443 and 80, and runs a self-test. It is idempotent, --dry-run shows the exact sudo commands, and running it again repairs a broken install.
  • .lokal names through a built-in DNS server (wildcard loopback answers, TTL 0), and .local names through mDNSResponder local-only records.
  • Projects and services: project create|list|show|use|remove, service add|list|update|remove, list. Every change is live when the command returns (ready in Nms), and setup-type commands are safe to re-run.
  • HTTPS reverse proxy: HTTP/1.1 and HTTP/2, WebSockets, server-sent events, streaming bodies, localhost upstreams on IPv4 or IPv6, X-Forwarded-* headers, --host-header upstream for Host-checking dev servers, 308 redirects from HTTP, and 404, 421 and 502 pages.
  • lokal doctor: checks every layer concurrently and gives a fix hint for each problem, including a check that .lokal isn’t a public TLD.
  • lokal env (Node, Python and curl trust), ca path, open, status, logs, start, stop, restart, upgrade, uninstall [--purge].
  • --json output for list, status, doctor, project list|show and service list.
  • Prebuilt binaries for Apple Silicon and Intel Macs on GitHub Releases, with SHA-256 checksums, and a Homebrew tap: brew install mehmetkose/tap/lokal.