An open-source local LEMP development stack using Docker. Comes with a set of Bash scripts for starting and stopping the stack, creating and deleting WordPress installs, keeping the hosts file updated, and running WP-CLI commands, among other useful features.
Pilothouse supports multiple local sites, Xdebug, multiple versions of PHP, and running WP-CLI commands directly from the host. Pilothouse is tailored to WordPress projects, but can be used for general PHP projects as well.
- PHP 5.6, 7.0, and 7.1
- Install Docker.
- Once installed, open Docker on your computer and run through the initial configuration settings.
- Clone the repo to your computer.
- Add the
binpath in the repo to your shell include path (more info).
pilothouse upto build the containers and boot up the system. On the first run, this will take quite a while as the Docker containers are downloaded and built.
- Create a new site by running
- See the Wiki for instructions on using WP-CLI, Xdebug, Mailcatcher, etc.
- Local WordPress sites are located in the
sitesdirectory. This can be changed.
- The default WordPress username and password is
- The Bash scripts have only been tested on macOS; your mileage on other OSes will vary.
- The master branch should be relatively stable, except for major releases. The develop branch should be considered "beta" and is subject to non-backwards-compatible changes.
wp [command]: Runs a WP-CLI command in the Docker container against the current site.
pilothouse up: Boots up the Docker containers, and adds all necessary site entries to the host's hosts file.
pilothouse down: Halts the Docker containers, removing all site entries from the host's hosts file.
pilothouse restart [container]: Restarts the specified Docker container (
memcached, etc.), or the entire system if no container is specified.
pilothouse create [site]: Creates a new local site.
pilothouse delete [site]: Deletes an existing local site.
pilothouse generate-ssl [site]: Generates, installs, and trusts a self-signed SSL certificate for the specified site.
pilothouse mysql [command]: Runs the provided MySQL command. The command will be run on the database of the current site, or with no database selected if not run from within a site directory.
pilothouse compose [command]: Runs a
docker-composecommand with required environment variables set.