Install
openclaw skills install mac-dev-stagingTurn a macOS machine into a local PHP/MariaDB staging server using the stock macOS Apache, Homebrew PHP 8.5, MariaDB, built-in SFTP, npm tooling, a local dev...
openclaw skills install mac-dev-stagingUse this skill when you want a Mac to behave like a repeatable local development or staging server.
This skill is built around the stack you actually have on modern Apple Silicon Macs:
/usr/sbin/httpd)It does not assume a Linux-style package layout, and it does not pretend the Mac should behave exactly like your Ubuntu gateway.
sudo for /etc/apache2 editsOn macOS, the hard part is not installing PHP or MariaDB. The hard part is making Apache config repeatable and not breaking your box.
This skill therefore follows a staged pattern:
sudoRun:
scripts/detect-stack.sh
scripts/detect-ports.sh
This checks:
brew services stateRun:
scripts/bootstrap-brew.sh
scripts/bootstrap-npm-tooling.sh
This installs:
phpmariadbnginxbrowser-syncIt does not silently mutate /etc/apache2.
Generate the recommended Apache enablement snippet:
scripts/render-apache-php-snippet.sh
Generate a local vhost:
scripts/render-vhost.sh \
--server-name mysite.test \
--docroot /Users/you/Sites/mysite/public
These scripts print the config you should install under:
/etc/apache2/httpd.conf/etc/apache2/extra/httpd-vhosts.confApplying those files still requires sudo.
For Homebrew-managed services:
brew services start php
brew services start mariadb
brew services start nginx
For stock Apache:
sudo apachectl restart
If you want a Mac-local development gateway that coexists with the main Ryzen gateway, render the recommended env first:
scripts/render-local-gateway-env.sh
Default rule:
192.168.88.11:1878928789Run:
scripts/verify-stack.sh
This checks:
For staging boxes, SFTP is usually the simplest deploy path.
Check current state:
scripts/detect-sftp.sh
If Remote Login is off, enable it with macOS settings or:
sudo systemsetup -setremotelogin on
Recommended pattern:
Read references/sftp-on-macos.md before exposing the box to other devices on your LAN.
This skill assumes staging operations should leave a trace.
Use the lightweight controller when you want one stable entrypoint for local service control, build steps, verification, port checks, or gateway ping tests:
scripts/controller.sh status
scripts/controller.sh verify
scripts/controller.sh build /Users/you/Sites/mysite build
scripts/controller.sh gateway-ping http://127.0.0.1:28789/
Use:
scripts/write-receipt.sh --action "bootstrap-brew" --status ok --detail "Installed php mariadb nginx"
scripts/write-receipt.sh --action "verify-stack" --status ok --detail "Apache php mariadb verified"
The receipt trail is for:
Read references/controller-surface.md for the intended lightweight Mac control-plane pattern.
Recommended local staging layout:
:80 for the app:22 for deploy/sync:8080 for alternate reverse-proxy testing3000 or 5173127.0.0.1:28789Keep it simple first. Add Proxy Manager later only if you have a real reason.
The goal is not to replace the main Ryzen gateway. The goal is to let a Mac run a lightweight local development control surface without colliding with production orchestration.
Recommended rules:
127.0.0.1 only28789Use:
scripts/render-local-gateway-env.sh
to generate a repeatable local-only environment contract.
nginx is easy to support directly through Homebrew.
Nginx Proxy Manager is optional and should be treated as a separate layer, usually containerized. This skill does not auto-install NPM because that adds more moving parts than most local Mac staging setups need.
Read references/nginx-and-npm.md before adding that layer.
mysite.testscripts/detect-stack.sh: inspect the current Mac stackscripts/bootstrap-brew.sh: install the core Homebrew packagesscripts/bootstrap-npm-tooling.sh: install the baseline npm tooling for local staging workflowsscripts/controller.sh: lightweight Mac-side controller for service/build/verify actionsscripts/detect-ports.sh: check port conflicts for Apache, nginx, JS tooling, and the local gatewayscripts/render-apache-php-snippet.sh: print the Apache PHP 8.5 enablement snippetscripts/render-local-gateway-env.sh: print a safe local-only gateway env contractscripts/render-vhost.sh: print a safe vhost blockscripts/verify-stack.sh: verify the final stackscripts/detect-sftp.sh: inspect built-in macOS SSH/SFTP statescripts/write-receipt.sh: append auditable action receipts for staging/controller workreferences/apache-layout.md: notes on stock macOS Apachereferences/sftp-on-macos.md: safe SFTP setup notes for stagingreferences/nginx-and-npm.md: when nginx or NPM is worth addingreferences/controller-surface.md: the lightweight Mac controller patternreferences/gateway-coexistence.md: how to keep local gateway testing separate from the production gateway