/lando

You look absolutely beautiful!

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Lando

screenshot

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.

Begin by checking out the

Then spin up one of our preconfigured recipe start states

Or build up from a base language

And then mix in additional auxiliary services

And then try out some advanced stuff

And then dive deep into reference materials

Or TL;DR

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.

1. Pull a repo that already has a .lando.yml

git clone myproject.git
cd myproject
lando start

2. Or init a local codebase with a lando recipe

cd /path/to/my/local/code
lando init
lando start

3. Or pull from GitHub or Pantheon

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

Roadmap

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.

  1. Transition the core framework
  2. Provide a services layer on top of docker compose
  3. Provide a build and tooling layer
  4. Provide additional core services and tools
  5. Provide a recipes layer on top of services
  6. Provide handling of upstream git remotes (lando init command)
  7. Provide an events layer
  8. Replicate Pantheon environment
  9. Integrate with Pantheon
  10. Build GUI

Other Resources