Installation
Bothy runs on macOS 14 or later, on Apple Silicon and Intel Macs. It needs Homebrew.
1. Install the app
Unzip the download (Safari does this for you) and move Bothy to your Applications folder. Then open it; Bothy installs PHP, MySQL and everything else itself. You'll be asked for your password once, to set up the .test resolver and trust the local certificate authority.
Bothy uses ports 80 and 443. Stop or uninstall MAMP, Herd, Valet or anything else listening on those ports first - setup tells you what's in the way.
2. What setup installs
CaddyHTTP/HTTPS on ports 80 and 443 with its own local CA, trusted once
dnsmasqAnswers *.test on 127.0.0.1:53; /etc/resolver/test points macOS at it
PHPshivammathur/php/php@X.Y via Homebrew - one php-fpm master per version
MySQLmysql@X.Y or mariadb via Homebrew, each with its own data directory, port and socket
launchdUser agents at ~/Library/LaunchAgents/site.bothy.* - survive quitting the app, restart on crash
Config~/Library/Application Support/Bothy/config.json, shared by the app, CLI and MCP server
3. Add your first site
Click New Site… in the sidebar, pick a folder (or let Bothy create one), choose a PHP version and optionally a database. Seconds later it's live at https://name.test. From a terminal:
bothy site add shop --php 8.3 --db bothy site open shop # https://shop.test
Why .test and not .local
macOS treats .local as mDNS/Bonjour, which causes slow and flaky lookups. .test is reserved for exactly this purpose.