v0.2.4 · stable
Elyra Grove · The Local Environment

Local development,
nothing to install around it .

Grove serves *.test domains with automatic routing, local HTTPS, bundled multi-version PHP and Node, bundled databases and a mail-catcher — from a single Rust core. No Homebrew, no Composer, no dnsmasq.

The Grove dashboard — sites with local HTTPS and public tunnels
S.01 — What it does

One Rust core,
everything bundled.

DNS, reverse proxy, FastCGI and TLS are built in. PHP, Node, databases and mail are downloaded and supervised by Grove itself — no Homebrew, Composer, dnsmasq or OpenSSL required.

Automatic *.test routing

An embedded DNS resolver serves your *.test domains — no manual hosts-file editing, no dnsmasq.

Local HTTPS

A private root CA with on-demand per-site leaf certificates, so every site gets trusted TLS locally.

Bundled PHP

Install multiple self-contained PHP versions (grove php install 8.5 | 8.4 | 8.3), with per-site isolate and lazy FPM pools.

Bundled Node.js

Download node, npm and npx with per-site Node versions — no nvm or Homebrew.

Bundled services

Grove downloads and supervises PostgreSQL, MySQL and Redis itself — no separate database or cache to install.

Built-in mail-catcher

An SMTP server captures outgoing mail, with a Mailpit-style viewer to inspect it.

Public tunnels

Expose a local *.test site at a public URL with grove share — a native, self-hostable ngrok/Expose alternative. Zero-config via grove.elyracode.com.

Request inspector

A live table of recent tunnelled requests (method, path, status, duration) — ideal for debugging webhooks, in the GUI and the terminal.

Hide & restore sites

grove forget removes a site from the list without deleting its files; grove restore brings it back.

Driver system

First-class drivers for Laravel, WordPress, generic PHP, static sites, and reverse proxy (Vite/Node).

GUI + CLI in parity

Both are thin clients over the same daemon, plus a macOS menu-bar icon. Built with Tauri 2 + Svelte 5.

Zero external dependencies

DNS, proxy, FastCGI and TLS are all built into the Rust core. Nothing to install around it.

shell
# Share a local site publicly — no config needed
$ grove share myapp
 https://quiet-river-4821.grove.elyracode.com
  → myapp.test (HTTPS, streaming)

# Live request inspector for webhooks
12:04:31  POST  /webhooks/stripe  200  142ms
12:04:33  POST  /webhooks/stripe  200   88ms
New in 0.2

Share localhost,
without ngrok.

grove share exposes any local *.test site at a public HTTPS URL for demos, real-device testing and webhooks — a native, self-hostable alternative to Expose/ngrok, built right in.

  • Zero-config via grove.elyracode.com — works out of the box
  • Self-host your own server with the included deployment kit
  • Live request inspector for debugging webhooks
  • Streaming bodies proxied end-to-end over a single connection
Public tunnels guide
Up in minutes

Park a folder,
open the browser.

Point Grove at a directory of projects and every subfolder is served at name.test with HTTPS — or import an existing Valet setup.

CLI reference
shell
# Install a PHP version
$ grove php install 8.5

# Serve every project in a folder at *.test
$ grove park ~/Code

# Or link a single site
$ cd ~/Code/app && grove link
 https://app.test
Colophon — Get Grove

Your machine,
your dev environment.

Download Grove and serve your projects locally with HTTPS in minutes. Free, open source, and dependency-free.

Elyra Grove · v0.2.4 Built in Norway · MMXXVI