Install gon-cli on macOS
One installer line. The script downloads gon.phar and auto-detects what else needs setting up — mkcert (for local .test certs), MariaDB, Node + yarn, Composer GitHub auth — using Homebrew when available and falling back to direct binary downloads otherwise.
Prerequisites
- macOS 12+.
- Docker — Docker Desktop, OrbStack, or Colima. Anything that exposes a working
dockerCLI on PATH. - Homebrew (recommended) — speeds up auto-install of mkcert, MariaDB, and Node. Without it, the installer falls back to direct binary downloads. brew.sh
Install
Open Terminal and run:
curl -sS https://gon.rozklad.dev/install.sh | bash
The installer:
- Sets up
mkcertwith a root CA in your macOS Keychain (so Safari and Chrome trust local.testcerts). Prompts for your admin password once. - Asks for a GitHub PAT (with the right scopes pre-filled in the link it prints) and writes it to
~/.composer/auth.json+~/.gon/config.json. - Installs Node + yarn and MariaDB via Homebrew (or with direct binary fallback).
- Runs
gon auth:loginautomatically:docker login ghcr.ioin one shot, no extra step.
Restart your terminal after the installer finishes so PATH changes take effect, then verify:
gon doctorgon --version
Create your first project
gon create-project myappcd myappgon up
Open https://myapp.test in Safari/Chrome. Mailpit is at https://mail.myapp.test. From here, follow Create a project for the wizard options.
Troubleshooting
First stop for any environment issue:
gon doctor
"Docker daemon is not running" — open Docker Desktop (or your runtime of choice) and wait for the engine to come up. Recent
gon create-projectbuilds offerStart Docker Desktop now? [Y/n].error getting credentialswhen pulling from ghcr.io — re-rungon auth:login. The osxkeychain helper occasionally locks up after a long sleep; rerunning re-authenticates Docker fresh.mkcert -installfailed — it needs to add the root CA to your Keychain and prompts for an admin password. If you cancelled or it timed out, rerun manually:mkcert -install. Without it, browsers will show cert warnings on.testURLs.MariaDB connection refused — the installer probes
127.0.0.1:3306asrootwith no password. If you use Laravel Herd, MySQL is already exposed on that endpoint. Otherwise:brew services restart mariadb.