v1.27.0
Lerd 1.27.0
Lerd — Podman-powered local PHP dev environment for Linux & macOS.
Install on Linux
curl -fsSL https://lerd.sh/install.sh | bashOr if already installed:
lerd updateInstall on macOS
brew tap geodro/lerd
brew install lerd
lerd installOr if already installed:
brew upgrade lerd
lerd installChangelog
Features
- 2d6c60e feat(auth): lerd auth ssh — shared ssh-agent for composer git over SSH
- 90830aa feat(doctor): make the site doctor framework-agnostic
- 63c2a94 feat(host-proxy): add bind opt-out for the HOST injection
- 2c45149 feat(host-proxy): inject HOST=0.0.0.0 so the proxy container can reach the dev server
- 17bf49c feat(services): manage published and extra ports from the dashboard
Bug Fixes
- 01a3413 fix(cli): place dialUnixHTTP comment above its own func
- d205e7d fix(cli): reach lerd-ui over TCP on macOS so idle/dump status works
- cd2728d fix(cli): surface npm/bun build failures during setup instead of killing the process
- 9d3a810 fix(cli): warn when a host worker's deps are missing, and route update output through the feedback layer
- 1624106 fix(idle): serve an auto-refreshing waking page for suspended host-proxy sites
- 208b985 fix(idle): wake suspended workers on web access on macOS
- add44f8 fix(lan-share): carry app WebSockets, only divert Vite's HMR socket
- c07dcb4 fix(macos): correct the forwarder-stale copy and mirror teardown
- 2c25263 fix(macos): keep published ports when lan.exposed is true
- 6789c98 fix(macos): skip the LAN DNS forwarder where lerd-dns binds the LAN port
- 2c2c4c6 fix(mcp): drop positional name when delegating host-proxy link
- 70dd249 fix(mcp): honor host-proxy sites in site link
- 3649090 fix(pest:browser): boot the Playwright server in doctor so a boot failure stops false-greening
- 077e3f7 fix(pest:browser): reap the probe's run-server inside the container
- f075a97 fix(podman): add git + openssh-client to the FrankenPHP image
- e0a7c5a fix(podman): add openssh-client to the FPM image
- c2e25b8 fix(podman): run postgres native on Apple Silicon via imresamu/postgis rewrite
- 6bb20d4 fix(ui): pause host-proxy site when its dev-server worker is stopped
- 26a00fa fix(watcher): bound source-file watches so an asset dump can't exhaust fds
- f1209e6 fix(worker): reap in-container worker on stop (macOS) so idle-suspend frees CPU
- 2383b1c fix: bind host-proxy dev servers to the host gateway instead of every interface
- be2e1d9 fix: correctness issues found reviewing the v1.26 changes
- aa9d31b fix: pin applehv provider for podman machine init on podman 6
- 3a9ea6c fix: recover ghost containers on start (libpod entry, missing storage)
- 9e70289 fix: report a missing or empty SQLite database in the site doctor
- 418ee79 fix: require consent before running project-supplied commands and host workers on the host
- fc1e5c7 fix: stop an untrusted project framework_def from running host commands via the site doctor
Other
- 4ecf964 Add framework prune and an in-use guard on framework remove
- b3d5071 Auto-heal rootless podman after a major upgrade
- 8a61df4 Auto-start FPM, or offer to install/switch the PHP version
- 143291f Fix correctness and quality issues found reviewing the v1.26 changes
- 19039ee Let every bundled preset publish extra ports and autofill its host port
- a47d714 Make the service YAML the single source of truth for custom services
- 1e3901b Merge remote-tracking branch 'origin/main' into hotfix/1.26.2
- e2f9654 Recover idle-suspended workers whose marking was lost on reinstall
- 1453d1f Regenerate host-proxy env on unpause to follow a port moved while paused
- 43ed62c Restart nginx when the host resumes from suspend
- efce19e Rewrite https:// redirects to http in LAN share proxy
- 9674aff Route all podman execution through a single seam
- 8d5bf0c Show a service's published host port in the status pill
- 9ceb845 Show the idle moon in real time on resume
- 5f5b5e3 Stop the framework tests from closing the process stdin
- febc5df Surface the real reason when a service fails to start
- 78c19b6 Warn about busy host ports before lerd install runs
- cc37a4b cleanup: lerd-aware command to reclaim orphaned podman disk
- 147feb8 cli: lerd service port, port-aware checks, host-proxy follow, allocator reuse
- f15c272 config: published-port override field + accessor
- 51550a0 dns: recognise launchd-managed lerd-dns in the doctor diagnostic
- b12b18f doctor: add rootless podman build preflight checks
- 3f8cb62 freeport: shared stdlib-only free-port allocator
- 4d4ff7a mcp: service port action
- 996601f perf(watcher): skip a known-oversized dir before re-reading it on rescan
- 6d3c0fe refactor(host-proxy): rename bind field to inject_host
- e688cb4 refactor(idle): gate host-proxy vhost swap via a tested helper; drop stray word
- d3c1aff refactor: make the host-proxy gateway rebind a single change-gated restart
- adef91d release: v1.27.0
- 6d65233 serviceops: generic port-availability guard; primary host-port helpers
- 3888a5e test(cli): make fakeUISocket override the daemon dial target
- 6284b6f test(macos): cover ensureLANForwarderRemoved teardown
Full Changelog: v1.26.2...v1.27.0