Lando is for developers who want to easily specifiy and quickly spin up the services and tools needed to develop their projects.
Lando is a free, open source and cross-platform local development environment and DevOps tool built on Docker container technology and developed by Tandem. It is designed to work with most major languages, frameworks and services and to provide an easy way for users to specify simple or complex development requirements for their projects.
In that way it can be thought of as a development dependency management tool.
With Lando you can...
- Easily mimic your production environment locally.
- Standardize your teams dev environments and tooling on OSX, Windows and Linux.
- Integrate with hosting providers like Pantheon
- Store all of the above in a version controlled config file called
.lando.yml
- Easily customize or extend tooling, deployment options and basically any other functionality.
- Free yourself from the tyranny of inferior local development products.
- apache
- elasticsearch
- mailhog
- mariadb
- memcached
- mongo
- mssql
- mysql
- nginx
- phpmyadmin
- postgres
- redis
- solr
- varnish
- Adding additional services
- Adding additional tooling
- Adding additional routes
- Adding additional events
- Setting up front end tooling
- Accessing services (eg your database) from the host
- Importing SQL databases
- Exporting SQL databases
- Using Composer to Manage a Project
- Lando and CI
- Lando, Pantheon, CI, and Behat (BDD)
A developer should be able to get a running site and the tools needed to develop that site with a single, short config file called .lando.yml
that lives in the root directory of your project and a few lando
commands.
git clone myproject.git
cd myproject
lando start
cd /path/to/my/local/code
lando init
lando start
mkdir -p mysite
cd mysite
lando init pantheon | lando init github
lando start
You can also easily configure a lando.yml
recipe
name: myproject
recipe: lamp
config:
php: '7.1'
webroot: www
database: postgres:9.6
config:
php: config/php.ini
or go totally nuts and scaffold out a custom stack
name: myproject
recipe: lamp
config:
php: '7.1'
webroot: www
database: postgres:9.6
config:
php: config/php.ini
events:
post-start:
- appserver: echo SOMECOMMAND
- echo SOMETHINGELSE
post-mycustomthing:
- echo TEST
services:
node:
type: node:6.10
globals:
grunt-cli: "latest"
build:
- cd /app && npm install --production
appserver:
build:
- cd /app && composer install
mailhog:
type: mailhog
hogfrom:
- appserver
cache:
type: memcached:1.4
mem: 128
search:
type: solr:5.5
core: hard
tooling:
node:
service: node
npm:
service: node
grunt:
service: node
mycustomthing:
service: appserver
cmd: ps
Lando is seeking to eventually merge into and then replace the Kalabox project. This means that eventually Lando will have all the great features you've come to love in the Kalabox project. That said the primary high level goals for this transition are to
- Provide a more reliable and robust underlying product
- Replace MAMP and other local dev stacks
- Reduce the complexity of building out complicated apps a la Pantheon
- Implement a simple per-app configuration file that can be stored in version control
- Provide mechanisms for packaging in development tools and build steps along with services
There are various features that need to be implemented to achieve the above.
Transition the core frameworkProvide a services layer on top of docker composeProvide a build and tooling layerProvide additional core services and toolsProvide a recipes layer on top of servicesProvide handling of upstream git remotes (lando init command)Provide an events layerReplicate Pantheon environmentIntegrate with Pantheon- Build GUI