Web開発
Lerd: LinuxおよびmacOS向けのオープンソースのHerdライクなPHP開発環境
Lerd, an open source Herd-like PHP development environment for Linux and macOS (github.com)
要約
Lerdは、LinuxおよびmacOS(WSL2経由でWindowsもサポート)向けの、PodmanネイティブでrootlessなPHP開発環境です。Dockerやsudoを使わず、システムを汚染しない設計で、プロジェクトごとに異なるPHPバージョンやHTTPS、自動的な.testドメイン設定などを簡単に実現できます。Web UIやターミナルUIを備え、Laravel、Symfony、WordPressなど主要なPHPフレームワークに対応しています。
全文翻訳
Lerd
LinuxおよびmacOS向けのオープンソースのHerdライクなローカルPHP開発環境。WindowsはWSL2経由でサポート(ベータ版)。Podmanネイティブ、rootless、組み込みWeb UI付き。
Lerdは、Nginx、PHP-FPM、およびサービスをrootless Podmanコンテナとして実行します。LinuxおよびmacOSのPHP開発者向けに設計されており、WSL2(ベータ版)を介してWindowsでも利用できます。Docker不要。sudo不要。システム汚染なし。lerd linkを実行するだけで、プロジェクトがproject.testでHTTPSでライブになります。
Linux PHP開発者のために構築
Lerdは、摩擦のないローカル開発を求めるLinux上のPHP開発者のために構築されています。自動.testドメイン、プロジェクトごとのPHPバージョン、ワンクリックHTTPS、Docker不要。Laravel、Symfony、WordPress、Drupal、Magento、CakePHP、Statamic、およびカスタムPHPフレームワークと連携します。
機能
サイト、ドメイン、TLS
🌐 自動.testドメイン。1つのコマンドでプロジェクトにホスト名とTLSが提供され、有効期限が切れる前に再発行されます。dnsmasq、システムリゾルバの調整、DNSビットに対するsudoは不要です。*.localhostのlerd管理DNSをオプトアウトするか、dns:enable / dns:disable / dns:repairで後で切り替えることができます。
🔗 サイトグループ。関連するサイトをグループ化し、メインサイトがベースドメインを所有し、残りはサブドメインを占有し、二次サイトごとに共有または個別のデータベースを使用します。
🧱 ホストプロキシサイト。Node、Python、Go、または任意の非PHP開発サーバーをホストで実行し、HTTPSとgitワークツリーを含めてnginxに.testドメインで提供させます。スタックした開発サーバーは、ターミナルに手を伸ばすことなく、サイトヘッダーから再起動できます。
🌳 ファーストクラスのgitワークツリー。自動検出されたブランチドメイン、ワークツリーごとのPHPおよびNodeバージョン、オプションのデータベース分離、*.branch.site.testのワイルドカード証明書SAN、およびホスト上のブランチごとのViteワーカー。CLIに触れることなく、ダッシュボードモーダルから追加および削除できます。
🌍 サイトを共有。LAN上で安定したポートとQRコードを使用するか、ngrok、cloudflared、Expose、serveo、またはlocalhost.runを介して、CLIまたはダッシュボードの共有メニューから公開します。Cloudflareのベースドメインを一度設定すると、すべての共有が<site>.<domain>で提供されるため、WebhookまたはOAuthコールバックは実行間でURLを維持し、ngrokはインストールされていないマシンで公開イメージから実行されます。
🎨 サイト独自のドメインでの開発サーバー。実行中のViteは、localhost:5173をアドバタイズする代わりに、サイトの.testホスト名の下でアセットとホットリロードソケットを提供するため、共有された、LANで開かれた、またはワークツリーのページはスタイルされて到着します。プロジェクト内の何も編集されず、フレームワークごとに何も宣言されません。
PHP、Node、およびランタイム
🐘 プロジェクトごとのPHPバージョン。8.1から8.5まで、および古いスタックでホストされているプロジェクト向けの凍結された7.4 / 8.0レガシーティア。ワンクリックで切り替え可能です。カスタムPHP拡張機能とAlpineパッケージは一度宣言され、lerdがビルドするすべてのイメージに適用されるため、サイトのバージョンを変更しても要求したものがサイレントに削除されることはありません。
⚡ FrankenPHPランタイム。共有PHP-FPMの代替として、サイトごとに、Laravel OctaneおよびSymfony Runtimeワーカーモードを備えています。
📦 Node.js分離。バンドルされたfnmまたは既存のnvmを介して、プロジェクトごとにNode 22または24。ダッシュボードから切り替え可能です。または、ホスト上のJavaScriptランタイムとしてbunを使用し、オプトインでコンテナ内でも使用できます。
🪄 フレームワークごとのセットアップ不要。ワーカー、env値、nginx vhostはすべて、プロジェクトをリンクしたときに設定されます。
🧩 フレームワークストア。Laravel、Symfony、WordPress、Drupal、Magento、CakePHP、Statamic向けのコミュニティ定義。バージョン管理された自動検出により、PHP 7.4で実行されるメジャーバージョンまで遡ります。
サービスとデータベース
🗄️ ワンクリックサービス。MySQL、PostgreSQL、Redis、Meilisearch、RustFS、Mailpit、Reverb、OpenSearchなど。デフォルトスタックが組み込まれており、lerdの新しいリリースなしで更新されるストアからすべての追加機能が取得されます。サービスページからエンジンのデータベースをブラウズ、作成、削除できます。スナップショット、エクスポート、インポートも可能です。
🧷 JetBrains用のIDEデータベース配線。プロジェクトは、実際に応答しているホストポート上の独自のlerdデータベースを指す1つのデータソースを取得します。これはリンク時に書き込まれ、プロジェクトのデータベースが変更されると更新され、lerdが所有していないすべてのデータソースはそのままになります。
デバッグとパフォーマンス
🛰️ デバッグウィンドウ。すべてのdump() / dd()をインターセプトし、ダッシュボード、TUI、MCP、およびlerd dump tailにストリームします。サイトごと、ワークツリーブランチごとにスコープされます。同じウィンドウが、N+1クエリ、スロークエリ検出、メール、ビュー、イベント、キューに入れられたジョブ、およびLaravelとSymfonyでのHTTPリクエストをキャプチャします。
🔥 ワンクリックでオン/オフできるSPXプロファイラー。すべてのPHP-FPMリクエストが、FPMの再起動やコード変更なしで、ダッシュボードの同じオリジンにあるProfilerビューで表示可能なフレイムグラフになります。lerd profile runは、ワンショットのartisanまたはCLIコマンドをプロファイルします。
📈 リクエストタイミング分析。典型的なおよびp95の応答時間、スループット、エラー率、および最近のp95でランク付けされた最も遅いルートの永続的なサイトごとのビュー。エージェントは、route_timingとoptimize_routeを使用してMCP overで同じ信号を取得します。
🧪 Tinkerタブ。プロジェクトを認識したオートコンプリート、ホバー、およびphpantom_lspによって提供される診断を備えた、サイトごとのブラウザ内PHP REPL。モデルとBuilderチェーンがcomposerヘルパーと共に解決されます。Laravel、Symfony、および任意のcomposerプロジェクトで動作します。
インターフェース
🖥️ 組み込みWeb UI。サイトとサービスのダッシュボード、ライブウィジェット、グローバルCmd+Kコマンドパレット、およびシステムページからのPHPおよびNodeバージョンのインストール/アンインストール。14言語で利用可能です。
💻 ターミナルダッシュボード(lerd tui)。ライブステータス、サイト詳細ペイン、インラインドメインおよびバージョン編集、シェルドロップイン、ログテーリング、フィルター/ソートを備えたbtopスタイルのTUI。tmuxおよびSSHワークフローで、Web UIと同じ操作が可能です。
✏️ ブラウザでの設定編集。サイトごとおよびグローバルなnginx、php.ini(バージョンの独自ファイルと共有スコープを並べて表示)、.envファイル、およびデータベース/サービスランタイムチューニング。それぞれが検証され(該当する場合はnginx -t)、タイムスタンプ付きバックアップとワンクリック復元が可能です。
📋 PHP-FPM、Queue、Schedule、Reverbのライブログ。サイトごとに、ツールが実際にエミットする色(artisan、composer、vite、pest)でレンダリングされ、任意のログを実際のターミナルに渡すボタンがあり、タブを閉じてもロングテールが持続します。
🔔 中断する価値のあるものの通知。開いているダッシュボード、Web Push経由で購読しているブラウザ、またはデスクトップのネイティブ通知デーモンに配信されます。すべてがダッシュボードのサイドバーベルにも着信し、リロード間で未読カウント付きで最後の50件を保持します。
🤖 MCPサーバー。AIアシスタント(Claude Code、Cursor、JetBrains Junie、Codex CLI、Gemini CLI、GitHub Copilot、Google Antigravity、Windsurf)が環境を直接管理できるようにします。
ヘルスとメンテナンス
🧰 環境ドクター(lerd doctor)。lerd自体が依存するホストをチェックし、安全に修復できるものを--fixで修復します(ディレクトリが見つからない、リンガー、PHPイメージが見つからない、DNS配線)。sudoが必要なものはコマンドとして表示され、実行されることはありません。--dry-runで最初に表示します。
🩺 サイトドクター。任意のプロジェクトに適用されるヘルスチェック(envドリフト、アプリケーションキー、composerおよびnodeのインストール状態、セキュリティ監査、データベースの存在、PHPバージョン範囲)に加えて、フレームワークの追加チェック。ワンクリック修正も可能です。Web UI、TUI、lerd site:doctor、およびMCPから利用できます。
⚒️ ワーカーの自己修復。失敗したキュー、スケジュール、Horizon、Reverb、Stripeワーカーは、どこでも(CLI、ダッシュボードバナー、TUI、MCP)表示され、ワンクリックまたはlerd worker healで回復します。
💤 アイドルサスペンド。設定可能なアイドルタイムアウト後にワーカー(キュー、スケジュール、Horizon、Reverb、Stripe、Vite)のアクティビティ駆動サスペンド。次のリクエスト、CLIコマンド、MCP呼び出し、またはファイル保存時に再開されます。サイトごとにピン留め可能です。
📌 ピン留めされたホストツール。Composer、fnm、mkcertは、その日のリリース/最新版ではなく、公開されたマニフェストの後ろにピン留めされているため、アップストリームのリリースが新しいインストールの夜間破損を防ぎます。システムページは、それぞれをピンに対して報告し、フラグを立てたカードで更新を適用します。
🔒 Rootlessおよびデーモンレス。Podmanネイティブ、Docker不要、デュアルスタックIPv4 + IPv6。
AIインテグレーション(MCP)
Lerdは組み込みのModel Context Protocolサーバーを搭載しています。i