JavaScript Nginx Other
Latest commit 16f7bf6 Aug 8, 2017 @PhilipNewcomer PhilipNewcomer 0.6.1

README.md

Pilothouse

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!

What's Inside

  • Nginx
  • PHP 5.6, 7.0, and 7.1
  • MariaDB
  • phpMyAdmin
  • Redis
  • Xdebug
  • Composer
  • WP-CLI
  • MailCatcher

Getting Started

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 pilothouse create.

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.

Commands

Run pilothouse --help for inline usage instructions at any time.

System Commands

  • 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 (nginx, memcached, etc.), or the entire system if no container is specified.

Site Commands

  • 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.

Utility Commands

  • 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.

Notes

  • 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 pilothouse.
  • The default WordPress username and password is admin/password.

Meta

Pilothouse is open source software licensed under the GPLv2. Pilothouse was created and is maintained by Philip Newcomer. Props to these awesome contributors!