Lando (landofile)
The configuration file for a Lando app. Documentation: https://github.com/lando-community/lando-spec
| Type | object |
|---|---|
| File match |
.lando.yml
.lando.*.yml
|
| Schema URL | https://catalog.lintel.tools/schemas/schemastore/lando-landofile/latest.json |
| Source | https://lando-community.github.io/lando-spec/landofile-spec.json |
Validate with Lintel
npx @lintel/lintel check
The configuration file for a Lando app.
Properties
The name of the Lando app. This is used as the project name in Docker Compose and should be unique across all Lando apps on your system.
The recipe type used for the app. Recipes are pre-configured combinations of services and tooling that provide a complete development environment for common use cases. For example, the 'lamp' recipe provides Apache, MySQL and PHP, while 'drupal10' provides everything needed for Drupal 10 development including Drush.
Configuration options for specified recipe.
7 nested properties
The web server type and version for serving the application. Can be apache, nginx, or cli. Optionally specify a version number after a colon (e.g. nginx:1.25). Apache is the default if not specified. The cli option runs PHP directly without a web server.
The directory containing the web-accessible files, relative to the app root. This is where your index.php or other entry point files should be located. For Drupal sites this is often 'web' or 'docroot', for WordPress it's typically '.', and for other frameworks it varies. The path can include subdirectories using forward slashes. All web requests will be served from this directory.
The PHP version for the app. This should be specified as a major.minor version number (e.g. '7.4' or '8.2'). For LAMP/LEMP based recipes, this determines the PHP version installed in the appserver container.
The database type and version for the app. Specify as type:version where type is the database type such as 'mysql' or 'mariadb'.
Global composer dependencies to install. This follows composer.json syntax but in YAML format.
The version of Composer to install. Can be a specific version number or release channel alias.
Xdebug configuration for the app. This can be a boolean or a string of modes to enable.
List of .env files to load into all services.
List of directories to exclude from syncing to the Lando services. This is a performance optimization feature that prevents large directories like vendor and node_modules from being synced between host and container filesystems, which can significantly improve startup time and reduce disk I/O. Use ! prefix to negate an exclusion pattern.
Define custom services for your Lando app. Each service runs in its own container and can be configured with specific options like type, build commands, ports, and more. Service names must be unique and can contain letters, numbers, dots, and hyphens. Common services include web servers, databases, caching layers, and build tools.
Proxy configuration for Lando services
Define custom CLI commands that can be run via 'lando
Attach commands to Lando events hooks.
List of docker-compose files to include.
Lando plugins to load.
Definitions
Proxy configuration for Lando services
{ "appserver": "myapp.lndo.site" }{ "node": "myapp.lndo.site:5173" }
Configuration for a Lando service. Services are the core building blocks of a Lando app, representing containers that provide functionality like web servers, databases, caching, etc. Each service can be customized with build steps, runtime configuration, port mapping, and plugin-specific settings.
The Lando service type to use for this service.
The Lando service API version used to define the service.
Commands to run while the service is being built.
Commands to run as the root user while the service is being built.
Commands to run after the service is started.
Commands to run as the root user after the service is started.
Deprecated. Define ports under overrides or services instead.
SSL configuration for the service.
Expose SSL for the service.
Forwards a port to the host OS. Use true to allow Docker to manage ports (recommended). You may also specify a port number, but there is risk of conflicting with other services or applications.
Scanner configuration for the service.
5 nested properties
Docker image for the service.
Overrides the default command declared by the container image.
Environment variables for the service.
Volumes for the service.
Ports for the service.
5 nested properties
Docker image for the service.
Overrides the default command declared by the container image.
Environment variables for the service.
Volumes for the service.
Ports for the service.
List of service names to capture mail from. The mhsendmail binary will be installed in each listed service.
Global composer dependencies to install. This follows composer.json syntax but in YAML format.
The version of Composer to install. Can be a specific version number or release channel alias.
Xdebug configuration for the app. This can be a boolean or a string of modes to enable.
Command to run when starting the service.
Port to expose for the service. Set to false to disable port mapping. Values less than 1024 will cause the service to run as root.
Database credentials configuration for MySQL and MariaDB services. Allows customizing the database user, password, and database name.
3 nested properties
The database username to create and use for connections.
The password for the database user.
The name of the database to create.
Controls how the application codebase is mounted in the container. Lando automatically mounts your codebase at /app using the :cached performance optimization flag by default. Set to false or 'disabled' to prevent mounting, or specify a different Docker bind mount flag like 'ro' (read-only) or 'delegated'.
Environment variables for the service.
Volumes for the service.
The service to run the tool in. Required for single-service tooling.
The command(s) to run for the tool. When service is not specified, cmd must be an array of objects with service names as keys.
Description to help users understand the function of your tooling command.
The working directory to execute the command in.
The user to run the tool as.
Environment variables to set before running the command.
Set to app to enable interactive options for the command.
1 nested properties
4 nested properties
TODO
Description of the environment option.