A LEMP local development environment based on Docker.
Pilothouse is a command line app that automates the process of managing a complete Docker-based local development environment. Pilothouse is currently only supported on macOS, but support for Linux and Windows will be coming soon!
Pilothouse is completely free and open source, and features:
- Unlimited local sites
- Laravel and WordPress support built-in
- Seamless Composer and WP-CLI integration
- Multiple PHP versions, configurable on a per-site basis
- Automated hosts file management
- SSL automatically available for all local sites
- Remote PHP debugging using Xdebug
...and much more!
- PHP 5.6, 7.0, and 7.1
Pilothouse is a NodeJS script which manages a Docker-based stack. Thus, you will need to have Docker Community Edition and NodeJS installed. If you're a web developer, there's a pretty good chance you already have Node.
Once you have Docker and Node on your system, install Pilothouse with:
npm install -g pilothouse
Then, start up the system using
pilothouse up. The first time you start Pilothouse, your system will need to download the Docker containers, which may take quite a while, depending on the speed of your internet connection.
Once initial startup is complete, create a new local site by running
Local sites are by default located in the
Sites directory of your user home directory, but you can use a different location if you prefer.
See below for the full list of available commands, and be sure to take a look at the Wiki for advanced usage.
pilothouse --help for inline usage instructions at any time.
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.
Third-party Software Commands
artisan [command]: Runs Laravel Artisan in the Docker container against the current site.
composer [command]: Runs a Composer command in the Docker container against the current site.
wp [command]: Runs a WP-CLI command in the Docker container against the current site.
pilothouse compose [command]: Runs a Docker Compose command against the stack.
pilothouse logs [container]: Tails the logs for the specified container, or the entire stack if no container is specified.
pilothouse mysql [query]: Runs the provided MySQL query. The command will be run on the database of the current site, or with no database selected if not run from within a local site directory.
pilothouse shell <container>: Opens a command line shell in the specified container.
pilothouse status: Displays Pilothouse's status.
pilothouse update-containers: Updates the Docker containers to the latest versions.
- See the Wiki for instructions on using WP-CLI, Xdebug, Mailcatcher, etc.
- phpMyAdmin is accessible at http://localhost:8080/.
- You can connect to MySQL remotely using the host
127.0.0.1, the username
pilothouse, and the password
- The default WordPress username and password is