Local Development Environments#
Even though Lagoon has only a hard dependency on Docker and Docker Compose (which is mostly shipped with Docker) there are some things which are nice for local development that are not included in Docker:
- An HTTP reverse proxy for nice URLs and HTTPS offloading.
- A DNS system so we don't have to remember IP addresses.
- SSH agents to use SSH keys within containers.
- A system that receives and displays mail locally.
You do not need to install Lagoon locally to use it locally! That sounds confusing but follow the documentation. Lagoon is the system that deploys your local development environment to your production environment, it's not the environment itself.
pygmy or Lando - the choice is yours#
Lagoon has traditionally worked best with
pygmy , which is the amazee.io flavored system of the above tools and works out of the box with Lagoon. It lives at https://github.com/pygmystack/pygmy
pygmy is written in Golang, so to install it, run:
brew tap pygmystack/pygmy && brew install pygmy. For detailed usage or installation info on pygmy, see its documentation.
As announced in our blog post, Lagoon is now also compatible with Lando! For more information, please see the documentation at https://docs.lando.dev/config/lagoon.html to get yourself up and running.
Lando's workflow for Lagoon will be familiar to users of Lando, and will also be the easiest way for Lagoon newcomers to get up and running. Pygmy presents a closer integration with Docker, which will lend itself better to more complex scenarios and use cases but will also require a deeper understanding.
We have previously evaluated adding support for other systems like Docksal and Docker4Drupal, and while we may add support for these in the future, our current focus is on supporting using Lando and pygmy. If you do have Lagoon running with one of these (or other) tools, we would love for you to submit a PR on GitHub!