Skip to content

v1.27.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 10:56
e67f78a

Lerd 1.27.0

Lerd — Podman-powered local PHP dev environment for Linux & macOS.

Install on Linux

curl -fsSL https://lerd.sh/install.sh | bash

Or if already installed:

lerd update

Install on macOS

brew tap geodro/lerd
brew install lerd
lerd install

Or if already installed:

brew upgrade lerd
lerd install

Changelog

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