geodro/lerd
GitHub: geodro/lerd
Lerd 是一个基于 Podman 的本地 PHP 开发环境,提供自动化域名、隔离环境和调试工具,简化开发流程。
Stars: 608 | Forks: 33
# Lerd
[](https://github.com/geodro/lerd/actions/workflows/ci.yml)
[](https://github.com/geodro/lerd/releases)
[](LICENSE)
[]()
[](https://geodro.github.io/lerd/)
[](https://reddit.com/r/lerd)

Lerd 以无根 Podman 容器运行 Nginx、PHP-FPM 和您的服务,
专为 Linux 和 macOS 上的 PHP 开发者设计。
无需 Docker。无需 sudo。无系统污染。只需执行 `lerd link`,您的项目
即可通过 HTTPS 在 `project.test` 上线。
## 专为 Linux PHP 开发者打造
如果您是使用 Linux 的 PHP 开发者,并希望获得无摩擦的本地开发体验——自动生成 `.test` 域名、每个项目独立的 PHP 版本、一键 HTTPS、零 Docker——Lerd 就是为您而生的。它兼容 Laravel、Symfony、WordPress、Drupal、CakePHP、Statamic 以及任何自定义 PHP 框架。
## 功能特性
- 🌐 **自动 `.test` 域名** 通过一条命令配置 TLS,或 [选择退出 lerd 管理的 DNS](https://geodro.github.io/lerd/features/dns/) 并使用 `*.localhost`(无需 dnsmasq、无需修改系统解析器、DNS 相关操作无需 sudo)
- 🐘 **每个项目独立的 PHP 版本**(支持 8.1–8.5,并提供面向旧技术栈托管项目的 7.4 / 8.0 冻结版本),一键切换
- ⚡ **FrankenPHP 运行时** 可作为共享 PHP-FPM 的替代方案,为每个站点独立提供,支持 Laravel Octane 和 Symfony Runtime 的 Worker 模式
- 📦 **Node.js 隔离** 每个项目独立运行(Node 22, 24)
- 🖥️ **内置 Web UI** 包含仪表盘主页、实时小组件、全局 Cmd+K 命令面板,并提供七种仪表盘语言(英语、德语、西班牙语、法语、印尼语、荷兰语、葡萄牙语)
- 🧪 **Tinker 标签页** - 浏览器内每个站点独立的 PHP REPL,具备自动补全功能(支持项目模型、Composer 助手、PHP 内置函数),实时 `php -l` 语法检查,以及可折叠的树状视图来展示 `dump()` 输出。适用于 Laravel (`artisan tinker`)、Symfony 和任何基于 Composer 的 PHP 项目
- 🛰️ **实时 dump() / dd() 查看器** 拦截运行中应用的每一个 `dump()` 和 `dd()` 调用,并将其流式传输到仪表盘、终端 UI(按 `D` 键)、MCP 和 `lerd dump tail`,按站点和工作树分支作用域隔离,并且除非您开启 passthrough 模式,否则原始响应保持干净
- 🔥 **SPX 分析器** 一键开启/关闭,每个 PHP-FPM 请求都会生成火焰图,可在仪表盘中同源的 Profiler 视图中查看。无需重启 FPM、无需修改代码,`lerd profile run` 可对一次性的 Artisan 或 CLI 命令进行性能分析
- 💻 **终端仪表盘** (`lerd tui`) - 类似 btop 风格的终端 UI,具备实时状态、站点详情面板、内联域名和版本编辑、Shell 接入、日志尾随以及过滤/排序功能——操作界面与 Web UI 完全相同,适用于 tmux 和 SSH 工作流
- 🗄️ **一键服务**:MySQL、PostgreSQL、Redis、Meilisearch、RustFS、Mailpit、Gotenberg、Stripe Mock、Reverb 等更多。每个默认服务都是一个 YAML 预设,您可以更新、迁移、回滚或原地重装,包括支持数据重置的重装模式,该模式会自动重新创建关联站点的数据库和存储桶
- 🌳 **一等公民 Git 工作树** 支持自动检测的分支域名、每个工作树独立的 PHP/Node 版本、可选的每个工作树数据库隔离(从主分支克隆或创建空库)、每个工作树的 LAN 共享代理、在 `.lerd.yaml` 中为多租户应用提供 `env_overrides` 模板化、为 `*.branch.site.test` 自动生成通配符证书 SAN、内置的 Vite 开发服务器 Worker 按分支在主机上运行,以及一个仪表盘模态窗口,无需接触 CLI 即可添加和移除工作树
- ⚒️ **Worker 自愈** 失败的队列、调度、Horizon、Reverb 和 Stripe Worker 会在各处(CLI、仪表盘横幅、终端 UI、MCP)显示,并通过一键操作或 `lerd worker heal` 进行恢复
- 📋 **实时日志** 覆盖每个站点的 PHP-FPM、队列、调度、Reverb
- 🔒 **无根且无守护进程** - 原生支持 Podman,无需 Docker,支持 IPv4 + IPv6 双栈
- 🤖 **MCP 服务器** - 让 AI 助手(Claude Code、Windsurf、Junie)直接管理您的开发环境
- 🧩 **框架商店** - 面向 Laravel、Symfony、WordPress、Drupal、CakePHP、Statamic 的社区定义,支持版本化自动检测
- ⚡ **框架无关** 的 Worker、环境配置和 Nginx 代理——由 YAML 定义驱动,而非硬编码
## AI 集成 (MCP)
Lerd 内置 [Model Context Protocol](https://modelcontextprotocol.io/) 服务器。将其连接到 Claude Code、Windsurf、JetBrains Junie 或任何兼容 MCP 的 AI 助手,无需离开聊天即可管理您的开发环境。
```
lerd mcp:enable-global # register once, works in every project
```
然后直接询问:
```
You: set up the project I just cloned
AI: → site_link()
→ composer install
→ env_setup() # detects MySQL + Redis, starts them, creates DB, generates APP_KEY
→ setup() # storage:link + migrate for Laravel, doctrine:migrations:migrate for Symfony
✓ myapp → https://myapp.test ready
```
提供约 50 个可用工具:脚手架新项目、运行迁移、管理服务、切换 Worker、查看日志、启用 Xdebug、管理数据库、管理 PHP 扩展、停靠目录、在 PHP-FPM 和 FrankenPHP 之间切换运行时等等,所有这些都可以通过您的 AI 助手完成。
📖 [MCP 文档](https://geodro.github.io/lerd/features/mcp/)
## 为何选择 Lerd?
| | Lerd | DDEV | Lando | Laravel Herd |
|--------------------|------|------|-------|--------------|
| 原生支持 Podman | ✅ | 🟡 | ❌ | ❌ |
| 无根运行 | ✅ | ❌ | ❌ | ✅ |
| Web UI | ✅ | ❌ | ❌ | ✅ |
| 终端仪表盘 | ✅ | ❌ | ❌ | ❌ |
| Linux | ✅ | ✅ | ✅ | ❌ |
| macOS | ✅ | ✅ | ✅ | ✅ |
| MCP 服务器 | ✅ | ❌ | ❌ | ✅ |
| 免费且开源 | ✅ | ✅ | ✅ | ❌ |
🟡 DDEV 默认运行在 Docker 上,也可以使用 Podman 作为替代运行时;Lerd 专为无根 Podman 构建。
## 安装
### Linux
```
curl -fsSL https://raw.githubusercontent.com/geodro/lerd/main/install.sh | bash
```
后续更新:
```
lerd update
```
### macOS
通过 Homebrew 安装:
```
brew install geodro/lerd/lerd
lerd install
```
后续更新:
```
brew upgrade lerd
lerd install
```
## 快速开始
```
cd my-laravel-project
lerd link
# → https://my-laravel-project.test
```
`lerd install` 在首次运行时会自动为您启动所有服务,因此您可以立即执行 `lerd link`。日常操作:
```
lerd start # boot DNS, nginx, PHP-FPM, services, workers, UI
lerd stop # stop containers and workers (UI and watcher stay up)
lerd quit # full shutdown including UI, watcher, and tray
lerd autostart enable # boot lerd on every login
lerd status # health snapshot
```
完整生命周期参考请参见 [启动、停止与自动启动](https://geodro.github.io/lerd/usage/lifecycle/)。
## 框架商店
从 [geodro/lerd-frameworks](https://github.com/geodro/lerd-frameworks) 安装社区框架定义:
```
lerd framework search # list all available
lerd framework install symfony # auto-detects version from composer.lock
lerd framework install drupal@11 # explicit version
lerd framework list --check # compare local vs store
```
当您 `lerd link` 一个项目时,框架会自动检测。Worker、环境配置、Nginx 代理和设置命令均由框架定义驱动——无硬编码行为。
## 文档
📖 **[geodro.github.io/lerd](https://geodro.github.io/lerd/)**
- [要求](https://geodro.github.io/lerd/getting-started/requirements/)
- [安装](https://geodro.github.io/lerd/getting-started/installation/)
- [快速开始](https://geodro.github.io/lerd/getting-started/quick-start/)
- [启动、停止与自动启动](https://geodro.github.io/lerd/usage/lifecycle/)
- [框架](https://geodro.github.io/lerd/usage/frameworks/)
- [服务](https://geodro.github.io/lerd/usage/services/)
- [命令参考](https://geodro.github.io/lerd/reference/commands/)
## 许可
MIT
标签:EVTX分析, FrankenPHP, Linux开发, macOS开发, MITM代理, Nginx, NIDS, Node.js支持, PHP-FPM, PHP开发, Podman, TCP SYN 扫描, TLS加密, Web UI, Web服务器, 二进制发布, 威胁情报, 容器化, 开发环境, 开发者工具, 开源工具, 无root权限, 本地开发, 框架支持, 测试环境, 自动域名, 零配置, 项目隔离, 高效开发