Skip to content

Requirements

This is a hard floor, not a recommendation. rexenv ships pinned builds of nginx and cloudflared that will not launch below macOS 15 — on an older Mac the app installs and then cannot run its own web server.

One universal build runs natively on both. There is no separate download to choose and no Rosetta involved.

rexenv does not bundle its stack. It downloads each component — PHP, nginx, Caddy, MySQL, Mailpit and the rest — the first time you actually use it, verifies it against a pinned checksum, and prepares it for macOS.

Budget up to ~600MB across a full cold start, spread over your first few actions rather than taken all at once. After that rexenv works offline; nothing re-downloads unless you add a component you have not used before.

The reason it works this way rather than shipping a 600MB app: you get seven PHP versions, four database engines and three web servers available on demand, and you only pay for the ones you touch.

Plan on 2–4GB for a working setup: the app itself is small, the downloaded components are most of it, and your sites and databases sit alongside them under ~/Library/Application Support/dev.rexenv.rexenv/.

rexenv binds 80 and 443 for the edge proxy, and a set of high ports for everything else — deliberately offset from the usual defaults so it never collides with a MySQL, Mailpit or nginx you already run.

If something else already holds 80 or 443, rexenv tells you what is holding it rather than failing quietly. rex doctor reports the same from a terminal.

  • No Docker, no VM, no Homebrew installation of the stack itself.
  • No /etc/hosts editing. A DNS resolver handles *.rex for you.
  • No Xcode. Everything ships as a prebuilt binary.