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 docker CLI 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 mkcert with a root CA in your macOS Keychain (so Safari and Chrome trust local .test certs). 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:login automatically: docker login ghcr.io in one shot, no extra step.

Restart your terminal after the installer finishes so PATH changes take effect, then verify:

gon doctor
gon --version

Create your first project

gon create-project myapp
cd myapp
gon 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-project builds offer Start Docker Desktop now? [Y/n].

  • error getting credentials when pulling from ghcr.io — re-run gon auth:login. The osxkeychain helper occasionally locks up after a long sleep; rerunning re-authenticates Docker fresh.

  • mkcert -install failed — 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 .test URLs.

  • MariaDB connection refused — the installer probes 127.0.0.1:3306 as root with no password. If you use Laravel Herd, MySQL is already exposed on that endpoint. Otherwise: brew services restart mariadb.