geodro/lerd

GitHub: geodro/lerd

Lerd 是一个基于 Podman 的本地 PHP 开发环境,提供自动化域名、隔离环境和调试工具,简化开发流程。

Stars: 608 | Forks: 33

# Lerd [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/56ef63b709174043.svg)](https://github.com/geodro/lerd/actions/workflows/ci.yml) [![发布](https://img.shields.io/github/v/release/geodro/lerd)](https://github.com/geodro/lerd/releases) [![许可:MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![平台](https://img.shields.io/badge/platform-Linux%20%7C%20macOS-lightgrey)]() [![文档](https://img.shields.io/badge/docs-geodro.github.io%2Flerd-blue)](https://geodro.github.io/lerd/) [![Reddit](https://img.shields.io/badge/Reddit-r%2Flerd-ff2d20?logo=reddit)](https://reddit.com/r/lerd) ![Lerd 仪表盘导览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ff62017f78174044.gif) 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权限, 本地开发, 框架支持, 测试环境, 自动域名, 零配置, 项目隔离, 高效开发