A
DevOps

Yerd — Local PHP Dev Environment (Rust)

Yerd: aplikasi desktop Rust untuk local PHP development di macOS/Linux. Daemon rootless, .test domain otomatis, multi-PHP per-site, DB native, tunnel Cloudflare, tanpa Docker.

#DevOps#PHP#Laravel#Rust#Linux#macOS#Tools

Apa itu Yerd?

Yerd adalah aplikasi desktop open-source yang menyediakan local PHP development environment cepat dan ringan untuk macOS & Linux. Tanpa Docker, tanpa VM, tanpa subscription. Setiap proyek langsung live di domain .test dengan PHP version di-pin per-site.

  • Repo: github.com/forjedio/yerd
  • Lisensi: MIT
  • Bahasa inti: Rust (TLS pakai rustls, tanpa OpenSSL, tanpa Electron)
  • Posisi: alternatif rootless untuk Laravel Valet / Herd / EnvKit, khusus macOS & Linux

Arsitektur — privilege separation

Yerd memisahkan hak akses jadi tiga tier ketat:

Komponen Peran Hak
yerdd Daemon per-user (~8 MB), satu sumber kebenaran. Memiliki semua state + serve proxy, DNS, PHP-FPM pool Unprivileged
yerd CLI client, ngobrol ke daemon via socket per-user Unprivileged
yerd-helper One-shot binary, hanya operasi yang wajib root (CA trust, DNS resolver, port binding) lalu keluar Root, sementara

Setup naik sekali via sudo yerd elevate. GUI & daemon tidak pernah jalan sebagai root. Logic daemon tidak pernah di-reimplement di CLI/GUI — mencegah drift antar antarmuka.

Fitur unggulan

  • Zero-config sites — drop proyek di parked folder, langsung live di <name>.test, web root framework auto-detected
  • Trusted HTTPS per-site dari CA lokal self-generated — tanpa browser warning, tanpa mkcert
  • Multi-PHP dengan pinning per-site (yerd use <site> 8.3)
  • DB native — MySQL, MariaDB, PostgreSQL, Redis jalan sebagai process, bukan container
  • Mail capture + Laravel dump/query inspector (deteksi N+1, slow query)
  • Public sharing satu klik via Cloudflare Tunnel — tanpa akun ngrok, tanpa buka port
  • Tooling on-demand — Composer, Node, Bun sebagai standalone binary, tanpa package manager sistem
  • Self-diagnosingyerd status & yerd doctor (+ doctor fix untuk auto-remediasi)
  • Quiet by design — tidak ada network call kecuali yang eksplisit diminta; PHP update notify-only

Quick start

yerd install php 8.5            # install versi PHP
yerd use 8.5                    # set default global
yerd park ~/Sites               # park folder; subfolder jadi .test site
yerd link my-app ~/code/myapp   # link satu proyek
yerd secure my-app              # aktifkan HTTPS (trusted local CA)
yerd use my-app 8.3             # pin PHP per-site
yerd db create mysql my_app     # buat database
yerd tunnel share my-app        # dapat public URL via Cloudflare Tunnel
yerd status                     # cek service jalan
yerd doctor                     # diagnose
yerd doctor fix                 # apply safe fix

Tambah --json ke command apa pun untuk output machine-readable.

Paket rilis

Platform Format
macOS (Apple Silicon) .dmg
Linux Debian/Ubuntu .deb (x86-64, arm64)
Linux Arch .pkg.tar.zst
Linux Fedora .rpm (x86-64, arm64)

Catatan implementasi (Rust)

  • Logic murni di library crates, I/O di-belakang trait: ProcessSpawner, TrustStore, ResolverInstaller, PortBinder, Clock — mudah di-test & di-mock
  • TLS reverse proxy + embedded DNS bawaan
  • Fallback: kalau .test routing tidak mungkin di mesin terkunci, situs tetap reachable di http://localhost:8080/~<name>.test
  • Yerd v2 = ground-up rewrite dari v1 berbasis Go, dibangun ulang di Rust demi cross-platform, rootless, dan maintainability

Yerd vs EnvKit vs Herd vs Valet

Yerd EnvKit Laravel Herd Valet
Platform macOS + Linux Windows + macOS macOS (+ Win) macOS + Linux
Bahasa inti Rust PHP
Docker/VM Tidak Tidak Tidak Tidak
Rootless daemon Ya (privilege separation ketat) Tray app Tray app Root-ish (DNS)
Multi-PHP per-site Ya Ya Ya Ya
Trusted .test HTTPS Ya (CA lokal) Ya Ya Ya (mkcert)
DB native (MySQL/PG/Redis) Ya Ya Sebagian Manual
Mail capture + dump inspector Ya Ya Pro Tidak
Public tunnel Cloudflare Tunnel Expose (Pro) Ngrok/manual
MCP / AI control Ya

Yerd unggul di filosofi rootless + Rust dan Linux support penuh. EnvKit unggul di Windows + MCP. Lihat juga: EnvKit, Caddy.

Kapan cocok

  • Developer PHP/Laravel di macOS atau Linux yang mau local env tanpa Docker
  • Butuh public URL sementara untuk webhook/demo tanpa konfigurasi port forwarding
  • Tim yang sensitif privilege — daemon tidak pernah root setelah setup awal
  • Suka CLI-first + output --json untuk scripting

Kapan bukan

  • Windows sebagai host utama (belum didukung → pilih EnvKit)
  • Production server → tetap Nginx/Caddy + Docker + CrowdSec di edge
  • Butuh container isolation antar proyek (Yerd = process native, bukan sandbox)

Tautan