Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
.vuepress
alliance
contact
download
privacy
sponsor
terms
.platform.app.yaml
README.md
package.json
yarn.lock

README.md

metaTitle description image home navbar pageClass heroImage byline whyLando whys whereByline wheres whatByline whats howByline
A Local Dev Tool For Every Project | Lando
Lando is a free, open source and Docker driven local development tool for all projects that is fast, easy, powerful, liberating and works on Windows, macOS and Linux.
true
true
lando-front
/images/hero-white.png
Free yourself from the mind-forged manacles of lesser dev tools. Save time, headaches, frustration and do more real work.
Lando vastly simplifies local development and DevOps so you can focus on what's important; delivering value to your clients and customers. It's...
title details
Easy
Get your first project rolling in minutes regardless of the tech or your operating system.
title details
Complete
Run almost anything, anywhere; throw away your other dev tools and use the one dev tool to rule them all.
title details
Battle Tested
Supported by a core group of maintainers and a growing community 10,000+ developers strong.
title details
Portable
Specify simple or complex dev requirements in a single config file and ship them to all your devs.
title details
Sane Defaults
Automatically set up normally arduous things like SSL, SSH keys, pretty urls, cross container networking, build steps, run time automation events and fast file sharing.
title details
Powerful Overrides
Don't like our defaults? Every part of Lando is overrideable down to the Docker Compose level. This means you get all the benefits of Lando without sacrificing any of the power of Docker.
title details
Free
Pay nothing.
title details
Open Source
See everything.
Lando is meant to be run locally but you can run it pretty much anywhere.
title icon
Apple
devicon-apple-original
title icon
Linux
devicon-linux-plain
title icon
Windows
devicon-windows8-original
title icon
Travis
devicon-travis-plain
title icon
Jenkins
devicons devicons-jenkins
title icon
Amazon Web Services
devicon-amazonwebservices-original
Lando runs pretty much everything, all in isolated containers that won't pollute your machine. Here are some common use cases...
title icon
PHP
devicon-php-plain
title icon
JavaScript/NodeJS
devicon-nodejs-plain
title icon
Ruby
devicon-ruby-plain-wordmark
title icon
Python
devicon-python-plain-wordmark
title icon
dotnet
devicon-dot-net-plain-wordmark
title icon
go
devicon-go-plain
title icon
java
devicon-java-plain-wordmark
title icon
AngularJS
devicon-angularjs-plain
title icon
Bootstrap
devicon-bootstrap-plain-wordmark
title icon
CodeIgniter
devicon-codeigniter-plain-wordmark
title icon
Django
devicon-django-plain
title icon
Drupal
devicon-drupal-plain-wordmark
title icon
Express
devicon-express-original
title icon
Jekyll
devicons devicons-jekyll_small
title icon
Joomla
devicons devicons-joomla
title icon
Laravel
devicon-laravel-plain-wordmark
title icon
Rails
devicon-rails-plain-wordmark
title icon
React
devicon-react-original-wordmark
title icon
Symfony
devicon-symfony-original-wordmark
title icon
Vue.js
devicon-vuejs-plain-wordmark
title icon
WordPress
devicon-wordpress-plain-wordmark
title icon
Apache
devicon-apache-plain-wordmark
title icon
Composer
devicons devicons-composer
title icon
MySQL
devicon-mysql-plain-wordmark
title icon
mongodb
devicon-mongodb-plain-wordmark
title icon
nginx
devicon-nginx-original
title icon
postgresql
devicon-postgresql-plain-wordmark
title icon
redis
devicon-redis-plain-wordmark
title icon
tomcat
devicon-tomcat-line-wordmark
Commit a Landofile that describes your project's dependencies to your code repository and collaborate like you would any other file.

1

Initialize a codebase to get a Landofile

Here are a few examples...

Interactively initialize your code

lando init

Set up a mean recipe that runs on a particular port with a particular command

lando init --source cwd \
  --recipe mean \
  --option port=3000 \
  --option command="yarn watch" \
  --name meanest-app-youve-ever-seen

Interactively clone a site from Pantheon

lando init --source pantheon

Spin up a new Drupal 7 site

lando init \
  --source remote \
  --remote-url https://ftp.drupal.org/files/projects/drupal-7.59.tar.gz \
  --remote-options="--strip-components 1" \
  --recipe drupal7 --webroot . \
  --name hello-drupal7

2

Optionally customize your Landofile for MOAR POWER

Here is a progressively complexifying WordPress example...

Default WordPress recipe Landofile config, good for most use cases out of the box

name: my-app
recipe: wordpress

Add some basic recipe config

name: my-app
recipe: wordpress
config:
  database: postgres
  php: '7.3'
  xdebug: true

Add node tooling, solr, phpmyadmin and custom php config

name: my-app
recipe: wordpress
config:
  database: postgres
  php: '7.3'
  xdebug: true
  config:
    php: my-custom-php.ini
proxy:
  pma:
   - database-my-app.lndo.site
services:
  index:
    type: solr
  node:
    type: node:10
    globals:
      gulp: latest
  pma:
    type: phpmyadmin
    hosts:
      - database
tooling:
  yarn:
    service: node
  node:
    service: node

Add php extensions, build steps, automation, docker overrides

name: my-app
recipe: wordpress
config:
  database: postgres
  php: '7.3'
  xdebug: true
  config:
    php: my-custom-php.ini
events:
  post-db-import:
    - appserver: wp search-replace
proxy:
  pma:
   - database-my-app.lndo.site
services:
  appserver:
    build_as_root:
      - apt update -y && apt-get install vim -y
      - /helpers/my-script-to-install-php-extension.sh memcached
    build:
      - composer install
    overrides:
      environment:
        APP_LEVEL: dev
        TAYLOR: swift
  index:
    type: solr
  node:
    type: node:10
    globals:
      gulp: latest
    build:
      - yarn
  frontend:
    type: node:10
    command: yarn start
    build:
      - yarn
  pma:
    type: phpmyadmin
    hosts:
      - database
tooling:
  yarn:
    service: node
  node:
    service: node
  gulp:
    service: node
  test:
    cmd:
      - appserver: composer test
      - frontend: yarn test
  deploy:
    service: appserver
    cmd: /path/to/script.sh

3

Start it up and try out some tooling commands

Here are some commands for our complex WordPress config above.

Start your app

lando start

Explore its tooling options

# See what tools are available in your app
lando

# Run wp-cli commands
lando wp

# Drop into a postgres shell
lando psql

# Import a database
lando db-import dump.sql

# Run composer and yarn tests
lando test

# Install more node packages
lando yarn add bootstrap

# Start up gulp watch
lando gulp watch

4

Commit and distribute

Once you are feeling good about your Landofile, commit it to your repository so other developers can easily get spun up.

Project lead commits to the repo

git add .lando.yml
git commit -m "Supercharge my dev"
git push

Now subsequent developers only need to git clone and lando start

git clone my-project & cd my-project & lando start

5

Focus on more important shit

Enjoy the benefits of lives-in-repo config, per-app local dev dependency management and standardization.

You can’t perform that action at this time.