├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .gitattributes ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── security.md ├── PULL_REQUEST_TEMPLATE.md ├── stale.yml └── workflows │ ├── pr-docs-tests.yml │ ├── pr-linter.yml │ └── release.yml ├── .gitignore ├── .lando.yml ├── .node-version ├── .npmignore ├── .tool-versions ├── .vitepress ├── config.mjs └── theme │ ├── VPLPluginItem.vue │ ├── VPLPluginItems.vue │ ├── VPLPluginLayout.vue │ └── index.mjs ├── CHANGELOG.md ├── LICENSE.md ├── PRIVACY.md ├── README.md ├── contrib ├── coder.md ├── evangelist.md ├── index.md ├── kickoff-meeting-3-27-2024.md └── sponsoring.md ├── data.md ├── getting-started ├── first-app.md ├── index.md ├── installation.md ├── requirements.md ├── uninstalling.md ├── updating.md └── what-it-do.md ├── guides.md ├── guides ├── access-by-other-devices.md ├── accessibility.md ├── db-export.md ├── db-import.md ├── external-access.md ├── how-do-i-configure-a-lando-recipe.md ├── how-do-i-set-the-timezone-of-a-lando-service.md ├── lando-corporate-network-tips.md ├── lando-info.md ├── lando-phpstorm.md ├── lando-with-vscode.md ├── offline-dev.md ├── overriding-a-service-version.md ├── updating-plugins-v4.md └── updating-to-rc2.md ├── help.md ├── help ├── dns-rebind.md ├── file-sync.md ├── logs.md ├── proxy.md ├── purging-containers.md ├── switching-dbs.md ├── updating.md ├── win-also-vb.md ├── win-file-upload.md └── wkbox.md ├── index.md ├── install.md ├── lando-101.md ├── lando-101 ├── lando-config.md ├── lando-init.md ├── lando-proxy.md ├── lando-services.md ├── lando-start.md └── lando-tooling.md ├── netlify.toml ├── package-lock.json ├── package.json ├── plugins.md ├── plugins ├── acquia-plugin.md ├── apache-plugin.md ├── backdrop-plugin.md ├── compose-plugin.md ├── dotnet-plugin.md ├── drupal-plugin.md ├── elasticsearch-plugin.md ├── go-plugin.md ├── joomla-plugin.md ├── lagoon-plugin.md ├── lamp-plugin.md ├── laravel-plugin.md ├── lemp-plugin.md ├── mailhog-plugin.md ├── mariadb-plugin.md ├── mean-plugin.md ├── memcached-plugin.md ├── mongo-plugin.md ├── mssql-plugin.md ├── mysql-plugin.md ├── nginx-plugin.md ├── node-plugin.md ├── pantheon-plugin.md ├── php-plugin.md ├── phpmyadmin-plugin.md ├── platformsh-plugin.md ├── postgres-plugin.md ├── python-plugin.md ├── redis-plugin.md ├── ruby-plugin.md ├── solr-plugin.md ├── symfony-plugin.md ├── tomcat-plugin.md ├── varnish-plugin.md └── wordpress-plugin.md ├── public ├── contact.html ├── favicon.ico ├── favicon.svg ├── images │ ├── add-remote-interpreter-docker.png │ ├── d7-db-creds.png │ ├── drupal7-extant │ │ ├── landoAppName.jpg │ │ ├── landoCodeBase.jpg │ │ ├── landoInfo.jpg │ │ ├── landoInit.jpg │ │ ├── landoStart.jpg │ │ └── landoWebroot.jpg │ ├── drupalicon.svg │ ├── drush-xdebug-phpstorm.png │ ├── edgerelease.png │ ├── github-personal-access.png │ ├── hero-pink.png │ ├── hero-white.png │ ├── hero.png │ ├── icon.png │ ├── icon.svg │ ├── lamp-con.png │ ├── lamp-start.png │ ├── lando-101 │ │ ├── lando-101-index.jpg │ │ ├── logo-pink-medium.png │ │ └── mh.jpg │ ├── lando-screenshot.png │ ├── logo-1.png │ ├── logo-pink-icon.png │ ├── logo-pink-mini.png │ ├── logo-pink-small.png │ ├── logo-small.png │ ├── logo.png │ ├── logo.svg │ ├── seal.png │ ├── stablerelease.png │ ├── tandem-pink.png │ ├── tandem.png │ └── test-frameworks-remote-interpreter.png └── sitemap.xml ├── rename-sitemap.js ├── security.md ├── support.md ├── team.md ├── terms.md └── troubleshooting.md /.editorconfig: -------------------------------------------------------------------------------- 1 | # top-most EditorConfig file 2 | root = true 3 | 4 | # Unix-style newlines with a newline ending every file 5 | [*] 6 | end_of_line = lf 7 | insert_final_newline = true 8 | charset = utf-8 9 | 10 | [*.js] 11 | indent_style = space 12 | indent_size = 2 13 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | temp 2 | cache 3 | dist 4 | _site 5 | !.vitepress 6 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true, 4 | "mocha": true, 5 | "es6": true 6 | }, 7 | "parser": "vue-eslint-parser", 8 | "parserOptions": { 9 | "parser": "babel-eslint", 10 | "allowImportExportEverywhere": true, 11 | "sourceType": "module", 12 | "ecmaVersion": 9 13 | }, 14 | "extends": [ 15 | "plugin:vue/recommended", 16 | "google" 17 | ], 18 | "rules": { 19 | "vue/multi-word-component-names": 0, 20 | "linebreak-style": 0, 21 | "arrow-parens": ["error", 22 | "as-needed" 23 | ], 24 | "max-len": ["error", { 25 | "code": 12000, 26 | "ignoreComments": true 27 | }], 28 | "require-jsdoc": ["error", { 29 | "require": { 30 | "FunctionDeclaration": false, 31 | "MethodDefinition": false, 32 | "ClassDeclaration": false, 33 | "ArrowFunctionExpression": false, 34 | "FunctionExpression": false 35 | } 36 | }] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Declare files that will always have LF line endings on checkout. 5 | *.js text eol=lf 6 | *.sh text eol=lf 7 | *.conf text eol=lf 8 | *.cnf text eol=lf 9 | *.ini text eol=lf 10 | *.php text eol=lf 11 | *.vcl text eol=lf 12 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [lando, pirog] 4 | patreon: devwithlando 5 | open_collective: devwithlando 6 | custom: https://lando.dev/join 7 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug 3 | about: Create a bug report to help us improve lando 4 | labels: bug 5 | --- 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature 3 | about: Suggest an idea for this project 4 | labels: feature 5 | --- 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/security.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Security 3 | about: Create a security issue 4 | labels: documentation 5 | --- 6 | 7 | **DO NOT SUBMIT A SECURITY ISSUE HERE!** 8 | 9 | If you have discovered a security issue with Lando, please contact the Lando Security Team directly at [security@devwithlando.io](mailto:security@devwithlando.io). 10 | 11 | We manage security issues separately in a private repository until the issue has been resolved. Even if you're not sure if it's a security problem, please contact the security team before filing an issue, blogging, or tweeting about it. 12 | 13 | **DO NOT SUBMIT A SECURITY ISSUE HERE!** 14 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Bare minimum self-checks 2 | 3 | > [What do you think of a person who only does the bare minimum?](https://getyarn.io/yarn-clip/dcf80710-425e-478b-bde1-c107bd11e849) 4 | 5 | - [ ] I've updated this PR with the latest code from `main` 6 | - [ ] I've done a cursory QA pass of my code locally 7 | - [ ] I've ensured all automated status check and tests pass 8 | - [ ] I've [connected this PR to an issue](https://help.zenhub.com/support/solutions/articles/43000010350-connecting-pull-requests-to-github-issues) 9 | 10 | ### Pieces of flare 11 | 12 | - [ ] I've written a unit or functional test for my code 13 | - [ ] I've updated relevant documentation it my code changes it 14 | - [ ] I've updated this repo's README if my code changes it 15 | - [ ] I've updated this repo's CHANGELOG with my change unless its a trivial change (like updating a typo in the docs) 16 | 17 | ### Finally 18 | 19 | - [ ] I've [requested a review](https://help.github.com/en/articles/requesting-a-pull-request-review) with relevant people 20 | 21 | If you have any issues or need help please join the `#contributors` channel in the [Lando slack](https://www.launchpass.com/devwithlando) and someone will gladly help you out! 22 | 23 | You can also check out the [coder guide](https://docs.lando.dev/contrib/coder.html). 24 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 180 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 180 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - pinned 8 | - security 9 | - critical 10 | - pirog 11 | # Label to use when marking an issue as stale 12 | staleLabel: stale 13 | # Comment to post when marking an issue as stale. Set to `false` to disable 14 | markComment: > 15 | This issue has been automatically marked as stale because it has not had 16 | recent activity. It will be closed if no further activity occurs. Thank you 17 | for your contributions and please check out [this](https://github.com/probot/stale#is-closing-stale-issues-really-a-good-idea) if you are 18 | wondering why we auto close issues. 19 | # Comment to post when closing a stale issue. Set to `false` to disable 20 | closeComment: > 21 | We haven't heard anything here for about a year so we are automatically closing this issue to keep things tidy. 22 | If this is in error then please post in this thread and request the issue be reopened! 23 | -------------------------------------------------------------------------------- /.github/workflows/pr-docs-tests.yml: -------------------------------------------------------------------------------- 1 | name: Run Docs Tests 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | docs-tests: 8 | runs-on: ${{ matrix.os }} 9 | env: 10 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 11 | strategy: 12 | matrix: 13 | os: 14 | - ubuntu-24.04 15 | node-version: 16 | - '18' 17 | steps: 18 | - name: Checkout code 19 | uses: actions/checkout@v4 20 | - name: Cache version builds 21 | uses: actions/cache@v4 22 | with: 23 | key: lando-mvb-docs 24 | path: docs/.vitepress/cache/@lando/mvb 25 | save-always: true 26 | - name: Install node ${{ matrix.node-version }} 27 | uses: actions/setup-node@v4 28 | with: 29 | node-version: ${{ matrix.node-version }} 30 | cache: npm 31 | - name: Install dependencies 32 | run: npm clean-install --prefer-offline --frozen-lockfile 33 | - name: Run linter 34 | run: npm run lint 35 | - name: Test mvb 36 | run: npm run mvb 37 | - name: Test build 38 | run: npm run build 39 | -------------------------------------------------------------------------------- /.github/workflows/pr-linter.yml: -------------------------------------------------------------------------------- 1 | name: Lint Code 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | lint: 8 | runs-on: ${{ matrix.os }} 9 | strategy: 10 | matrix: 11 | os: 12 | - ubuntu-24.04 13 | node-version: 14 | - '18' 15 | steps: 16 | - name: Checkout code 17 | uses: actions/checkout@v4 18 | - name: Install node ${{ matrix.node-version }} 19 | uses: actions/setup-node@v4 20 | with: 21 | node-version: ${{ matrix.node-version }} 22 | cache: npm 23 | - name: Install dependencies 24 | run: npm clean-install --prefer-offline --frozen-lockfile 25 | - name: Run code linter 26 | run: npm run lint 27 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Bump Version 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | 8 | jobs: 9 | deploy: 10 | runs-on: ${{ matrix.os }} 11 | env: 12 | TERM: xterm 13 | strategy: 14 | matrix: 15 | os: 16 | - ubuntu-24.04 17 | node-version: 18 | - '18' 19 | steps: 20 | - name: Checkout code 21 | uses: actions/checkout@v4 22 | - name: Install node ${{ matrix.node-version }} 23 | uses: actions/setup-node@v4 24 | with: 25 | node-version: ${{ matrix.node-version }} 26 | registry-url: https://registry.npmjs.org 27 | cache: npm 28 | - name: Install dependencies 29 | run: npm clean-install --prefer-offline --frozen-lockfile 30 | - name: Lint code 31 | run: npm run lint 32 | - name: Prepare release 33 | uses: lando/prepare-release-action@v3 34 | with: 35 | sync-token: ${{ secrets.RTFM47_COAXIUM_INJECTOR }} 36 | sync-email: rtfm47@lando.dev 37 | sync-username: rtfm-47 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Common sys files 2 | .*.swp 3 | ._* 4 | .git 5 | .hg 6 | .sign 7 | .lock-wscript 8 | .svn 9 | .wafpickle-* 10 | .DS_Store 11 | .idea/ 12 | *.tar 13 | *.jxp 14 | *.sublime-* 15 | 16 | # Logs 17 | *.log 18 | logs 19 | 20 | # NPM files 21 | node_modules 22 | 23 | # lando config 24 | env.yaml 25 | env.yml 26 | lando.env 27 | .lando.local.yml 28 | 29 | # coverage reporting 30 | .nyc_output 31 | coverage/ 32 | 33 | # docs 34 | .temp 35 | .cache 36 | _site 37 | dist 38 | cache 39 | temp 40 | config.*.timestamp-*-*.* 41 | 42 | # YARN 43 | yarn.lock 44 | -------------------------------------------------------------------------------- /.lando.yml: -------------------------------------------------------------------------------- 1 | name: lando-docs 2 | services: 3 | node: 4 | type: node:18 5 | build: 6 | - npm install 7 | scanner: false 8 | ssl: false 9 | sslExpose: false 10 | overrides: 11 | ports: 12 | - 8011:8011 13 | tooling: 14 | node: 15 | service: node 16 | npm: 17 | service: node 18 | 19 | -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 18 2 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .github 2 | .nyc_output 3 | coverage 4 | docs 5 | examples 6 | guides 7 | test 8 | -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | nodejs 14.17.6 2 | -------------------------------------------------------------------------------- /.vitepress/config.mjs: -------------------------------------------------------------------------------- 1 | import {defineConfig} from '@lando/vitepress-theme-default-plus/config'; 2 | 3 | const hat = ''; 4 | const puzzle = ''; 5 | 6 | export default defineConfig({ 7 | title: 'Lando', 8 | description: 'Documentation', 9 | landoDocs: 3, 10 | head: [ 11 | ['meta', {name: 'viewport', content: 'width=device-width, initial-scale=1'}], 12 | ['link', {rel: 'icon', href: '/favicon.ico', size: 'any'}], 13 | ['link', {rel: 'icon', href: '/favicon.svg', type: 'image/svg+xml'}], 14 | ], 15 | themeConfig: { 16 | editLink: { 17 | pattern: 'https://github.com/lando/docs/edit/main/:path', 18 | }, 19 | multiVersionBuild: { 20 | satisfies: '>=4.1.0', 21 | }, 22 | collections: { 23 | guide: { 24 | frontmatter: { 25 | collection: 'guide', 26 | }, 27 | icon: hat, 28 | iconLink: '/guides', 29 | patterns: ['guides/**/*.md', 'getting-started/updating.md', 'getting-started/uninstalling.md'], 30 | }, 31 | lando101: { 32 | frontmatter: { 33 | collection: 'lando101', 34 | }, 35 | icon: hat, 36 | iconLink: '/lando-101', 37 | patterns: ['lando-101/**/*.md'], 38 | }, 39 | plugins: { 40 | frontmatter: { 41 | collection: 'plugins', 42 | layout: 'plugin', 43 | }, 44 | icon: puzzle, 45 | iconLink: '/plugins', 46 | patterns: ['plugins/**/*.md'], 47 | }, 48 | post: { 49 | frontmatter: { 50 | collection: 'post', 51 | contributors: false, 52 | backLink: { 53 | text: '<- Back to blog', 54 | link: '/blog', 55 | }, 56 | aside: false, 57 | sidebar: false, 58 | prev: false, 59 | next: false, 60 | editLink: false, 61 | }, 62 | icon: '', 63 | iconLink: '/blog', 64 | patterns: ['blog/**/*.md'], 65 | }, 66 | troubleshooting: { 67 | frontmatter: { 68 | collection: 'troubleshooting', 69 | }, 70 | icon: '', 71 | iconLink: '/troubleshooting', 72 | patterns: ['help/**/*.md', 'troubleshooting/**/*.md'], 73 | }, 74 | }, 75 | layouts: { 76 | plugin: './.vitepress/theme/VPLPluginLayout.vue', 77 | }, 78 | sidebar: { 79 | '/': [ 80 | { 81 | text: 'Introduction', 82 | collapsed: false, 83 | items: [ 84 | {text: 'What it do?', link: '/getting-started/'}, 85 | {text: 'How does it work?', link: '/getting-started/what-it-do'}, 86 | {text: 'Starting your first app', link: '/getting-started/first-app'}, 87 | {text: 'Requirements', link: '/getting-started/requirements'}, 88 | {text: 'Lando 101', link: '/lando-101'}, 89 | ], 90 | }, 91 | { 92 | text: 'Installation', 93 | collapsed: false, 94 | items: [ 95 | {text: 'macOS', link: 'https://docs.lando.dev/install/macos.html'}, 96 | {text: 'Linux', link: 'https://docs.lando.dev/install/linux.html'}, 97 | {text: 'Windows', link: 'https://docs.lando.dev/install/windows.html'}, 98 | {text: 'GitHub Actions', link: 'https://docs.lando.dev/install/gha.html'}, 99 | {text: 'Source', link: 'https://docs.lando.dev/install/source.html'}, 100 | ], 101 | }, 102 | { 103 | text: 'Help & Support', 104 | collapsed: false, 105 | items: [ 106 | {text: 'GitHub', link: 'https://github.com/lando/dotnet/issues/new/choose'}, 107 | {text: 'Slack', link: 'https://www.launchpass.com/devwithlando'}, 108 | {text: 'Contact Us', link: '/support'}, 109 | {text: 'Troubleshooting', link: '/troubleshooting'}, 110 | {text: 'Guides', link: '/guides'}, 111 | {text: 'Examples', link: 'https://github.com/lando/core/tree/main/examples'}, 112 | ], 113 | }, 114 | { 115 | text: 'Contributing', 116 | collapsed: false, 117 | items: [ 118 | {text: 'Getting Involved', link: '/contrib/index'}, 119 | {text: 'Coding', link: '/contrib/coder'}, 120 | {text: 'Evangelizing', link: '/contrib/evangelist'}, 121 | {text: 'Sponsoring', link: '/contrib/sponsoring'}, 122 | {text: 'Security', link: '/security'}, 123 | {text: 'Team', link: '/team'}, 124 | 125 | ], 126 | }, 127 | { 128 | collapsed: false, 129 | items: [ 130 | { 131 | text: 'Plugins', 132 | link: '/plugins', 133 | }, 134 | ], 135 | }, 136 | 137 | ], 138 | }, 139 | }, 140 | }); 141 | -------------------------------------------------------------------------------- /.vitepress/theme/VPLPluginItem.vue: -------------------------------------------------------------------------------- 1 | 114 | 115 | 165 | 166 | 268 | -------------------------------------------------------------------------------- /.vitepress/theme/VPLPluginItems.vue: -------------------------------------------------------------------------------- 1 | 36 | 37 | 115 | 116 | 196 | -------------------------------------------------------------------------------- /.vitepress/theme/VPLPluginLayout.vue: -------------------------------------------------------------------------------- 1 | 39 | 40 | 43 | 44 | 46 | -------------------------------------------------------------------------------- /.vitepress/theme/index.mjs: -------------------------------------------------------------------------------- 1 | import VPLTheme from '@lando/vitepress-theme-default-plus'; 2 | 3 | export default VPLTheme; 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v4.1.0 - [February 8, 2023](https://github.com/lando/docs/releases/tag/v4.1.0) 2 | 3 | * VitePressed 4 | 5 | ## v4.0.1 - [December 20, 2022](https://github.com/lando/docs/releases/tag/v4.0.1) 6 | 7 | * Rebased on new docs architecture 8 | * Removed WSL2 post until we can rework it for 2022 9 | * Upgraded to [vuepress-theme-default-plus@v1.0.0-beta.45](https://github.com/lando/vuepress-theme-default-plus/releases/tag/v1.0.0-beta.44) 10 | 11 | ## v4.0.0 - [February 26, 2022](https://github.com/lando/docs/releases/tag/v4.0.0) 12 | 13 | * Rebased on new docs architecture 14 | * Removed dangling `` in home footer 15 | * Upgraded to [vuepress-theme-default-plus@v1.0.0-beta.29](https://github.com/lando/vuepress-theme-default-plus/releases/tag/v1.0.0-beta.29) 16 | 17 | ## v0.1.2 - [December 3, 2021](https://github.com/lando/docs/releases/tag/v0.1.2) 18 | 19 | Lando is **free** and **open source** software that relies on contributions from developers like you! If you like Lando then help us spend more time making, updating and supporting it by [contributing](https://github.com/sponsors/lando). 20 | 21 | [Various Changes](https://github.com/lando/docs/compare/v0.1.1...v0.1.2) 22 | 23 | ## v0.1.1 - [December 3, 2021](https://github.com/lando/docs/releases/tag/v0.1.1) 24 | 25 | Lando is **free** and **open source** software that relies on contributions from developers like you! If you like Lando then help us spend more time making, updating and supporting it by [contributing](https://github.com/sponsors/lando). 26 | 27 | * Update PHP Docs 28 | 29 | ## v0.1.0 - [December 3, 2021](https://github.com/lando/docs/releases/tag/v0.1.0) 30 | 31 | Lando is **free** and **open source** software that relies on contributions from developers like you! If you like Lando then help us spend more time making, updating and supporting it by [contributing](https://github.com/sponsors/lando). 32 | 33 | * Initial Release 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > [!IMPORTANT] 2 | > As of Lando [v3.23.0](https://github.com/lando/core/releases/tag/v3.23.0) the docs are now part of [@lando/core](https://github.com/lando/core/tree/main/docs) and this repo is now archived eg longer actively maintained, used, looked at, etc. 3 | > 4 | > Please visit [@lando/core](https://github.com/lando/core) for anything docs related. 5 | 6 | # Lando Docs 7 | 8 | This repo contains the [documentation site](https://docs.lando.dev) for [Lando](https://lando.dev). That said Lando is comprised of various constituent projects that are all combined together. So while this _is_ the main site you should think about it more as the "glue" that combines various subsites together into a cohesive docs expereince. Said more plainly. if you are looking to update the docs on say the Lagoon recipe then you should do so in the [Lagoon repo](https://github.com/lando/lagoon/tree/main/docs). 9 | 10 | Here is a non-exhaustive list of some of the other docs subsites: 11 | 12 | * https://github.com/lando/cli/tree/main/docs 13 | * https://github.com/lando/core/tree/main/docs 14 | * https://github.com/lando/php/tree/main/docs 15 | * https://github.com/lando/pantheon/tree/main/docs 16 | 17 | However, it's best to just search for the repo you are looking for in the main [Lando org](https://github.com/lando) and consult its `README` on how to update its docs. 18 | 19 | ## Issues, Questions and Support 20 | 21 | If you have a question or would like some community support we recommend you [join us on Slack](https://www.launchpass.com/devwithlando). Note that this is the Slack community for [Lando](https://lando.dev) but we are more than happy to help with this module as well! 22 | 23 | If you'd like to report a bug or submit a feature request then please [use the issue queue](https://github.com/lando/docs/issues/new/choose) in this repo. 24 | 25 | ## Changelog 26 | 27 | We try to log all changes big and small in both [THE CHANGELOG](https://github.com/lando/docs/blob/main/CHANGELOG.md) and the [release notes](https://github.com/lando/docs/releases). 28 | 29 | ## Development 30 | 31 | * Requires [Node 18+](https://nodejs.org/dist/latest-v18.x/) 32 | 33 | ```bash 34 | # Clone repo 35 | git clone https://github.com/lando/docs.git && cd docs 36 | 37 | # Install deps 38 | npm install 39 | 40 | # Launch dev site 41 | npm run dev 42 | 43 | # Lint 44 | npm run lint 45 | 46 | # Build site 47 | npm run build 48 | ``` 49 | 50 | ## Releasing 51 | 52 | To deploy and publish a new version of the package to the `npm` registry you need only [create a release on GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) with a [semver](https://semver.org) tag. 53 | 54 | Note that prereleases will get pushed to the `edge` tag on the `npm` registry. 55 | 56 | ## Maintainers 57 | 58 | * [@pirog](https://github.com/pirog) 59 | * [@reynoldsalec](https://github.com/reynoldsalec) 60 | 61 | ## Contributors 62 | 63 | 64 | 65 | 66 | 67 | Made with [contributors-img](https://contrib.rocks). 68 | 69 | ## Other Resources 70 | 71 | * [Important advice](https://www.youtube.com/watch?v=WA4iX5D9Z64) 72 | * Other stuff 73 | -------------------------------------------------------------------------------- /contrib/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn how to contribute to Lando. 3 | --- 4 | 5 | # Getting Involved 6 | 7 | ::: center 8 | ![Lando Alliance](https://lando.dev/images/lando-alliance.png) 9 | ::: 10 | 11 | If you are interested in helping out with the Lando project, then you've come to the _**right place!**_ We are looking for people to help out in any of the capacities as follows: 12 | 13 | ::: half CODER 14 | Work on making and supporting Lando by touching code, docs, issues, DevOps or helping out in our Slack community channel 15 | ::: 16 | 17 | ::: half EVANGELIST 18 | Present, train or speak about Lando at various meetups, camps and conferences and generally spread the good word across the galaxy 19 | ::: 20 | 21 | ::: half SPONSOR 22 | Give the dollars and get exclusive benefits 23 | ::: 24 | 25 | ::: half CONTENT 26 | Generate useful content like docs, guides, videos, tutorials, lessons, etc 27 | ::: 28 | 29 | ::: half HELPER 30 | Providing community support on GitHub, Slack, email, X/Twitter, etc 31 | ::: 32 | 33 | ::: half GOVERNANCE 34 | Help us run both the actual project and maintain the repos 35 | ::: 36 | 37 | **If any of the above sound up your alley, then please proceed to [getting started](#getting-started).** If not than we ask you at least go over to [GitHub](https://github.com/lando/lando) and give us a star :star:. 38 | 39 | ## Getting Started 40 | 41 | To get started you need to do _at least_ one of the below but we **HIGHLY RECOMMEND** you just do them all: 42 | 43 | 1. [Join the contributors mailing list](https://dev.us12.list-manage.com/subscribe?u=59874b4d6910fa65e724a4648&id=613837077f) 44 | 2. [Join the #contributors channel on Slack](#slack) 45 | 3. [Complete our contributor Google Form](https://docs.google.com/forms/d/1vdDhmHqg7lS540eCrMR4MQO6DT4nfAsl-z8JRcnnmSI) 46 | 4. [Create, flag and/or assign some issues you are interested in](#choosing-an-issue) 47 | 5. [Come to your first contributor meeting](#meetings) 48 | 49 | ## Comms 50 | 51 | These are the channels we usually use for communication. 52 | 53 | ### GitHub 54 | 55 | GitHub serves as the mechanism for all Lando code, issue reporting/tracking and project management. 56 | 57 | While the [Lando Organization](https://github.com/lando) serves as the starting point for all Lando projects, most collaboration is going to occur in the core [Lando Project](https://github.com/lando/lando) and its [issue queue](https://github.com/lando/lando/issues). 58 | 59 | ### Slack 60 | 61 | Slack serves as the mechanism for Lando support and contributor coordination. You can join the Lando slack org via [LaunchPass](https://www.launchpass.com/devwithlando). By default, you will be added to the **#community** channel which is our free and open community support channe but you should also join **#contributors**. 62 | 63 | There are also some other channels you can join at your discretion: 64 | 65 | * **#administrators** - For those who help administer and coordinate Lando 66 | * **#bloggers** - For those contributing case studies, training materials and other content to the blog 67 | * **#evangelists** - For those looking to evangelize Lando at meetups, events, camps, etc 68 | * **#guiders** - For those writing helpful Lando guides and tutorials 69 | * **#upsellers** - For those helping to help sell Lando sponsorships, support and services 70 | * **#social** - For suggesting social content for Lando 71 | * **#kalabox** - For legacy Kalabox community support 72 | 73 | Join some channels and say hi! 74 | 75 | ### X/Twitter 76 | 77 | X/Twitter is our primary outreach and social channel. If you are fearless, then [follow us](https://twitter.com/devwithlando) and get involved in the conversation! 78 | 79 | ## Choosing an Issue 80 | 81 | If you don't already have a GitHub issue or two in mind you can go through them in a few different ways: 82 | 83 | * [By maintainer projects](https://github.com/orgs/lando/projects) 84 | * [By individual repo](https://github.com/orgs/lando/repositories) 85 | * [By all issues in the org](https://github.com/issues?q=is:open+is:issue+org:lando) 86 | 87 | If you don't see one you can also [create your own](https://github.com/lando/lando/issues/new/choose). However once you have an issue or two in mind you will want to do possibly both of the below: 88 | 89 | * **Label the issue with flag** - This will add it into the relevant contributor project board so a maintainer knows to discuss it in their next meeting. 90 | * **Assign the issue to yourself** - If it's an issue you want to take on then [assign it](https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/assigning-issues-and-pull-requests-to-other-github-users) to yourself. 91 | 92 | If you cannot label or assign an issue then we probably need to invite you to collaborate. To do that jump in the `#contributors` channel in Slack, post your issue and indicate you want to self-assign it and a maintainer will send you an invite. 93 | 94 | Note that permissions are given on a per-repo basis so you'll need to do this once for every repo you want to work on. 95 | 96 | ## Meetings 97 | 98 | We are currently meeting for three dedicated purposes: `Plugins`, `DevOps` and `Governance & Maintainership`, here are the next meetings: 99 | 100 | 108 | 109 | Make sure you [join the mailing list](https://dev.us12.list-manage.com/subscribe?u=59874b4d6910fa65e724a4648&id=613837077f) and/or [#contributors](#slack) channel in our Slack to get invited/access to the meetings. 110 | 111 | ## Archives 112 | 113 | * [March 27, 2024 - Kickoff Meeting](./kickoff-meeting-3-27-2024.md) 114 | 115 | We also put _all_ the raw data [over here](https://drive.google.com/drive/folders/1O9kO9or7vRRMUfb4L88K0yWTE6uZ5jwd) in Google Drive if you want to sift through things. 116 | 117 | 166 | 167 | 179 | -------------------------------------------------------------------------------- /contrib/kickoff-meeting-3-27-2024.md: -------------------------------------------------------------------------------- 1 | 2 | # March 27, 2024 - Lando Contributor Meeting 3 | 4 | If you are interested in contributing then [go here](./index.md#getting-started). 5 | 6 | 7 | 8 | ## Links 9 | 10 | * [Full Meeting Recording](https://drive.google.com/file/d/1a4953iNuJwqZICYfkjrxzG0YhIsfCr1U/view?userstoinvite=none) 11 | * [Meeting Transcript](https://docs.google.com/document/d/1R5GW9-gwrw_tYaCd8GDu-9EN8FLk845yeYcdglHph2s) 12 | 13 | ## Introduction 14 | 15 | * Note that we're recording! 16 | * [Fill out the Google Form](https://docs.google.com/forms/d/1vdDhmHqg7lS540eCrMR4MQO6DT4nfAsl-z8JRcnnmSI/viewform?edit_requested=true) 17 | 18 | ## Lando Updates 19 | 20 | ### Development Update 21 | 22 | * Lando started as a mono-repo. To help people contribute, it's been broken up into constituent pieces. Pretty close to being complete; 3.21.x-beta has been accomplishing that. 23 | * Lando org has ~80 different repos. 24 | * Now we can bring contributors onboard, create teams focused on smaller areas, have recurring meetings. 25 | 26 | ### Governance 27 | 28 | * Lando is a free/open-source project, but it's still under the auspices of a for-profit entity. 29 | * We're examining the process of moving Lando into a non-profit entity; definitely very interested in moving that direction. 30 | 31 | ## Teams 32 | 33 | ### Devops 34 | 35 | * GitHub Actions, installer scripts (kudos to Aaron Feledy for working on Windows script), Homebrew scripts, etc. 36 | * Bi-weekly meetings 37 | 38 | ### Plugins 39 | 40 | * Most folks are interested in PHP-related plugins (PHP, Drupal, WordPress, Pantheon, etc.) 41 | * This is where we need the MOST immediate help! 42 | * A lot of this is bug fixing, responding to users. 43 | * We'll start with a general meeting, should be federating out the meetings as we get more contributors. Probably first division will be "PHP-related Plugins" and a "General" 44 | * We're close to releasing a backport of the Lando v4 service into Lando v3; there will be a big chunk of work to port all the services/recipes. 45 | * Bi-weekly meetings 46 | 47 | ### Core 48 | 49 | * Right now this is Pirog's domain until things are "set up". Get back in the code dungeon Mike. 50 | * In the future this would cover the `core`, `core-next`, `cli` repos. 51 | 52 | ### General 53 | 54 | * Governance: right now we follow the "benevolent dictator" model, but as we engage more contributors we should start evolving the governance structure. 55 | * Maintainers: we'll need people to take ownership over maintaining repos. 56 | * Initial meeting, probably monthly meetings afterwards. 57 | 58 | ## Q+A 59 | 60 | ### Is documentation the responsibility of the people working on the plugin? 61 | 62 | Yes, docs are in the code repositories for each plugin. Effectively each plugin has its own docs site. However, there are some general docs repos (`lando/docs`) that have some overarching material, so those may need some specific contributors in the future. For now, the priority is making sure people who are focused on a given repo are maintaining its docs. Docs are fairly standardized due to a common Vitepress (tool used for generating the docs) theme. 63 | 64 | In the future, we'll have to see if we want to enforce consistent styling (Vitepress theme) over docs for non-Lando maintained plugins? 65 | 66 | ### Is the `#contributors` channel in Slack the best place to still hang out for real time chat? 67 | 68 | Yes! In the future we might move off Slack, but that channel is still where we have chatter over contribution. 69 | 70 | * **Q: **Any interest in a Ruby on Rails plugin? 71 | * **A: **One of the goals of Lando v4 is to make plugin creation easier, waiting for v4 has been one of the reasons we haven't been actively extending to make new services. We're hoping that more people will make their own services in v4, encourage a wider ecosystem instead of having a few maintainers need to make/maintain everything. We're limited by our knowledge as developers. 72 | 73 | * **Q: **What's the level of commitment expected if you join a team? How do we make sure we have continuity if a main maintainer who has been doing a bunch of work then needs to drop off? 74 | * **A: **We know it's volunteer work on a free and open source project, so we're not expecting life-or-death commitment. We're expecting good communication…if you've been a key contributor, your teammates will appreciate you letting them know that you're having to take a step back so they can fill the gap. 75 | 76 | * **Q: **Is there an example plugin repo that can be used for inspiration to create a new repo, or should we just look at existing plugins? 77 | * **A: **This current doesn't exist (there was a proto-attempt at this for v3) but it will definitely exist for Lando v4. Should have example files, yml config, workflow (GitHub Actions) files for testing/deploying, docs, etc. 78 | 79 | * **Q: **Specific tooling for project management? 80 | * **A: **We're using GitHub Issues (and GitHub Projects) right now, but in the future team leaders (project maintainers) could choose something different for the sub-projects. Probably will highly recommend people stay on the GitHub stack, since issues have a tendency to come into the incorrect repo (a PHP issue may get posted in the Drupal recipe first, then get moved over), so having them on the same platform is handy. 81 | 82 | * **Q:** Do new plugins get added to the standardized lando project or do you just create your own repo? As you can imagine, if everybody starts 83 | forking everywhere, it will be difficult to locate plugins. 84 | * **A: **We'll be keeping distinctions between "Lando maintained" first-party plugins and third-party plugins. To add a plugin into the plugins listing on lando.dev you'll need to submit at least a pull request, so there will be some management of what is officially listed. So visibility is gated, but power to create plugins won't be. 85 | 86 | * **Q: **Is it time to move to Discord soon? 87 | * **A: **We're inclined to move that direction, but it's mostly a matter of time. As organizers we have limited time (could be a good contributor task!), plus we'll need to keep both Slack/Discord open for a while, since we have 3K+ users on Slack currently. 88 | 89 | * **Q:** How would a 3rd party plugin be defined? Would the official lando project have a reference to someone's github plugin project? In other words, how would 3rd party plugins be searchable? 90 | * **A: **Independent plugins could just be found via Google Search…nothing stops independent creation/discovery of plugins. 91 | * We have an official plugin registry on the docs now: [https://docs.lando.dev/plugins](https://docs.lando.dev/plugins) 92 | * Getting on that registry depends on some metadata (which will be in the plugin template), if you want your plugin in the ecosystem you'd make a PR to the `lando/docs` with the appropriate markdown file describing your plugin. 93 | 94 | * **Q:** Is there anything specific that I should focus on learning, to contribute best? 95 | * **A: **Javascript/Node are the most relevant languages. During contributor meetings we'll help folks get setup with development tools/environments. 96 | * Right now if you're not familiar with Javascript, we'd discourage you from diving headfirst into Lando v3 and waiting for v4 to really learn more. HOWEVER, you can be helpful in some of the DevOps tasks that are important to helping with distribution, installation, etc, most of which is bash-based or GitHub Actions. 97 | * VitePress theme for the docs should also be not changing with v4. 98 | -------------------------------------------------------------------------------- /contrib/sponsoring.md: -------------------------------------------------------------------------------- 1 | 2 | # Sponsoring 3 | 4 | Sponsorship is the easiest and often-most-helpful-to-us way to contribute; just register directly with [GitHub Sponsors](https://github.com/sponsors/lando) and start helping Lando! 5 | 6 | [[toc]] 7 | 8 | ## How to Sponsor 9 | 10 | While you can sponsor directly using any of the below platforms, we recommend you sponsor via [GitHub](https://github.com/sponsors/lando). This way, we can better engage with you in the future. 11 | 12 | GitHub Sponsors, Patreon, and Open Collective: all three of these official Lando sponsorship methods are valid but each comes with its own transaction fees and caveats. Broadly speaking, we've adjusted the sponsorship amount to account for transaction fees. 13 | 14 | ### [With GitHub Sponsors](https://github.com/sponsors/lando) 15 | 16 | [GitHub Sponsors](https://github.com/sponsors/lando) is the best way to sponsor Lando for the reasons as follows: 17 | 18 | **Lowest Sponsorship Amount**: GitHub Sponsors doesn't charge a transaction fee right now, so all your sponsorship $$$ helps Lando! 19 | **2X Matching**: GitHub Sponsors will match all sponsorship dollars up to $5,000 in the first year. Your cash goes further! 20 | 21 | [Sponsor With GitHub Here](https://github.com/sponsors/lando) 22 | 23 | ### [With Patreon](https://www.patreon.com/devwithlando) 24 | 25 | The gold standard of sponsoring creatives, [Patreon](https://www.patreon.com/devwithlando) does charge a transactional fee; hence why you'll see sponsorship rates are a little higher there. Rest assured that Lando gets the same amount, but all things being equal, you might want to use GitHub Sponsors instead. 26 | 27 | [Sponsor with Patreon Here](https://www.patreon.com/devwithlando) 28 | 29 | ### [With Open Collective](https://opencollective.com/lando) 30 | 31 | [Open Collective](https://opencollective.com/lando) has similar drawbacks to Patreon, _however_, it may allow us to redistribute funds to projects Lando relies upon and other contributors in the future. If you're a devotee to the Open Collective ethos, give here, otherwise, GitHub Sponsors! 32 | 33 | [Sponsor with Open Collective Here](https://opencollective.com/lando) 34 | 35 | ## Why Sponsor Lando 36 | 37 | Lando is free and open source but freedom isn't free in the land of the brave and home of the Lando. Thousands of man hours have gone into creating Lando and hundreds more are spent each year providing support and maintenance. 38 | 39 | By sponsoring Lando with your hard earned American dollars, the Lando team can do the following: 40 | 41 | * Fix bugs 42 | * Pay for hosting/bug monitoring 43 | * Develop new features 44 | * Create guides, tutorial, video and improve Lando documentation 45 | * Answer developer questions on [Slack](https://www.launchpass.com/devwithlando) 46 | * Allow [@pirog](https://github.com/pirog) to see the light of day 47 | 48 | If you'd like to read more about why you should sponsor Lando, we encourage you to check out the posts as follows: 49 | 50 | * [Why you should sponsor Lando](https://lando.dev/blog/2020/02/07/why-you-should-sponsor-lando.html) 51 | * [Why your agency or org should sponsor Lando](https://lando.dev/blog/2020/02/08/why-your-agency-should-sponsor-lando.html) 52 | * [Why your PaaS or dev tool should sponsor Lando](https://lando.dev/blog/2020/02/08/why-your-pass-should-sponsor-lando.html) 53 | 54 | If you are interested in sponsoring at one of our higher tiers, then definitely [contact us](https://lando.dev/contact/) so we can figure out the terms of your sponsorship. 55 | 56 | ## Helping others sponsors 57 | 58 | The Lando revolution relies upon new converts. You've probably already told some of your co-workers and friends to try Lando. Maybe you've [written some guides](https://docs.lando.dev/guides) and [sponsored Lando yourself](https://github.com/sponsors/lando). What's the next step? Getting someone else to sponsor Lando! 59 | 60 | Chances are you know another individual or a business that would be willing to sponsor Lando. All they need is someone they trust (read: YOU) to tell them about it. Do you know any of the following people who might be interested in sponsoring? 61 | 62 | - Friends who use Lando. 63 | - Development agencies. 64 | - University development teams. 65 | - "Enterprise" development teams. 66 | - Hosting companies. 67 | - Dev tool providers. 68 | - [Eccentric mallard millionares.](https://www.youtube.com/watch?v=bEmjiCoZ6e4&t=11s) 69 | 70 | ### Why Should Your Organization Sponsor Lando? 71 | 72 | If you and your team are saving development time using Lando, your organization is already receiving dividends from the bank of Lando. Instead of each developer on your team paying part of their paycheck to sponsor, shouldn't your organization invest back to make sure the Lando royalties keep getting dished out? 73 | 74 | Asking your boss to sponsor Lando might seem tough. Why should they pay for something they're already getting for free? There are _many_ reasons and we've prepared them all in the easily distributable blog content below: 75 | 76 | * [Why you should sponsor Lando](https://lando.dev/blog/2020/02/07/why-you-should-sponsor-lando.html) 77 | * [Why your agency or org should sponsor Lando](https://lando.dev/blog/2020/02/08/why-your-agency-should-sponsor-lando.html) 78 | * [Why your PaaS or dev tool should sponsor Lando](https://lando.dev/blog/2020/02/08/why-your-pass-should-sponsor-lando.html) 79 | 80 | ### They're Ready to Sponsor. Now What? 81 | 82 | Most organizations will want to sponsor directly through our [Github sponsors page](https://github.com/sponsors/lando). If Lando saves your organization at least a couple hours each month, we highly encourage you making a recurring contribution, but for one-time contributions [Open Collective](https://opencollective.com/lando#category-CONTRIBUTE) can be more convenient. 83 | 84 | To take full advantage of sponsorship benefits your organization will want to reach out to . 85 | 86 | ## FAQ 87 | 88 | Some answers to some of our most frequent questions about sponsorship are shown below: 89 | 90 | ### When will I show up on the website, Twitter, etc? 91 | 92 | We usually batch update our [list of sponsors](https://lando.dev/sponsor/) and Twitter queue _at least_ once a week so you should expect to see yourself or your org on the website within a week. Twitter can be a different story and depends on the queue. If there are a lot of sponsors in front of you, you might have to wait up to a month to get your shoutout. 93 | 94 | An exception to the above rule is if you have sponsored at one of our higher tiers and we've provided custom marketing benefits. However, in this case, you will be directly in touch with one of our team members to coordinate the rollout. 95 | 96 | If you feel like the above has not happened correctly and something is wrong, please reach out to us at so we can make it right. 97 | 98 | ### When can I expect my swag? 99 | 100 | Due to the time and administrative overhead, we usually send swag out once a quarter. So, if it's been three months or more, reach out to us at so we can make it right. 101 | 102 | ### I want to sponsor, but can I get different benefits? 103 | 104 | Yes! 105 | 106 | Our highest two tiers are fairly customizable based around your needs. If you would like to put together custom sponsorship terms, then [contact us](https://lando.dev/contact/) and let us know what you are looking for. Our team will get in touch with you shortly and try to figure out something that works for all. 107 | 108 | ### How do I cancel a sponsorship? 109 | 110 | We rely on third party sponsorship platforms to manage your sponsorship so you will want to terminate your sponsorship with them! For convenience, the relevant docs on how to do so for each of the platforms we support are shown below: 111 | 112 | * [Cancel GitHub Sponsors Sponsorship](https://docs.github.com/en/billing/managing-billing-for-your-products/managing-billing-for-github-sponsors/downgrading-a-sponsorship) 113 | * [Cancel Patreon Sponsorship](https://support.patreon.com/hc/en-us/articles/360000126286-Changing-your-tier) 114 | * [Cancel OpenCollective Sponsorship](https://docs.opencollective.com/help/financial-contributors/organizations/organization-faq#can-i-cancel-or-change-my-contribution) 115 | 116 | ### How can I convince my boss or org to sponsor? 117 | 118 | We have some ideas for that [over here](https://lando.dev/blog/2020/02/08/why-your-agency-should-sponsor-lando.html)! 119 | -------------------------------------------------------------------------------- /data.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn how to handle file syncing issue when using Lando for local development. 3 | editLink: false 4 | jobs: false 5 | sidebar: false 6 | sponsors: false 7 | carbonAds: false 8 | next: false 9 | prev: 10 | text: 'Back' 11 | link: '/' 12 | --- 13 | 14 | # Privacy Policy for Humans 15 | 16 | Because most sane people are not lawyers we've included this more-human-accessible explanation of Lando's [Privacy Policy](https://github.com/lando/lando/blob/master/PRIVACY.md). Note that this *_is not_* the actual Privacy Policy. 17 | 18 | ## tl;dr 19 | 20 | Lando collects two kinds of information for the sole purpose of improving Lando: _Usage Data_ and _Crash Data_. 21 | 22 | We store and process this data in [Amplitude](https://amplitude.com/). Additionally, we store Crash Data in [Bugsnag](https://www.bugsnag.com/). Lando does not share, sell or transmit your data to any other parties. We have obtained DPAs with both Amplitude and Bugsnag for this purpose. 23 | 24 | ### Usage Data 25 | 26 | Usage Data is pseudonymized and automatically collected by default during common Lando runtime events such starting, stopping or destroying an application. Here is an example of usage data collected during a `lando rebuild`. 27 | 28 | ```json 29 | { 30 | "context": "local", 31 | "devMode": false, 32 | "instance": "fc8bdd13-03bc-4642-b064-b2eda1c64398", 33 | "nodeVersion": "v10.4.1", 34 | "mode": "cli", 35 | "os": { 36 | "type": "Linux", 37 | "platform": "linux", 38 | "release": "5.3.8-300.fc31.x86_64", 39 | "arch": "x64" 40 | }, 41 | "product": "lando", 42 | "version": "3.0.0-rc.22", 43 | "app": "6424b9c225b9f1b7cd46deffec8599d17d8f3f4e", 44 | "type": "drupal8", 45 | "services": [ 46 | "php:7.2", 47 | "mysql", 48 | "mailhog" 49 | ], 50 | "action": "rebuild", 51 | "created": "2019-11-26T15:15:52.733Z" 52 | } 53 | ``` 54 | 55 | Each Lando instance is uniquely identifiable by an ID which is stored at `~/.lando/cache/id`. This corresponds to the `instance` property above. While we store this data the only way we can tie specific data to a given Lando user is if the user themselves tells us which instance id belongs to them. 56 | 57 | We will also pseudonymize your app's name. 58 | 59 | If you would like to see what data is sent you can run either examine the [Lando logs](https://docs.lando.dev/cli/logs.html), or run a Lando command with debug verbosity. 60 | 61 | ```bash 62 | lando start -vvv 63 | 64 | # debug: Logging metrics data"command":"lando start","context":"local","devMode":false,"instance":"bdb5354f0597b5b465e86db8255c2b6e1e742f70","nodeVersion":"v10.15.0","mode":"cli","os":{"type":"Darwin","platform":"darwin","release":"19.0.0","arch":"x64"},"product":"lando","version":"3.0.0-rc.22","app":"8e8533752bafe1499af4352e923b4d2e82396927","type":"none","services":["node:10","node:10","node:10","php:7.3"],"action":"start","created":"2019-11-26T15:24:16.468Z"} to [{"report":true,"url":"https://metrics.lando.dev"}] 65 | ``` 66 | 67 | If you would like to opt-out you can do so by adding the following to your [Lando global config](https://docs.lando.dev/core/v3/global.html) 68 | 69 | ```yaml 70 | stats: 71 | - report: false 72 | url: https://metrics.lando.dev 73 | ``` 74 | 75 | ## Crash Data 76 | 77 | Crash Data will only be sent to Tandem if the user opts in and gives us permission to do so. The user will be prompted the first time Lando detects an error. 78 | 79 | ```bash 80 | lando start 81 | 82 | Lando has crashed!!! 83 | 84 | Would you like to report it, and subsequent errors, to Lando? 85 | 86 | This data is only used by the Lando team to ensure the application runs as well as it can. 87 | For more details check out https://docs.lando.dev/privacy/ 88 | 89 | ? Send crash reports? (Y/n) 90 | ``` 91 | 92 | Crash Data will include the same information as Usage Data with the addition of the error message and its stack trace. 93 | 94 | We try our best to sanitize these additional properties but recognize that path names and other information that we collect may inadvertently include personal data including but not limited to usernames and site names. 95 | 96 | If you would like to reset your error reporting preference so that Lando prompts you again on the next error you can run this command. 97 | 98 | ```bash 99 | rm ~/.lando/cache/report_errors 100 | ``` 101 | -------------------------------------------------------------------------------- /getting-started/first-app.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn how to boot up and initialize your first project for usage with Lando with a Hello World!, Drupal 9 and Pantheon example. 3 | next: 4 | text: Lando 101 5 | link: /lando-101 6 | --- 7 | 8 | # Starting your first app 9 | 10 | Now that you've got Lando installed you should try a few easy examples before you _get into it_. 11 | 12 | ## Hello World! 13 | 14 | ```bash 15 | # Create a new directory for this example and enter it 16 | mkdir hello && cd hello 17 | 18 | # And add a nice homepage 19 | echo "

Lando says hellooo what have we here?

" > index.html 20 | 21 | # Initialize a basic LAMP stack using the cwd as the source 22 | lando init \ 23 | --source cwd \ 24 | --recipe lamp \ 25 | --webroot . \ 26 | --name hello-lando 27 | 28 | # Check out the Landofile it created for you 29 | cat .lando.yml 30 | 31 | # Start it up 32 | lando start 33 | 34 | # Check out the commands you can run 35 | lando 36 | 37 | # Visit the site in your browser: https://hello-lando.lndo.site 38 | 39 | # Destroy the site 40 | lando destroy -y 41 | ``` 42 | 43 | ## Vanilla Drupal 11 44 | 45 | You can also pull in code from an external archive (or git repo/GitHub) to seed a new project. 46 | 47 | ```bash 48 | # Create a new directory for this example and enter it 49 | mkdir drupal11 && cd drupal11 50 | 51 | # Initialize a new lando drupal using vanilla Drupal 9 52 | lando init \ 53 | --source remote \ 54 | --remote-url https://www.drupal.org/download-latest/tar.gz \ 55 | --remote-options="--strip-components 1" \ 56 | --recipe drupal11 \ 57 | --webroot . \ 58 | --name hello-drupal11 59 | 60 | # Start the site 61 | lando start 62 | 63 | # Install a site local drush 64 | lando composer require drush/drush 65 | 66 | # Install drupal 67 | lando drush site:install --db-url=mysql://drupal11:drupal11@database/drupal11 -y 68 | 69 | # Check out your new site! https://hello-drupal11.lndo.site 70 | 71 | # Log in as admin with Drush 72 | lando drush uli -l https://hello-drupal11.lndo.site 73 | 74 | # Destroy it 75 | lando destroy -y 76 | ``` 77 | 78 | ## From Pantheon 79 | 80 | If you have a [Pantheon](https://pantheon.io) account you can clone a site locally. 81 | 82 | ```bash 83 | # Create a new directory for this example and enter it 84 | mkdir pantheon && cd pantheon 85 | 86 | # Go through interactive prompts to get your site from pantheon 87 | lando init --source pantheon 88 | 89 | # Start it up 90 | lando start 91 | 92 | # Import your database and files 93 | lando pull 94 | ``` 95 | 96 | ## More 97 | 98 | Continue your journey with our brief [Lando 101](/lando-101) course. 99 | -------------------------------------------------------------------------------- /getting-started/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Get an introduction to Lando; why it exists, what it's good for and how it differs from Docker Compose and other local development and DevOps tools. 3 | --- 4 | 5 | # What is Lando? 6 | 7 | Lando is for developers who want to: 8 | 9 | * Quickly specify and painlessly spin up the [services](https://docs.lando.dev/config/services.html) and [tooling](https://docs.lando.dev/config/tooling.html) needed to develop _all_ their projects. 10 | * Ship these local development dependencies in a per-project, lives-in-git [config file](https://docs.lando.dev/config) 11 | * Automate complex [build steps](https://docs.lando.dev/config/services.html#build-steps), testing setups, deployments or other [repeated-more-than-once workflows](https://docs.lando.dev/config/events.html) 12 | * Avoid the built-in-masochism of directly using `docker` or `docker-compose` 13 | 14 | It's a free, open source, cross-platform, **local** development environment and DevOps tool built on [Docker](https://www.docker.com/) container technology and developed by [Tandem](https://thinktandem.io/). Designed to work with most major languages, frameworks and services, Lando provides an easy way for developers of all skill levels to specify simple or complex requirements for their projects, and then quickly get to work on them. 15 | 16 | ::: tip This is a development tool! 17 | Note that while you _can_ run Lando in production, it is _highly_ discouraged, not recommended and 100% not supported! DON'T DO IT! 18 | ::: 19 | 20 | **Think of it as your local development dependency management and automation tool.** 21 | 22 | ## What is it good for? 23 | 24 | * Mimicking your production environment locally 25 | * Standardizing your team's dev environments and tooling on OSX, Windows and Linux 26 | * Integrating with hosting providers like [Lagoon](https://lagoon.sh), [Pantheon](https://pantheon.io) and [Acquia Cloud](https://www.acquia.com/products/acquia-cloud-platform) 27 | * Customizing or extending tooling, deployment options and basically any other functionality 28 | * Running CI tests locally, running local tests in CI 29 | * Using a single local development environment for *all* your projects 30 | * Freeing yourself from the tyranny of inferior local development products 31 | 32 | ## Wait, doesn't Docker Compose do this? 33 | 34 | Yes! Well, sort of. You can think of Lando as both an abstraction layer and superset of Docker Compose as well as a Docker Compose utility. 35 | 36 | **As an abstraction layer** Lando vastly reduces the complexity of spinning up containers by exposing only the most relevant config for a given "service" and setting "sane defaults". Lando also provides "recipes" which are common combinations of services and their tooling that satisfy a given development use case - e.g. Drupal, Python, Laravel, Dotnet, etc. 37 | 38 | **As a superset** Lando provides ways for developers to run complex commands, build steps and automation on their services without the hassle of custom Dockerfiles or long "docker exec" commands. Think `lando yarn add express`. Think clear my applications cache after I import a database. Think install this `php-extension` before my appserver starts and then `composer install` after it does. 39 | 40 | **As a utility** Lando handles some of the more arduous configuration required for a *good* Docker Compose setup - e.g. proxying, nice urls, cross-application networking (think Vue.js frontend talking to a separate Laravel backend), host-container file permission handling, file sharing, per-container SSL certificate handling, ssh-key handling, etc. 41 | 42 | **And!** If you don't like the default choices we've made, all of the above is highly configurable down to the Docker Compose level itself! 43 | -------------------------------------------------------------------------------- /getting-started/installation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Installation 3 | description: Redirect for install instructions 4 | --- 5 | 6 | 11 | -------------------------------------------------------------------------------- /getting-started/requirements.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Requirements 3 | description: System requirements to run Lando on your machine 4 | --- 5 | 6 | # Requirements 7 | 8 | Lando is designed to work on a wide range of computers. Here are some basic guidelines to ensure your Lando experience is as smooth as possible. 9 | 10 | ## Hardware Requirements 11 | 12 | ::: warning Not for the faint of heart! 13 | Note that Lando is basically a PaaS running on your computer and as such we don't recommend you use it [UNLESS YOU'VE GOT POWER!!!](https://www.youtube.com/watch?v=NowdrL6fvb4). 14 | ::: 15 | 16 | ### Minimum requirements 17 | 18 | You _can_ run Lando using the below but your experience may be less than ideal. 19 | 20 | * ARM64 or x64 processor(s) with 2+ cores 21 | * 4GB+ RAM 22 | * 25GB+ of available disk space 23 | 24 | You _likely_ can run Lando on other processor architectures if you [install from source](https://docs.lando.dev/install/source.html) but this is not tested or supported. 25 | 26 | ### Preferred 27 | 28 | We've found the below or better to deliver the best experience. 29 | 30 | * ARM64 or x64 processor(s) with 8+ cores 31 | * 16GB+ RAM 32 | * 100GB+ of available disk space 33 | 34 | ## System Requirements 35 | 36 | ### Operating System 37 | 38 | * macOS 12 or higher 39 | * Windows 10 Home or Pro version 21H2 or higher with the [WSL2 feature enabled](https://learn.microsoft.com/en-us/windows/wsl/install) 40 | * Linux with kernel version 4.x or higher 41 | 42 | ### Docker Engine Requirements 43 | 44 | Please also verify you meet the requirements needed to run our Docker engine backend. Note that the macOS and Windows Lando installer scripts will install Docker for you if needed. You can also run [`lando setup`](https://docs.lando.dev/cli/setup.html) to install needed requirements. 45 | 46 | * Docker Engine for Linux [requirements](https://docs.docker.com/engine/install/) 47 | * Docker Desktop for Mac [requirements](https://docs.docker.com/desktop/install/mac-install/#system-requirements) 48 | * Docker Desktop for Windows [requirements](https://docs.docker.com/desktop/install/windows-install/#system-requirements) 49 | 50 | ## Preflight Checks 51 | 52 | 1. Verify that your system meets the [minimum system and hardware requirements](#system-requirements) to run Lando. 53 | 2. Verify that you are connected to the internet. 54 | 3. Verify that you have administrative access to your machine. 55 | 56 | ### Optional checks 57 | 58 | 1. If you already have Docker installed it needs to be set to factory defaults. 59 | 2. If you are also running VirtualBox on Windows check out [this](./../help/win-also-vb.md). 60 | -------------------------------------------------------------------------------- /getting-started/uninstalling.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Lando isn't for everyone; so here are some helpful instructions on how to uninstall and purge Lando from macOS, Windows and Linux. 3 | --- 4 | 5 | # Uninstalling 6 | 7 | To uninstall Lando simply find and remove the `lando` binary. You can also [clean up lingering configuration](#further-cleanup) and [containers](#further-cleanup) 8 | 9 | ## macOS/Linux 10 | 11 | ```sh 12 | # repeat this command until you get "lando not found" 13 | rm -f "$(which lando)" 14 | ``` 15 | 16 | Note that you may need to prefix the above command with `sudo` if you installed `lando` in a directory owned by `root`. 17 | 18 | ## Windows 19 | 20 | ::: code-group 21 | ```powershell [powershell] 22 | # repeat this command until you get an error 23 | Remove-Item -Force (Get-Command lando).Source 24 | ``` 25 | 26 | ```bash [bash] 27 | # repeat this command until you get "could not find files" 28 | rm -f "$(where lando | head -n1)" 29 | ``` 30 | ::: 31 | 32 | ## Further cleanup 33 | 34 | ### Removing lingering Lando configuration 35 | 36 | If you've uninstalled Lando but want to remove **ALL TRACES OF IT** you will also want to remove its configuration directory. 37 | 38 | Unless you've edited Lando's [global config](https://docs.lando.dev/core/v3/global.html) Lando will store app configuration inside your home folder. You can use `lando config | grep userConfRoot` to locate the precise location on your machine. By default these locations will be: 39 | 40 | | Operating System | Default Location | 41 | | -- | -- | 42 | | Win | `C:\Users\ME\.lando` | 43 | | Linux | `~/.lando` | 44 | | macOS | `~/.lando` | 45 | 46 | To remove on Linux or macOS you can run `rm -rf ~/.lando`. You can use `explorer` to remove on Windows. 47 | 48 | ### Removing lingering Lando containers 49 | 50 | You can also run this `docker` one-liner to force remove any Lando containers that, like the [Cranberries](https://www.youtube.com/watch?v=G6Kspj3OO0s) may still be lingering 51 | 52 | ```bash 53 | docker rm -f $(docker ps --filter label=io.lando.container=TRUE --all -q) 54 | ``` 55 | -------------------------------------------------------------------------------- /getting-started/updating.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Get the skinny on how to easily update Lando, a local development and DevOps tool, on macOS, Windows and Linux. 3 | --- 4 | 5 | # Updating 6 | 7 | Updating is fairly simple, you run: 8 | 9 | ```sh 10 | lando update 11 | ``` 12 | 13 | If you run into any issues with running it we recommend you check out this [troubleshooting guide](./../help/updating.md). 14 | 15 | You can also read more about this command over [here](https://docs.lando.dev/cli/update.html). 16 | -------------------------------------------------------------------------------- /guides.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Home helpful generic tutorial and guide content for lando 3 | layout: page 4 | title: Guides 5 | sidebar: false 6 | --- 7 | 8 | 9 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 26 | 27 | -------------------------------------------------------------------------------- /guides/access-by-other-devices.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Accessing Lando from Other Devices on Your Local Network 3 | description: Learn how to access your Lando sites from other devices on your network like mobile phones or tablets. 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1594391902000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # Accessing Lando from Other Devices on Your Local Network 23 | 24 | You may want to use another device (e.g., a smartphone or tablet) to test your Lando app. You can access your lando app easily from another device as follows. 25 | 26 | ## Changing the Bind 27 | 28 | If you would rather test only on your local network and not over the Internet, you first need to change the `bindAddress` to expose your services on the LAN. Note that there are security implications to this and it is not recommended. Please consult the [Security Docs](https://docs.lando.dev/config/security.html). 29 | 30 | Once you've done that you can ... 31 | 32 | ### 1. First, get the IP address of the machine running lando. 33 | 34 | #### Windows 35 | 36 | Open a command prompt and enter the command `ipconfig /all` and look for the "IPv4 Address" for the network adapter you use to connect to the Internet. Make sure NOT to use the IP address of the Docker network adapter. It should be a number like `192.168.0.123`. 37 | 38 | #### macOS 39 | 40 | Open System Preferences, Network, and then choose the network adapter you are using to connect to the Internet (Ethernet or Wireless). The local IP address will then be displayed. 41 | 42 | #### Linux 43 | 44 | Open a command prompt and enter the command `hostname -I | cut -d' ' -f1`. 45 | 46 | ### 2. Next, get the port of your lando app. 47 | 48 | You can do this by running `lando info` from a command prompt and looking for the URL to your site, which should look something like this: `http://localhost:33333`. In this case, `33333` is the port number. 49 | 50 | You can now visit your lando app from other devices by going to `IP address: Port number`. (Example: `http://192.168.0.123:33333`) 51 | -------------------------------------------------------------------------------- /guides/accessibility.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Accessibility and Lando 3 | description: Using Lando with adaptive services. 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1703011953000 12 | 13 | --- 14 | 15 | # Accessibility and Lando 16 | 17 | ## Introduction 18 | 19 | Lando is committed to ensuring digital accessibility for people with disabilities. As a text-based CLI tool, Lando should be compatible with most screenreaders. Indeed, accessibility is primarily a challenge of having a terminal application that integrates well with your screen reader or other adaptive devices. 20 | 21 | ## Accessibility Features 22 | 23 | 1. **Keyboard Navigation**: All Lando functionalities are accessible via keyboard. Users can navigate through the interface, access all features, and execute commands using standard keyboard shortcuts. 24 | 25 | 2. **Screen Reader Compatibility**: Lando should be compatible with popular screen readers, although again this primarily depends on your terminal application's compatibility. Textual information, including command outputs and error messages, is structured to be screen reader friendly. If you find command output that is challenging to your screen reader, let us know! 26 | 27 | 3. **Contrast and Text Size**: Since Lando primarily operates in a command-line interface, we suggest using your terminal application's ability to switch to high contrast modes and adjust text size for users with visual impairments. 28 | 29 | 4. **Documentation in Accessible Formats**: Lando's electronic documentation should largely conform to WCAG 2.0 A and AA specifications. 30 | 31 | ## Support and Feedback 32 | 33 | We welcome your feedback on the accessibility of Lando. Please let us know if you encounter accessibility barriers: 34 | 35 | - **Contact Information**: vpat@lando.dev 36 | - **Support**: Support for Lando as a free, open-source tool is provided by the Lando community on a volunteer basis via [documented support channels.](https://lando.dev/support) 37 | 38 | Please [contact us](https://lando.dev/contact) if you're interested in paid enterprise support, including accessibility support. 39 | -------------------------------------------------------------------------------- /guides/db-export.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: SQL Export 3 | description: Learn how to export your MySQL, MariaDB or Postgres databases from Lando. 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1594391902000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # SQL Export 23 | 24 | Lando ships with a helper `db-export` script that is available in all our `LAMP` and `LEMP` based recipes. Used in the recipe context it should export a database dump `DATABASE.TIMESTAMP.gz` into the `/app` directory. 25 | 26 | You can also export databases from other services. 27 | 28 | ## Usage 29 | 30 | At the command line execute: 31 | 32 | ```bash 33 | lando db-export 34 | ``` 35 | 36 | ### Examples 37 | 38 | ```bash 39 | # Export to a file named `DATABASE.TIMESTAMP.gz` 40 | lando db-export 41 | 42 | # Export to a file called dump.sql.gz 43 | lando db-export dump.sql 44 | 45 | # Export from a secondary database 46 | lando db-export --host db2 47 | 48 | # Dump the result to stdout 49 | lando db-export --stdout 50 | 51 | # Dump to an absolute path 52 | # NOTE: this is an absolute path in the target container, not on you host 53 | lando db-export /db/dump.zip 54 | ``` 55 | 56 | ### Options 57 | 58 | ```bash 59 | Options: 60 | --host, -h The database service to use [default: "database"] 61 | --stdout Dump database to stdout 62 | ``` 63 | 64 | ## Adding the `db-export` command 65 | 66 | If you are not using one of our LAMPy [recipes](https://docs.lando.dev/config/recipes.html) you can add the `db-export` command and default options to the ['tooling'](https://docs.lando.dev/config/tooling.html) section of your [Landofile](https://docs.lando.dev/config/lando.html). 67 | 68 | ```yaml 69 | tooling: 70 | 'db-export [file]': 71 | service: :host 72 | description: Exports database from a database service to a file 73 | cmd: /helpers/sql-export.sh 74 | user: root 75 | options: 76 | host: 77 | description: The database service to use 78 | default: database 79 | alias: 80 | - h 81 | stdout: 82 | description: Dump database to stdout 83 | ``` 84 | -------------------------------------------------------------------------------- /guides/db-import.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: SQL Import 3 | description: Learn how to import your MySQL, MariaDB or Postgres databases to Lando. 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1594391902000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # SQL Import 23 | 24 | Lando ships with a helper `db-import` script that is available in all our `LAMP` and `LEMP` based recipes. Used in the recipe context it should import a database dump into the recipe-provided database by default but can be used on additional database services as well. 25 | 26 | You can also import databases into other hosts and databases. It will currently handle uncompressed, gzipped or zipped dump files. 27 | 28 | **This command will wipe out the target database before it runs the import unless you use the `--no-wipe` flag!** 29 | 30 | ## Usage 31 | 32 | ```bash 33 | lando db-import somedumpfile.sql.gz 34 | ``` 35 | 36 | ::: warning DB dump must reside within app directory! 37 | Due to restrictions in how Docker handles file sharing your database dump **MUST** exist somewhere inside of your app directory. This means that **IT IS A VERY GOOD IDEA** to make sure you add SQL dumps to your `.gitignore` file. 38 | ::: 39 | 40 | ### Examples 41 | 42 | ```bash 43 | # Import a file into the recipe-provided db 44 | lando db-import dump.sql 45 | 46 | # Import a file into an auxiliary second database called 'db2' 47 | # with a db called `dataz` 48 | lando db-import dump.zip --host db2 49 | 50 | # Import without destroying the target database 51 | lando db-import dump.zip --no-wipe 52 | 53 | # Import using an absolute path 54 | # NOTE: this is an absolute path in the target container, not on you host 55 | lando db-import /db/dump.zip 56 | 57 | # Import from a subdirectory 58 | lando db-import subdir/test.sql 59 | 60 | # Pipe stdout into db-import 61 | # NOTE: this is a bit finicky right now 62 | cat dump.sql | lando db-import 63 | ``` 64 | 65 | ### Options 66 | 67 | ```bash 68 | Options: 69 | --host, -h The database service to use [default: "database"] 70 | --no-wipe Do not destroy the existing database before an import 71 | ``` 72 | 73 | ## Adding the `db-import` command 74 | 75 | If you are not using one of our LAMPy [recipes](https://docs.lando.dev/config/recipes.html) you can add the `db-import` command and default options to the ['tooling'](https://docs.lando.dev/config/tooling.html) section of your [Landofile](https://docs.lando.dev/config/lando.html). 76 | 77 | ```yaml 78 | tooling: 79 | 'db-import ': 80 | service: :host 81 | description: Imports a dump file into a database service 82 | cmd: /helpers/sql-import.sh 83 | user: root 84 | options: 85 | host: 86 | description: The database service to use 87 | default: database 88 | alias: 89 | - h 90 | no-wipe: 91 | description: Do not destroy the existing database before an import 92 | boolean: true 93 | ``` 94 | -------------------------------------------------------------------------------- /guides/external-access.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Accessing Your Services Externally 3 | description: Learn how to access your Lando services externally from your host machine. 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1594391902000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # Accessing Your Services Externally 23 | 24 | It is often desirable to interact with your services on the host machine level. Common examples of this are accessing a SQL database through a GUI client like SequelPro, or running unit tests through an IDE like PhpStorm. 25 | 26 | Lando makes this process relatively painless. 27 | 28 | ## Checking Connection Info 29 | 30 | If you've spun up a Lando app using one of our [recipes](https://docs.lando.dev/config/recipes.html) then its likely relevant services are already exposed and ready for access. 31 | 32 | ```bash 33 | # Get info about it 34 | lando info 35 | 36 | { 37 | "appserver": { 38 | "type": "php", 39 | "version": "7.0", 40 | "via": "apache", 41 | "webroot": "www", 42 | "urls": [ 43 | "https://localhost:32785", 44 | "http://localhost:32786", 45 | "http://backdrop.lndo.site", 46 | "https://backdrop.lndo.site" 47 | ] 48 | }, 49 | "database": { 50 | "type": "mariadb", 51 | "version": "latest", 52 | "creds": { 53 | "user": "backdrop", 54 | "password": "backdrop", 55 | "database": "backdrop" 56 | }, 57 | "internal_connection": { 58 | "host": "database", 59 | "port": 3306 60 | }, 61 | "external_connection": { 62 | "host": "localhost", 63 | "port": "32787" 64 | } 65 | } 66 | } 67 | ``` 68 | 69 | In the example above you can access the `mariadb` database from your host at `localhost:32787`. Note that this port is automatically assigned by Docker itself and will change every time you restart your app. 70 | 71 | That said, Lando provides a way to "lock down" these ports so they are more predictable. 72 | 73 | ## Locking Down Ports 74 | 75 | Say you've spun up an app using our Backdrop recipe but you are frustrated by the external database port always changing. You can modify your `.lando.yml` with some recipe overrides to assign a static port. 76 | 77 | ::: warning THE PORT YOU FORWARD MUST BE AVAILABLE ON YOUR HOST! 78 | You are going to need to select a port that is actually available on your host machine. If you don't, then this will fail. It's a good idea to avoid common ports like `3306` which likely are in use already. To that end it's good practice to use a port CLOSE TO the default eg `3307` for `3306` or `5433` for `5432`. 79 | ::: 80 | 81 | ```yml 82 | name: myapp 83 | recipe: backdrop 84 | services: 85 | database: 86 | portforward: 3307 87 | ``` 88 | 89 | ```bash 90 | # rebuild from app directory 91 | lando rebuild --yes 92 | 93 | # Check to see the locked down port 94 | lando info 95 | 96 | { 97 | "appserver": { 98 | "type": "php", 99 | "version": "7.0", 100 | "via": "apache", 101 | "webroot": "www", 102 | "urls": [ 103 | "https://localhost:32785", 104 | "http://localhost:32786", 105 | "http://backdrop.lndo.site", 106 | "https://backdrop.lndo.site" 107 | ] 108 | }, 109 | "database": { 110 | "type": "mariadb", 111 | "version": "latest", 112 | "creds": { 113 | "user": "backdrop", 114 | "password": "backdrop", 115 | "database": "backdrop" 116 | }, 117 | "internal_connection": { 118 | "host": "database", 119 | "port": 3306 120 | }, 121 | "external_connection": { 122 | "host": "localhost", 123 | "port": "3307" 124 | } 125 | } 126 | } 127 | ``` 128 | 129 | ## Mapping to The Lando Network 130 | 131 | Some IDEs, such as PhpStorm, will spin up a separate container to run their appserver for services like built-in unit testing. This means that it is separate from the Lando network and cannot communicate with Lando's other containers, such as the database. In order to allow them to communicate, you need to tell your interpreter which network to listen on. 132 | 133 | ::: warning If you got this message... 134 | `php_network_getaddresses: getaddrinfo failed: Name or service not known` while PHPUnit testing in PHPStorm and use a MySQL test database, you're in the right place! 135 | ::: 136 | 137 | First, find your Lando network name by going to the terminal, and _outside of Lando_ run `$ docker network ls`. You should find a record matching your Lando project. For example, if your Lando project is named `d7dev`, then you should see something like: 138 | 139 | ``` 140 | NETWORK ID NAME DRIVER SCOPE 141 | d9526b32d92c d7dev_default bridge local 142 | 143 | ``` 144 | 145 | Next, ensure your framework (PHP) interpreter is configured to use a Docker container matching your project's appserver configuration. For example, if your running PHP 7.1 on Apache, this would look like `devwithlando/php:7.1-apache`. 146 | 147 | Finally, when configuring your framework, edit the Docker Container settings and change the Network Mode to the name of your Lando docker network. 148 | 149 | Now your IDE should be able to communicate with Lando. 150 | -------------------------------------------------------------------------------- /guides/how-do-i-configure-a-lando-recipe.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: How do I configure a Lando Recipe? 3 | description: Using the lando config key to configure your recipe. 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1594391902000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # How do I configure a Lando Recipe? 23 | 24 | When you first initialize a lando app (`lando init`) you get a very simple `.lando.yml` configuration file. Here is the `.lando.yml` file for the LAMP recipe. 25 | 26 | ```yaml 27 | name: mylamp 28 | recipe: lamp 29 | config: 30 | webroot: . 31 | ``` 32 | 33 | By using the `config` key in the `lando.yml` file you can configure aspects of your app to say match the production instance. For example say your production server 34 | is using PHP 5.6; you can set that under the `config` key like so: 35 | 36 | ```yaml 37 | name: mylamp 38 | recipe: lamp 39 | config: 40 | webroot: . 41 | php: 5.6 42 | ``` 43 | 44 | Now be sure to `rebuild` your app so that the new changes take effect: 45 | 46 | ```bash 47 | lando rebuild -y 48 | ``` 49 | 50 | You can check that the change took by using `lando php -v`: 51 | 52 | ```bash 53 | └─ $ ∴ lando php -v 54 | PHP 5.6.40 (cli) (built: Jan 23 2019 00:10:05) 55 | Copyright (c) 1997-2016 The PHP Group 56 | Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies 57 | with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies 58 | ``` 59 | 60 | Similarly you can pin down the database backend and version of your app. Say you want MariaDB 10.3: 61 | 62 | ```yaml 63 | name: mylamp 64 | recipe: lamp 65 | config: 66 | webroot: . 67 | php: 5.6 68 | database: mariadb:10.3 69 | ``` 70 | 71 | Again rebuild for the changes: `lando rebuild -y` and 💥 you now have PHP 5.6 and MariaDB 10.3! 72 | -------------------------------------------------------------------------------- /guides/how-do-i-set-the-timezone-of-a-lando-service.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: How do I set the timezone of a Lando service? 3 | description: Set the timezone of a Lando service for testing time sensitive operations 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1594391902000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # How do I set the timezone of a Lando service? 23 | 24 | If you need to set the timezone of a Lando service here is how! Just symlink the appropriate timezone you need in a `run_as_root` build step. Here is an example `.lando.yml` file. 25 | 26 | ```yaml 27 | name: timezone 28 | recipe: lemp 29 | config: 30 | webroot: . 31 | 32 | services: 33 | appserver: 34 | run_as_root: 35 | - ln -snf /usr/share/zoneinfo/America/New_York /etc/localtime 36 | - echo "America/New_York" > /etc/timezone 37 | ``` 38 | 39 | Just copy the `run_as_root` section into your `services` key for any service you need it for, i.e. `appserver`, `database`, or whatever service you need to set. Be sure to swap out `America/New_York` to the timezone that you need. 40 | 41 | ::: warning Tested on Debian only 42 | Note that we test this on Debian flavored services so these instructions might differ slightly or be unapplicable for non-Debian services. 43 | ::: 44 | 45 | Then run a rebuild: 46 | 47 | ```bash 48 | lando rebuild -y 49 | ``` 50 | 51 | and you'll have the timezone set in those services. 52 | -------------------------------------------------------------------------------- /guides/lando-info.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using $LANDO_INFO 3 | description: Learn how to use Lando's default environment variables inside you application. 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1594391902000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # Using $LANDO_INFO 23 | 24 | Lando will inject an environment variable called `$LANDO_INFO` into each service. This is a `JSON` string representation of the `lando info` command and you can use it to see valuable information about other services such as service hostnames and database connection information and credentials. 25 | 26 | This is helpful if you want to set application configuration in a way that is portable and dynamic between many lando apps. 27 | 28 | ::: warning Use `internal_connection` information! 29 | For services with both `external_connection` and `internal_connection` information. ALWAYS use the `internal_connection` information inside of your application. 30 | ::: 31 | 32 | Here are some examples of code on how to parse `$LANDO_INFO`. 33 | 34 | ## Using PHP 35 | 36 | ```php 37 | $info = json_decode(getenv('LANDO_INFO'), TRUE); 38 | print_r($info); 39 | ``` 40 | 41 | ## Using Javascript/NodeJS 42 | 43 | ```js 44 | 'use strict'; 45 | 46 | var info = JSON.parse(process.env.LANDO_INFO); 47 | 48 | console.log(info); 49 | ``` 50 | 51 | ## Using Other 52 | 53 | More examples coming soon but in the meantime consult the documentation for your language on how to: 54 | 55 | * Grab an environment variable 56 | * Decode a JSON string to an object 57 | -------------------------------------------------------------------------------- /guides/lando-phpstorm.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Lando + PhpStorm + Xdebug 3 | description: Learn how to configure xdebug in Lando using PhpStorm. 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1684248136000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # Lando + PhpStorm + Xdebug 23 | 24 | [PhpStorm](https://www.jetbrains.com/phpstorm/) is a popular code IDE for PHP 25 | and Drupal development. 26 | 27 | This tutorial shows you the basics to get set up with PhpStorm and Xdebug. 28 | For a complete explaination of the Xdebug features and configuration options available to you in Lando see the 29 | [Using Xdebug](https://docs.lando.dev/php/config.html#using-xdebug) section of Lando's PHP plugin documentation. 30 | 31 | ## Getting Started 32 | 33 | Enable Xdebug by adding the `xdebug: true` line to your `.lando.yml`. 34 | 35 | When using a recipe, add it under the `config` key: 36 | ```yaml 37 | name: mywebsite 38 | recipe: drupal10 39 | config: 40 | xdebug: 'develop,debug' 41 | ``` 42 | 43 | Otherwise, override your php service, usually named `appserver`: 44 | ```yaml 45 | name: mywebsite 46 | services: 47 | appserver: 48 | webroot: web 49 | xdebug: 'develop,debug' 50 | ``` 51 | 52 | Out of the box, PhpStorm is already configured to connect to Xdebug. You shouldn't need to change anything, though you may refine settings to meet your needs in PhpStorm's Settings under Languages and frameworks >> PHP >> Debug. 53 | 54 | 1. Install the Xdebug helper extention for your browser. For Chrome-based browsers, use the [Xdebug helper](https://chromewebstore.google.com/search/xdebug) extension. For Firefox, use the [Xdebug Helper for Firefox](https://addons.mozilla.org/en-US/firefox/addon/xdebug-helper-for-firefox/) add-on. 55 | 1. Find the "Listen for PHP Debug Connections" button in your PhpStorm toolbar and click it to start listening for connections. The button will look like a beetle (or a phone in the classic UI). 56 | 1. Add a debug breakpoint to a line in your code by clicking the line number. 57 | 1. In your browser, navigate to your Lando app's URL and click the "beetle" icon that the Xdebug helper added to your address bar. Select "Debug" from the menu to tell your browser to send the appropriate parameters to Xdebug so that Xdebug activates when a request is made. 58 | 1. Refresh the page or click a link. PhpStorm should now automatically open the Debug window and produce debug output if a breakpoint is reached. It may also ask you to map the application server file paths to the paths on your host machine. Lando mounts your project root to `/app` in the application server, so you might map something like `/users/myname/myproject/` to `/app`. 59 | 60 | 61 | ## Debugging CLI Commands 62 | 63 | By default, our Drupal recipes come with Drush out of the box and also the Symfony recipe has a console tooling, which can be debugged with the following config. In order to debug any Drush/Symfony or CLI command using Xdebug with 64 | PhpStorm or a similar IDE, you will need to set two additional environment variables `PHP_IDE_CONFIG` + `XDEBUG_SESSION_START` and configure the 65 | path mapping in your IDE accordingly. 66 | 67 | ```yaml 68 | services: 69 | appserver: 70 | overrides: 71 | environment: 72 | # Support debugging CLI with Xdebug. 73 | PHP_IDE_CONFIG: "serverName=appserver" 74 | XDEBUG_SESSION_START: lando 75 | ``` 76 | 77 | You are free to assign any name to "serverName" as long as it matches the server you define in the IDE settings. 78 | In the example above we set the variable to `appserver` and created a path mapping for the server accordingly: 79 | 80 | ![screenshot](/images/drush-xdebug-phpstorm.png) 81 | 82 | Depending on how you have configured Xdebug to be triggered (xdebug.start_with_request is off by default) 83 | you will need to tell Xdebug to start debugging the request. You can do this by either setting that global 84 | option or by setting the following environment variable before running your request: 85 | 86 | ``` 87 | export XDEBUG_SESSION="PHPSTORM" 88 | ``` 89 | 90 | ## Toggling Xdebug 91 | For performance reasons, it can be a negative to always have Xdebug enabled. Best option is to install/build 92 | Xdebug extension but leave Xdebug disabled (as is the case with `pantheon` framework with `config: xdebug: false`). 93 | One option to do so is to use tooling such as: 94 | 95 | ```yaml 96 | config: 97 | # Set Xdebug off by default. We use the tooling below to turn it on as needed. 98 | xdebug: false 99 | 100 | services: 101 | appserver: 102 | overrides: 103 | environment: 104 | XDEBUG_MODE: 'debug,develop' 105 | 106 | tooling: 107 | xdebug-on: 108 | service: appserver 109 | description: Enable Xdebug. 110 | user: root 111 | cmd: 112 | - docker-php-ext-enable xdebug && kill -USR2 $(pgrep -o php-fpm) > /dev/null || /etc/init.d/apache2 reload 113 | - tput setaf 2 && echo "Xdebug On" && tput sgr 0 && echo 114 | 115 | xdebug-off: 116 | service: appserver 117 | description: Disable Xdebug. 118 | user: root 119 | cmd: 120 | - rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && kill -USR2 $(pgrep -o php-fpm) > /dev/null || /etc/init.d/apache2 reload 121 | - tput setaf 1 && echo "Xdebug Off" && tput sgr 0 && echo 122 | ``` 123 | -------------------------------------------------------------------------------- /guides/lando-with-vscode.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using Lando with VSCode 3 | description: Learn how to configure xdebug in Lando using VSCode. 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1684248136000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # Using Lando with VSCode 23 | 24 | [Visual Studio Code](https://github.com/Microsoft/vscode/) is a great open source editor for programming. Debugging PHP applications with it can be easy too. 25 | 26 | This is a basic setup to help you in this task. 27 | 28 | For a complete explaination of the Xdebug features and configuration options available to you in Lando see the 29 | [Using Xdebug](https://docs.lando.dev/php/config.html#using-xdebug) section of Lando's PHP plugin documentation. 30 | 31 | [[toc]] 32 | 33 | ## Getting Started 34 | 35 | Enable Xdebug by adding the `xdebug: true` line to your `.lando.yml`. 36 | 37 | When using a recipe, add it under the `config` key: 38 | ```yaml 39 | name: mywebsite 40 | recipe: drupal10 41 | config: 42 | xdebug: true 43 | ``` 44 | 45 | Otherwise, override your php service, usually named `appserver`: 46 | ```yaml 47 | name: mywebsite 48 | services: 49 | appserver: 50 | webroot: web 51 | xdebug: true 52 | ``` 53 | 54 | Rebuild your environment. 55 | 56 | ```bash 57 | lando rebuild -y 58 | ``` 59 | 60 | Finally, create a custom `launch.json` file in your workspace in order to map paths so that XDebug works correctly. 61 | 62 | ```bash 63 | touch .vscode/launch.json 64 | code .vscode/launch.json 65 | ``` 66 | 67 | ```json 68 | { 69 | "version": "0.2.0", 70 | "configurations": [ 71 | { 72 | "name": "Listen for XDebug", 73 | "type": "php", 74 | "request": "launch", 75 | "port": 9003, 76 | "pathMappings": { 77 | "/app/": "${workspaceFolder}/", 78 | } 79 | } 80 | ] 81 | } 82 | ``` 83 | 84 | **Note: PHP 7.1 and earlier uses xdebug 2** which uses port 9000, so change the port number above accordingly. 85 | 86 | Done! 87 | 88 | You can now click start debugging (type F5 or click on the icon in the left sidebar). 89 | 90 | ## Advanced Setup 91 | 92 | Optionally for better performance you can easily toggle Xdebug on and off with some custom tooling commands. 93 | 94 | If you're using Apache, add this to your `.lando.yml`: 95 | 96 | ```yaml 97 | config: 98 | # Set Xdebug off by default. We use the tooling below to turn it on as needed. 99 | xdebug: false 100 | 101 | services: 102 | appserver: 103 | overrides: 104 | environment: 105 | XDEBUG_MODE: 'debug,develop' 106 | 107 | tooling: 108 | xdebug-on: 109 | service: appserver 110 | description: Enable Xdebug. 111 | user: root 112 | cmd: 113 | - docker-php-ext-enable xdebug && kill -USR2 $(pgrep -o php-fpm) > /dev/null 2>&1 || /etc/init.d/apache2 reload 114 | - tput setaf 2 && echo "Xdebug On" && tput sgr 0 && echo 115 | 116 | xdebug-off: 117 | service: appserver 118 | description: Disable Xdebug. 119 | user: root 120 | cmd: 121 | - rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && kill -USR2 $(pgrep -o php-fpm) > /dev/null 2>&1 || /etc/init.d/apache2 reload 122 | - tput setaf 1 && echo "Xdebug Off" && tput sgr 0 && echo 123 | ``` 124 | 125 | Now you can turn Xdebug on or off with `lando xdebug-on` and `lando xdebug-off`. 126 | 127 | ## Debugging PhpUnit 128 | 129 | Debugging PhpUnit tests in VSCode requires a little more setup, but Lando helps to make it easier. 130 | 131 | First, you need to have VSCode listen for debugging on 2 separate ports, because PhpUnit runs in one process and the tests themselves in another, and VSCode's Xdebug extension currently struggles with this. You accomplish this by have a launch.json that looks like this: 132 | 133 | ```json 134 | { 135 | "version": "0.2.0", 136 | "configurations": [ 137 | { 138 | "name": "Listen for XDebug", 139 | "type": "php", 140 | "request": "launch", 141 | "port": 9003, 142 | "log": true, 143 | "pathMappings": { 144 | "/app/": "${workspaceFolder}/", 145 | } 146 | }, 147 | { 148 | "name": "PhpUnit dummy", 149 | "type": "php", 150 | "request": "launch", 151 | "port": 9001, 152 | } 153 | ], 154 | "compounds": [ 155 | { 156 | "name": "PhpUnit", 157 | "configurations": ["Listen for XDebug", "PhpUnit dummy"] 158 | } 159 | ] 160 | } 161 | ``` 162 | 163 | Next add some custom tooling to your .lando.yml file, that provides a command to run PhpUnit in a way points the main PhpUnit process to the PhpUnit dummy debugger we just added. (The syntax here assumes a project-specific installation of PhpUnit, not a global one). 164 | 165 | ```yml 166 | tooling: 167 | phpunitdebug: 168 | service: appserver 169 | cmd: php -d xdebug.remote_port=9003 vendor/bin/phpunit 170 | ``` 171 | 172 | **Note: PHP 7.1 and earlier uses xdebug 2** which uses port 9000, so change the port number above accordinly. 173 | 174 | Now to run debug a PhpUnit test, do the following: 175 | 176 | 1. Select the compound "PhpUnit" as your debugger in VSCode's UI, and start it. 177 | 2. Make sure you untick "Everything" in the breakpoints section of the UI, or it will break every time PhpUnit throws an exception, even if it's properly caught by PhpUnit. 178 | 3. Add a breakpoint in your code that is being tested. 179 | 4. On your command line run PhpUnit with something like `lando phpunitdebug --filter=testMyTestMethodName` (this example is of running a single test method, actually you can add any phpunit options you like at the end). 180 | 181 | ## Known issues 182 | 183 | **Xdebug session doesn't start** 184 | 185 | If Xdebug session doesn't start, dig into the log file inside the application. 186 | 187 | Enter the app with `lando ssh` and open the debug file (`/tmp/xdebug.log`). 188 | 189 | Path to the debug file is configured in your custom `php.ini`. 190 | 191 | Now open your app in a browser and see what's being logged. 192 | 193 | ```bash 194 | lando ssh 195 | tail -f /tmp/xdebug.log 196 | # Open your browser and refresh the app 197 | ``` 198 | 199 | **Xdebug says "timeout trying to connect to XX.XX.XX:9003** 200 | 201 | Double-check your host machine allow connection on its port 9003. 202 | 203 | This is how you can open a specific port on a Debian/Ubuntu: 204 | 205 | `sudo iptables -A INPUT -p tcp -d 0/0 -s 0/0 --dport 9003 -j ACCEPT` 206 | 207 | ## Read More 208 | 209 | * [Original Gist with settings for XDebug in VSCode](https://gist.github.com/MatthieuScarset/0c3860def9ff1f0b84e32f618c740655) 210 | * [PHP programming in VSCode](https://code.visualstudio.com/docs/languages/php) 211 | -------------------------------------------------------------------------------- /guides/offline-dev.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Developing offline 3 | description: Learn how to use Lando for offline local development. 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1594391902000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # Developing offline 23 | 24 | Out of the box Lando uses an actual on-the-internet wildcard domain at `*.lndo.site` to route your domain names back to your localhost to provide convenient proxying. This method is minimally invasive and doesn't require Lando to alter your machine's DNS routing. This has the downside of requiring an internet connection to access your sites. 25 | 26 | However, you may want the freedom of hacking away on your site while scaling Everest or just to simply route your projects to a different wildcard domain, like `*.local.dev`, `*.seriously.hanshotfirst` or `*.my.test`. Note that we **DO NOT** recommend you use a _true_ top-level domain such as `*.test`. You can read more about why in our [security](https://docs.lando.dev/config/security) documentation. 27 | 28 | To enable offline custom domain goodness, we'll use DNSMasq to route traffic to our local system and add a single config line to our global Lando config to direct lando to use that domain for our sites. 29 | 30 | That said and before we get started we **highly recommend** you consult both the [proxy](https://docs.lando.dev/config/proxy) and [security](https://docs.lando.dev/config/security) documentation to get a good handle on what is possible (and not possible) here. 31 | 32 | ## Mac Specific Instructions 33 | 34 | 1. Ensure you've installed [Homebrew](https://brew.sh/). 35 | 2. Install DNSMasq: `brew install dnsmasq` 36 | 3. Follow the instructions in the output of `brew info dnsmasq` 37 | 4. Add the following line to your `/usr/local/etc/dnsmasq.conf` (on Apple Silicon it is `/opt/homebrew/etc/dnsmasq.conf`) file: 38 | ``` 39 | address=/local.host/127.0.0.1 40 | ``` 41 | Sub in your favorite domain for 'local.host' here if you want to use something more flashy. 42 | 43 | 5. Restart DNSMasq: `brew services restart dnsmasq` 44 | 6. For macOS to resolve requests from *.local.host to localhost we need to add a resolver: 45 | ``` 46 | sudo mkdir -p /etc/resolver 47 | sudo nano /etc/resolver/local.host 48 | ``` 49 | 7. Add the following line to the local.host file resolver in /etc/resolver/. 50 | ``` 51 | nameserver 127.0.0.1 52 | ``` 53 | 8. Reboot macOS to enable the new resolver. 54 | 9. Flush your DNS, just to be sure that your browsers use the new dns 55 | directives. 56 | ``` 57 | sudo dscacheutil -flushcache 58 | sudo killall -HUP mDNSResponder 59 | ``` 60 | 10. Open your `~/.lando/config.yml` file and add the following line: 61 | ```yaml 62 | domain: local.host 63 | ``` 64 | Again, allow your creativity to flourish and use whatever domain makes you smile. 65 | 66 | 11. Power Lando down with `lando poweroff` 67 | 12. Start up your favorite Lando app to test it out with `lando start` from within your app's root directory. You should see something like: 68 | 69 | ```bash 70 | BOOMSHAKALAKA!!! 71 | 72 | Your app has started up correctly. 73 | Here are some vitals: 74 | 75 | NAME bestappever 76 | LOCATION /Users/McFly/timemachines/bestappever 77 | SERVICES appserver, nginx, database, cache, node 78 | 79 | APPSERVER URLS https://localhost:32791 80 | http://localhost:32792 81 | http://bestappever.local.host 82 | https://bestappever.local.host 83 | ``` 84 | 13. Load it up in the browser and confirm everything is happy and working. 85 | 86 | Enjoy your signature domain while you hack away in complete wifi-less splendor. 87 | -------------------------------------------------------------------------------- /guides/overriding-a-service-version.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Overriding a Service Version or Image 3 | description: Modify the underlying Docker images used by your Lando services so that you can custom tailor the container environment for your apps! 4 | guide: true 5 | 6 | authors: 7 | - name: Team Lando 8 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 9 | link: https://twitter.com/devwithlando 10 | updated: 11 | timestamp: 1594391902000 12 | 13 | mailchimp: 14 | # action is required 15 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 16 | # everything else is optional 17 | title: Want similar content? 18 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 19 | button: Sign me up! 20 | --- 21 | 22 | # Overriding a Service Version or Image 23 | 24 | The Docker images Lando uses for services are well optimized for local development, but occasionally you need to 25 | override those images with some of your own secret sauce. Lando makes this easy to do through the services `overrides` 26 | key: 27 | 28 | ```yaml 29 | name: projectofdoom 30 | recipe: drupal8 31 | config: 32 | via: nginx 33 | webroot: web 34 | php: 7.3 35 | database: mariadb 36 | xdebug: true 37 | env_file: 38 | - .env 39 | services: 40 | database: 41 | overrides: 42 | image: bitnami/mariadb:10.3.27 43 | ``` 44 | 45 | In the example above, we're overriding the image to use an explicit release of Bitnami's MariaDB container to bypass a 46 | breaking change released on Bitnami's 10.3 tag (Lando's default version). 47 | 48 | You can also use this to load your own custom images: 49 | 50 | ```yaml 51 | name: projectofdoom 52 | recipe: drupal8 53 | config: 54 | via: nginx 55 | webroot: web 56 | php: 7.3 57 | database: mariadb 58 | xdebug: true 59 | env_file: 60 | - .env 61 | services: 62 | appserver: 63 | overrides: 64 | image: myamazingorg/fancyappserver:latest 65 | ``` 66 | -------------------------------------------------------------------------------- /guides/updating-plugins-v4.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Updating Lando Plugins to v4 3 | description: Learn how to update Lando Plugins to be Lando 3.21.0+ eg Lando 4 compatible 4 | 5 | authors: 6 | - name: Team Lando 7 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 8 | link: https://twitter.com/devwithlando 9 | updated: 10 | timestamp: 1710252932580 11 | 12 | mailchimp: 13 | # action is required 14 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 15 | # everything else is optional 16 | title: Want similar content? 17 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 18 | button: Sign me up! 19 | --- 20 | 21 | # Updating Lando Plugins to v4 22 | 23 | This guide should be your source of truth for updating your Lando plugins to be compatible with the forthcoming Lando 4 plugin spec. 24 | 25 | Importantly, The Lando 4 plugin spec will be **REQUIRED** for your plugin to work in Lando 4 and it will be _preferred_ for Lando 3 version 3.21.0 or higher. 26 | 27 | ::: tip Check back periodically for updates! 28 | As we continue the long, arduous and inexorable journey to Lando 4 we are going to continually update this guide so make sure you check in from time to time. 29 | ::: 30 | 31 | We recommend you check out the [Lando 3.21.0+](#lando-3-21-0) section if you are _only_ looking to alleviate plugin notices in Lando 3. If you are looking to start making your plugins Lando 4 compatible we recommend you read the sections below that. 32 | 33 | Note that making your plugin Lando 4 compliant will also alleviate plugin notices in Lando 3. We've only provided the [Lando 3.21.0+](#lando-3-21-0) section as a `tl;dr` sort of thing. 34 | 35 | [[toc]] 36 | 37 | ## Lando 3.21.0+ 38 | 39 | If you are getting a notice that your plugin is not Lando 4 compatible and you want to do something about it without reading _all the sections_ in this doc then you are in the right place. 40 | 41 | However, before we begin we want you to know that this is just a notice and your plugin should still work in Lando 3. This means if you are fine seeing the notice you can actually do nothing, stop reading this and get on with your life. 42 | 43 | If you are still reading we assume you would like to get rid of the notice. In which case all you need to do is create a `package.json` in the root directory of your plugin with the below content. 44 | 45 | **package.json** 46 | ```json 47 | { 48 | "name": "my-plugin", 49 | "lando": {} 50 | } 51 | ``` 52 | 53 | Note that you probably want to replace `my-plugin` with the name of your plugin, but other than that you should be good to go now! 🎉 54 | 55 | If you are interested in understanding the above changes more you should check out the rest of this doc. 56 | 57 | ## Validating 58 | 59 | In Lando 3 a "valid" plugin was simply a package that contained an `index.js` in its root directory. In Lando 4 plugin validation is different. While you no longer need an `index.js` for validation purposes you do now need: 60 | 61 | ### 1. A `package.json` 62 | 63 | You will need a `package.json` in the root directory of your plugin that has _at least_ the `name` key set as in: 64 | 65 | **package.json** 66 | ```json 67 | { 68 | "name": "my-awesome-plugin" 69 | } 70 | ``` 71 | 72 | That said you will almost always want the `package.json` to resemble a usual `node` project. 73 | 74 | ### 2. A plugin manifest 75 | 76 | You will also need a plugin manifest that describes the kinds of things your plugin contains. Subsequent sections in this doc will detail the kinds of things you can put in the manifes. This section only details how to provide said manifest which is either in the `package.json` directly or in a manifest file. 77 | 78 | #### package.json 79 | 80 | The simplest way to provide the manifest is by adding a `lando` key to your `package.json`. A minimal valid implementation of a manifest is this: 81 | 82 | ```json 83 | { 84 | "name": "my-awesome-plugin", 85 | "lando": {} 86 | } 87 | ``` 88 | 89 | This is recommended for thin plugins that contain few things that can be statically defined. 90 | 91 | #### manifest file 92 | 93 | As your plugin grows in complexity it may be useful for readability and functional purposes to migrate to a manifest file. The manifest file should live in the root of your plugin next to the `package.json` and there are three different files you can use. 94 | 95 | * `plugin.js` 96 | * `plugin.yaml` 97 | * `plugin.yml` 98 | 99 | Lando will use the first one it finds according to the order above and its contents will be merged on top of any manifest content you have in your `package.json`. However, to decrease confusion we recommend you either remove the `lando` key from your `package.json` or set it to an empty `{}` object if you are planning on using a manifest file. 100 | 101 | **plugin.js** 102 | 103 | The `.js` variant is useful if your manifest is dynamic such as in the below example which adds extra commands only if `core.development` is on. 104 | 105 | ```js 106 | module.exports = context => { 107 | const plugin = { 108 | name: '@lando/development', 109 | registry: {legacy: {}}, 110 | }; 111 | 112 | // if devmode is on then add dev command 113 | if (context.config.get('core.development')) { 114 | plugin.tasks = { 115 | 'plugins': path.resolve(__dirname, 'tasks', 'plugins'), 116 | 'registry': path.resolve(__dirname, 'tasks', 'registry'), 117 | }; 118 | } 119 | 120 | // return plugin 121 | return plugin; 122 | }; 123 | ``` 124 | 125 | **plugin.yaml** 126 | 127 | The `yaml|yml` variant is useful mostly for readability and separation of concerns purposes. 128 | 129 | ```yaml 130 | name: "my-plugin" 131 | tasks: 132 | full-power: ./tasks/power.js 133 | services: 134 | localstack: ./services/locastack.js 135 | ``` 136 | 137 | ## Updating 138 | 139 | If you are deploying your plugin to a `npm` compatible registry and you want people to be able to update it via `lando update` then you need to update your `package.json` so that Lando knows it's a Lando plugin and not some other rando `npm` package. 140 | 141 | If you are already using the `lando` key in your `package.json` as the plugin manifest then that is sufficient and you don't need to do anything else. 142 | 143 | If you are instead using a manifest file like `plugin.js`, `plugin.yaml` or `plugin.yml` then you will need to add `lando-plugin` to `keywords` in your `package.json` like this: 144 | 145 | ```json 146 | { 147 | "name": "my-awesome-plugin", 148 | "keywords": [ 149 | "lando-plugin" 150 | ], 151 | } 152 | ``` 153 | -------------------------------------------------------------------------------- /help.md: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /help/dns-rebind.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn how to handle DNS Rebinding protection when using Lando for local development. 3 | --- 4 | 5 | # DNS Rebinding Protection 6 | 7 | If you are using [Lando proxying](https://docs.lando.dev/core/v3/proxy.html), which is enabled by default, some routers and firewalls may prevent Lando from properly routing `*.lndo.site` addresses to your application through [DNS Rebinding](https://en.wikipedia.org/wiki/DNS_rebinding) protection. For example the `DD-WRT` router firmware enables this protection by default. 8 | 9 | If you are seeing red URLs after you start your app and you are unable to look up the url DNS rebinding protection may be the cause. You can test this out using `nslookup`. 10 | 11 | ```bash 12 | nslookup .lndo.site 13 | ``` 14 | 15 | If this check fails we recommend you consult your router documentation or system administrator to allowlist `*.lndo.site` domains. 16 | 17 | If you can't or don't want to remove this protection, you can alternatively: 18 | 19 | 1. Use the steps in [Working Offline](https://docs.lando.dev/core/v3/proxy.html#working-offline-or-using-custom-domains) to bypass the external DNS lookup altogether 20 | 2. [Disable proxying](https://docs.lando.dev/core/v3/proxy.html#configuration) and rely on the Lando produced `localhost` address 21 | 22 | That said, the ideal scenario is to make sure your network is set up to not block `*.lndo.site` addresses. 23 | 24 | For DD-WRT router firmware, look under the services tab in the admin interface for DNSMasq. In the `Additional DNSMasq Options` textarea, add `address=/lndo.site/127.0.0.1` and save the changes. When you start your app, your Appserver URLs should come up green. 25 | -------------------------------------------------------------------------------- /help/file-sync.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn how to handle file syncing issue when using Lando for local development. 3 | --- 4 | 5 | # File syncing issues 6 | 7 | There are generally a few causes of slow or stalled file sharing. Here are some workarounds and checks you can do in each circumstance. 8 | 9 | ## 1. Has my sync stalled or failed? 10 | 11 | A common reason for a failed sync is that the docker filesharing daemon has crashed. You can resolve the latter by restarting the docker daemon itself. 12 | 13 | ## 2. Is my app located in a shared directory? 14 | 15 | Your app needs to live inside of a shared drive or folder. Here are the following default shared drive/folder locations: 16 | 17 | | OS | Shared Drives/Folders | 18 | | -- | -- | 19 | | `Windows` | `C:\` | 20 | | `macOS` | `/Users`, `/Volumes`, `/tmp`, `/private` | 21 | | `Linux` | `All the folders` | 22 | 23 | Note that on macOS these need to be HARD LINKS. In other words, you cannot symlink `/Users` to `/SomethingElse` and expect it to work. This is often the case if you have an external drive. 24 | 25 | Also note that you can add additional folders and shares to Windows/macOS through the Docker GUI. 26 | -------------------------------------------------------------------------------- /help/logs.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn how to access logs for general troubleshooting when using Lando for local development. 3 | --- 4 | 5 | # Accessing Logs 6 | 7 | Lando has a few different log layers to help you diagnose any issues you might be having. 8 | 9 | ## Install Logs 10 | 11 | If you have a failed installation, you should be able to find logs in the following locations... 12 | 13 | * **Windows** - `%TEMP%\Setup Log**.txt` 14 | * **macOS** - `/var/log/install.log` 15 | * **Linux** - Differs per system but check common `apt` or `dnf/yum` logs 16 | 17 | ## Runtime Logs 18 | 19 | If you encounter an error during runtime, check out the runtime logs at... 20 | 21 | * **macOS/LINUX** - `~/.lando/logs` 22 | * **Windows** - `C:\Users\{ME}\.lando\logs` 23 | 24 | There should be core lando logs called `lando-error.log` and a more robust `lando.log`. There should also be error and verbose logs associated with each of your applications eg `myapp.log` and `myapp-error.log`. 25 | 26 | ::: tip 27 | Run the failing command again in verbose mode. You can pass in `-v`, `-vv`, `-vvv` or `-vvvv` to toggle the level of verbosity. You can also [edit your global config](https://docs.lando.dev/core/v3/global.html) to set the default console log level. 28 | ::: 29 | 30 | ## Container Logs 31 | 32 | ```bash 33 | lando logs -s SOME_SERVICE 34 | ``` 35 | 36 | See the [lando logs](https://docs.lando.dev/cli/logs.html) command for more information. 37 | 38 | ## Advanced Troubleshooting 39 | 40 | One of the best ways to troubleshoot an issue is to use Docker commands directly or use the [lando ssh](https://docs.lando.dev/cli/ssh.html) or [lando info --deep](https://docs.lando.dev/cli/info.html) command. 41 | 42 | ```bash 43 | # List all my containers 44 | docker ps --all 45 | 46 | # List all lando containers 47 | docker ps --filter label=io.lando.container=TRUE --all 48 | 49 | # List all containers for a particular app 50 | docker ps --all | grep appname 51 | 52 | # Inspect a container 53 | docker inspect appname_service_1 54 | 55 | # Check out the logs for a container 56 | docker logs appname_service_1 57 | 58 | # Attach to a container (this is like SSHing) 59 | docker exec -i -t appname_service_1 bash 60 | ``` 61 | -------------------------------------------------------------------------------- /help/proxy.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn how to handle other proxies or things running on ports 80 or 443 when using Lando for local development. 3 | --- 4 | 5 | # Running Lando behind a Proxy 6 | 7 | Users, particularly Windows users, may need to provide some additional networking configuration to their apps if they are sitting behind a proxy. A tell tale sign that you require this sort of configuration is connection issues. Here is an example of what such an issue looks like... 8 | 9 | ```bash 10 | Creating test_appserver_1 ... done 11 | % Total % Received % Xferd Average Speed Time Time Time Current 12 | Dload Upload Total Spent Left Speed 13 | 0 0 0 0 0 0 0 0 --:--:-- 0:00:20 --:--:-- 0 14 | curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 15 | error: Error: 7 16 | ``` 17 | 18 | If you think you may be in this situation there is a Lando driven mechanism you can use to help alleviate the issue as well as various Docker level mechanisms you can read about [below](./proxy.md#potential-docker-driven-solutions). 19 | 20 | ## Lando Environment Files 21 | 22 | You can make sure your containers are aware of any relevant proxies by using a [lando environment file](https://docs.lando.dev/core/v3/env.html) and setting your config there. Below is an example of the things you would want to set in this `env` file. You do not need to define both although that is preferred. 23 | 24 | ```bash 25 | HTTP_PROXY=http://my_proxy:80 26 | HTTPS_PROXY=https://my_proxy:443 27 | ``` 28 | 29 | It is also a good practice to `.gitignore` the `env` file so you can set `proxy` settings that are relevant to you without forcing those settings on other users and environments. 30 | 31 | ## Potential Docker driven solutions 32 | 33 | * https://docs.docker.com/engine/daemon/proxy/ 34 | * https://www.cloudbees.com/blog/using-docker-behind-a-proxy 35 | * https://docs.docker.com/engine/cli/proxy/ 36 | -------------------------------------------------------------------------------- /help/purging-containers.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: If all else fails, try purging all your containers. 3 | --- 4 | 5 | # Purging Containers 6 | 7 | ::: warning May Cause Other Issues 8 | if all else fails you can try this but note that this might cause other unexpected behavior. 9 | ::: 10 | 11 | Sometimes you may get errors that do not make sense. Your docker containers may have been "corrupted" or just confused. This is sort of a nuclear option, but can fix most issues we have seen. 12 | 13 | ::: tip Backup Stuffs 14 | If you can, remember to export all your databases for any sites you don't have a remote copy of. 15 | ::: 16 | 17 | #### Purging command 18 | 19 | To purge all your containers and Lando cache, run the following command in your terminal: 20 | 21 | ```bash 22 | lando poweroff && docker system prune -a --volumes && rm -rf ~/.lando/cache 23 | ``` 24 | 25 | **Windows Users** 26 | 27 | The location of your store app configuration may be different than `~/.lando`. By default the location is `C:\Users\ME\.lando` you can also use `lando config | grep userConfRoot` to locate the exact path. Once you have the path, adjust the command above accordingly. 28 | -------------------------------------------------------------------------------- /help/switching-dbs.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Understand hiccups, caveats or issues switching databases when using Lando for local development. 3 | --- 4 | 5 | # Switching Database Configuration 6 | 7 | If you are currently using a database with Lando and you decide to change its type, version or credentials in your `.lando.yml` file *it's possible* that your database service will not restart correctly or with the expected values once you've made the change. 8 | 9 | For a change in credentials it is required that you `lando destroy && lando start` since these are set at container creation and persist through a `lando rebuild`. 10 | 11 | For a change in type or version this is caused by incompatibilities in the underlying file format that various databases and versions use to store their data. If you are unsure about the aforementioned file format compatibility we recommend you `lando destroy` and recreate the app instead of doing a `lando restart` or `lando rebuild`. 12 | 13 | If you do not do this and there exists an incompatibility it is likely your database will not start up correctly. Newer versions of lando will report this as a warning that your database service is unhealthy. Luckily, even if you get this point a `lando destroy` and `lando start` should set you back onto the path of righteousness. 14 | 15 | Listed below are a few tell tale signs that this is the situation you are in. 16 | 17 | ## 1. Running `lando mysql` 18 | 19 | If you run `lando mysql` or the analgous command for your database type you will see an error that looks similar to: 20 | 21 | ```bash 22 | ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory") 23 | ``` 24 | 25 | ## 2. Scoping Logs 26 | 27 | You can also run `lando logs -s database` where `database` is the name of your database service. If you are unsure what the name of your service is you can run `lando info` to see. 28 | 29 | You should see an error in the logs that looks something like this: 30 | 31 | ```bash 32 | database_1 | 2017-11-15 16:01:10 140537640757184 [Note] InnoDB: Using SSE crc32 instructions 33 | database_1 | 2017-11-15 16:01:10 140537640757184 [Note] InnoDB: Initializing buffer pool, size = 384.0M 34 | database_1 | 2017-11-15 16:01:10 140537640757184 [Note] InnoDB: Completed initialization of buffer pool 35 | database_1 | 2017-11-15 16:01:10 140537640757184 [Note] InnoDB: Highest supported file format is Barracuda. 36 | database_1 | InnoDB: No valid checkpoint found. 37 | database_1 | InnoDB: A downgrade from MariaDB 10.2.2 or later is not supported. 38 | database_1 | InnoDB: If this error appears when you are creating an InnoDB database, 39 | database_1 | InnoDB: the problem may be that during an earlier attempt you managed 40 | database_1 | InnoDB: to create the InnoDB data files, but log file creation failed. 41 | database_1 | InnoDB: If that is the case, please refer to 42 | database_1 | InnoDB: http://dev.mysql.com/doc/refman/5.6/en/error-creating-innodb.html 43 | database_1 | 2017-11-15 16:01:10 140537640757184 [ERROR] Plugin 'InnoDB' init function returned error. 44 | database_1 | 2017-11-15 16:01:10 140537640757184 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 45 | database_1 | 2017-11-15 16:01:10 140537640757184 [Note] Plugin 'FEEDBACK' is disabled. 46 | database_1 | 2017-11-15 16:01:10 140537640757184 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded 47 | database_1 | 2017-11-15 16:01:10 140537640757184 [ERROR] Unknown/unsupported storage engine: innodb 48 | database_1 | 2017-11-15 16:01:10 140537640757184 [ERROR] Aborting 49 | database_1 | 50 | ``` 51 | -------------------------------------------------------------------------------- /help/updating.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Get some help if you have problems with Lando after updating. 3 | --- 4 | 5 | # Updating 6 | 7 | While we try to make updating as seamless as possible Lando has _a lot_ of moving parts so sometimes there are edge cases we miss. 8 | 9 | If you find yourself amongst the lucky edge cases we've prepared this guide to help you work through them on your own. 10 | 11 | ## 1. Where is `lando update`? 12 | 13 | If you don't have a `lando update` command we recommend you first install/update via the [latest available package installer](https://github.com/lando/lando/releases). 14 | 15 | Note that the latest package installer may be a few versions behind where we are today but that's ok because once you have it you can then `lando update`! 16 | 17 | ## 2. Why did my app stop working? 18 | 19 | ### `lando rebuild` 20 | 21 | The vast majority of app specific errors you may run into after updating can be resolved by running a `lando rebuild` on the problematic app. This will ensure your container is clean, up to date and rebuilt against the updated `lando` and `docker` versions. 22 | 23 | ```bash 24 | lando rebuild -y 25 | ``` 26 | 27 | ### Force remove the proxy 28 | 29 | If you're having trouble with `*.lndo.site` or custom `proxy` urls, and you've already determined you do not have an issue with [DNS Rebinding protection](./dns-rebind.md) then manually force removing the `proxy` container and restarting your app could help. 30 | 31 | ```bash 32 | # Remove the proxy 33 | docker rm -f landoproxyhyperion5000gandalfedition_proxy_1 34 | 35 | # Restart the app 36 | lando restart 37 | ``` 38 | 39 | Note that if you have other apps running when you force remove the `proxy` you will likely need to `lando restart` them as well. 40 | 41 | ## 3. Why isn't the CLI updating? 42 | 43 | When `lando update` was in `beta` there were a few issues we had to resolve that now require some manual remediation. Here are a few of the big ones: 44 | 45 | ### Manually updating first 46 | 47 | If you are on the `v3.21.0-beta` series then it's probably best to [manually update](#_1-where-is-lando-update) before running `lando update` again. 48 | 49 | ### Permissions errors 50 | 51 | If you are getting errors about files in either `~/.lando/config` or `~/.lando/scripts` we recommend the following: 52 | 53 | ```sh 54 | lando poweroff 55 | rm -rf ~/.lando/config ~/.lando/scripts 56 | lando update 57 | ``` 58 | 59 | ### CLI reporting wrong version 60 | 61 | If you installed Lando with the older package installer, particularly on Windows, you may have an older version of Lando sitting higher up in `PATH`. 62 | 63 | You can check to see which `lando` is being invoked with the below: 64 | 65 | ::: code-group 66 | ```sh [sh] 67 | which lando 68 | ``` 69 | 70 | ```bat [cmd.exe] 71 | where lando 72 | ``` 73 | 74 | ```powershell [powershell] 75 | Get-Command lando 76 | ``` 77 | ::: 78 | 79 | If the response to the above command is not where you chose to install Lando, which is `~/.lando/bin/lando` by default then you should follow the below steps. 80 | 81 | 1. Remove the `lando` reported by `which|where|Get-Command` or remove the directory it lives in from `PATH`. 82 | 2. Rerun `which|where|Get-Command lando` and if it reports the wrong directory then repeat Step 1. 83 | 84 | ## 4. Why are some services not working? 85 | 86 | You may have accidentally installed the _slim_ version of `lando` which does not include any Lando plugins by default. 87 | 88 | You can usually fix this by simply running the hidden command: 89 | 90 | ```sh 91 | lando setup 92 | ``` 93 | 94 | You can read more about that command [here](https://docs.lando.dev/cli/setup.html) 95 | 96 | ## 5. What if I'm still stuck? 97 | 98 | If you get this far and things are still not working the most likely scenario is you've found a legitimate bug which you should report. To do that either: 99 | 100 | * [Join the Lando slack](https://www.launchpass.com/devwithlando) and report there 101 | * [Spin up an issue on GitHub](https://github.com/lando/lando/issues/new/choose) 102 | -------------------------------------------------------------------------------- /help/win-also-vb.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn about using VirtulBox concurrently when using Lando for local development, especially on Windows. 3 | --- 4 | 5 | # Windows is also running VirtualBox 6 | 7 | In some cases you cannot use VirtualBox, a common development virtualization tool, with Hyper-V. The **tl;dr** there is: 8 | 9 | > VirtualBox and Hyper-V cannot co-exist on the same machine. Only one hypervisor can run at a time, and since Hyper-V runs all the time, while VirtualBox only runs when it is launched, VirtualBox is the loser in this scenario. 10 | 11 | Luckily, there is a documented workaround you can check out over at 12 | [https://derekgusoff.wordpress.com/2012/09/05/run-hyper-v-and-virtualbox-on-the-same-machine/](https://derekgusoff.wordpress.com/2012/09/05/run-hyper-v-and-virtualbox-on-the-same-machine/) 13 | -------------------------------------------------------------------------------- /help/win-file-upload.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn about weird file upload issues when using Lando for local development especially while using Drupal on Windows. 3 | --- 4 | 5 | # Uploading Files in Windows 6 | 7 | ::: tip Probably fixed in 3.0.0-rc.2+ 8 | It is likely this issue has been resolved in Lando `3.0.0-rc.2` but let's keep these docs around for awhile just in case 9 | ::: 10 | 11 | When uploading files via PHP and potentially other things in Lando on Windows you may see an error like the following: 12 | 13 | ``` 14 | The upload directory private://TESTDIR for the file field field_TESTFIELD could not be created or is not accessible. A newly uploaded file could not be saved in this directory as a consequence, and the upload was canceled. 15 | ``` 16 | 17 | ## The Problem 18 | 19 | The `tl;dr` is `php` will incorrectly assume a writable directory mounted by Docker Desktop is in fact not writable. 20 | 21 | This seems to be caused by a convergence of two factors: 22 | 23 | 1. How Docker Desktop uses `SMB` to mount files 24 | 2. How the built in php function [`is_writable`](http://php.net/manual/en/function.is-writable.php) behaves 25 | 26 | [This comment](https://github.com/wodby/docker4drupal/issues/29#issuecomment-316055081) while Drupal in flavor is helpful for a deeper dive on things. 27 | 28 | If you are interested in replicating the issue yourself you should be able to do something like: 29 | 30 | 1. `lando start` a Drupal flavored app you have 31 | 2. Log in as an admin 32 | 3. Spin up a content type that has an image field 33 | 4. Create a new piece of content for that content type 34 | 5. Add a first image (this should succeed) 35 | 6. Add a second image (this should fail) 36 | 37 | The Drupal core `includes/file.inc` file contains a function `file_prepare_directory`. This function is called on each file upload. If the upload is in a directory that does not yet exist, the directory is created, its writability is assumed and the upload succeeds. However, if a file upload is done in a directory that already exists then php's built-in function `is_writable` is used. This will fail for non-root users. 38 | 39 | ## The Solutions 40 | 41 | ### Using nginx (recommended) 42 | 43 | Running the `php` instance as the `root` user seems to allow `is_writable` to function as expected and alleviates the issue described above. As of `beta.38` Lando will run `nginx` flavored `php` as `root` on Windows by default since this has no other known negative side effects. 44 | 45 | **If you are experiencing this issue we recommend you upgrade to `beta.38+` and make sure your Lando app is using `nginx` instead of `apache`.** 46 | 47 | Running `apache` as `root` is currently not supported. See [this issue](https://github.com/docker-library/httpd/issues/48) if you are interested in trying to get Docker to support `run-as-root` capable `apache` as this would provide full out-of-the-box coverage for this issue. 48 | 49 | ### Patching Your Code 50 | 51 | If switching to `nginx` is not an option then it's possible the framework you are using (eg Drupal or Laravel) may have already identified this issue and supplied a patch to help. For example [this](https://www.drupal.org/node/944582) may be relevant for Drupal 7. 52 | 53 | A Google search for `Docker Desktop file sharing MYFRAMEWORK` is probably a good way to start. 54 | -------------------------------------------------------------------------------- /help/wkbox.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn about using Lando with Kalabox. 3 | --- 4 | 5 | # Using Lando with Kalabox 6 | 7 | While Lando is in many ways the successor project to Kalabox it is actually a completely different project that can run side by side with a users existing Kalabox... with a few caveats. 8 | 9 | * If you've turned Kalabox on first, you should be able to reliably start up any Lando app. 10 | * If you've turned Lando on first (and it is bound to port 80) you will likely not be able to turn on Kalabox. 11 | * If you've started Docker in prep for using Lando but haven't started Kalabox, there may still be Kalabox containers running. Run 'docker ps' to see running containers then run 'docker kill' and the id of the Kalabox container to get your ports back for Lando. 12 | 13 | To get around this restriction you should always `lando poweroff` before attempting to activate Kalabox. 14 | -------------------------------------------------------------------------------- /install.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Installation 3 | description: Redirect for install instructions 4 | --- 5 | 6 | 9 | -------------------------------------------------------------------------------- /lando-101.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn the Lando basics with Lando 101 3 | layout: page 4 | title: Lando 101 5 | sidebar: false 6 | --- 7 | 8 | 9 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 25 | -------------------------------------------------------------------------------- /lando-101/lando-config.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Lando Configure 3 | description: An example using the config key to configure a Lando recipe. 4 | 5 | authors: 6 | - name: Team Lando 7 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 8 | link: https://twitter.com/devwithlando 9 | updated: 10 | timestamp: 1594391902000 11 | 12 | mailchimp: 13 | # action is required 14 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 15 | # everything else is optional 16 | title: Want similar content? 17 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 18 | button: Sign me up! 19 | --- 20 | 21 | # Lando Configure 22 | 23 | As we've seen Lando recipes are very useful and dead simple. So far our `.lando.yml` file for the LAMP recipe is just two lines: 24 | 25 | ```yaml 26 | name: lando-101 27 | recipe: lamp 28 | ``` 29 | 30 | The power of Lando is our ability to configure and change it to meet our needs. We can configure it to match production for instance. Let's add a PHP file to our `lando-101` app just so we have something to view in our app. Open a file in your favorite text editor and add a call to `phpinfo()` and save it as `index.php`. 31 | 32 | ```php 33 | 40 | 41 | We can see that this reports the PHP version as `7.3`. Enter the `config` key. Say our production server for the `lando-101` app is running PHP 7.4 and we want to match that in our Lando development environment. We can do that by using the [config](https://docs.lando.dev/lamp/config.html) key in our `.lando.yml` file to configure how the recipe is built. In this case we want PHP 7.4. Edit your `.lando.yml` file like this: 42 | 43 | ```yaml 44 | name: lando-101 45 | recipe: lamp 46 | config: 47 | php: 7.4 48 | ``` 49 | 50 | Now let's rebuild our app with the `lando rebuild -y` command. Now if we visit our app in a browser we will see the the PHP version is reported as `7.4`. Simple! Just like that we've configured our app to use a different version of PHP. 51 | 52 | You can read the details about the `config` key in the docs: [config](https://docs.lando.dev/core/v3/recipes.html). 53 | -------------------------------------------------------------------------------- /lando-101/lando-init.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Lando Init 3 | description: Introduction to Lando ~ Using lando init command. 4 | 5 | authors: 6 | - name: Team Lando 7 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 8 | link: https://twitter.com/devwithlando 9 | updated: 10 | timestamp: 1594391902000 11 | 12 | mailchimp: 13 | # action is required 14 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 15 | # everything else is optional 16 | title: Want similar content? 17 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 18 | button: Sign me up! 19 | --- 20 | 21 | # Lando Init 22 | 23 | The `lando init` command follows the pattern of `git init` or `npm init`. Where `lando init` will prompt you with some questions and prepares a `.lando.yml` configuration file for you. You can run `lando init` from an empty directory or from an extant codebase. 24 | 25 | Let's step through the questions that `lando init` prompts us with: 26 | 27 | ```bash 28 | gff ~/code/lando-ops/guides-example-code/introduction-to-lando/lando-init 29 | () └─ ∴ lando init 30 | ? From where should we get your app's codebase? 31 | current working directory 32 | github 33 | pantheon 34 | platformsh 35 | ❯ remote git repo or archive 36 | ``` 37 | 38 | The first question is `? From where should we get your app's codebase?` and it wants to know where the application code lives, i.e. if you are in an application that you want to initialize for use with Lando you would choose `current working directory`. 39 | 40 | The next question is `? What recipe do you want to use?`. Recipes are pre-configured start states that Lando knows about. For this course we'll choose the LAMP recipe. 41 | 42 | ```bash 43 | ? What recipe do you want to use? (Use arrow keys) 44 | ❯ lamp 45 | laravel 46 | lemp 47 | mean 48 | pantheon 49 | platformsh 50 | wordpress 51 | (Move up and down to reveal more choices) 52 | ``` 53 | 54 | Next up Lando prompts us for the webroot of the application: `? Where is your webroot relative to the init destination?` The webroot can be nested or it can be in the same location as the `.lando.yml` file the project root. For this course we'll leave the default `.` for the current working directory. 55 | 56 | ```bash 57 | ? Where is your webroot relative to the init destination? (.) 58 | ``` 59 | 60 | Then Lando needs to know a name for our application: 61 | 62 | ```bash 63 | ? What do you want to call this app? Lando 101 64 | ``` 65 | 66 | We'll name this app `Lando 101`. 67 | 68 | That's it! 69 | 70 | We've successfully initialized our first Lando app. We should see a message similar to: 71 | 72 | ```bash 73 | ? What do you want to call this app? lando-101 74 | 75 | _ __ _ 76 | / |/ /__ _ __ _ _____( )_______ 77 | / / _ \ |/|/ / | |/|/ / -_)// __/ -_) 78 | /_/|_/\___/__,__/ |__,__/\__/ /_/ \__/ 79 | 80 | _________ ____ __ _______ _______ _ ______________ __ ___________ ______ 81 | / ___/ __ \/ __ \/ //_/ _/ |/ / ___/ | | /| / / _/_ __/ // / / __/ _/ _ \/ __/ / 82 | / /__/ /_/ / /_/ / ,< _/ // / (_ / | |/ |/ // / / / / _ / / _/_/ // , _/ _//_/ 83 | \___/\____/\____/_/|_/___/_/|_/\___/ |__/|__/___/ /_/ /_//_/ /_/ /___/_/|_/___(_) 84 | 85 | Your app has been initialized! 86 | 87 | Go to the directory where your app was initialized and run lando start to get rolling. 88 | Check the LOCATION printed below if you are unsure where to go. 89 | 90 | Oh... and here are some vitals: 91 | 92 | NAME lando-101 93 | LOCATION /home/gff/code/lando-ops/guides-example-code/introduction-to-lando/lando-init 94 | RECIPE lamp 95 | DOCS https://docs.lando.dev/config/lamp.html 96 | ``` 97 | 98 | And the result is that Lando has written a `.lando.yml` configuration file for us in the project root. If you are following along that file should look like this: 99 | 100 | ```yaml 101 | name: lando-101 102 | recipe: lamp 103 | ``` 104 | The `.lando.yml` file gives Lando the information it needs to spin up your application. In this case just two lines! The `name` of the app and the `recipe` to use. We recommend that you commit the `.lando.yml` file to version control so that everyone on your team can have the exact same configuration for development. 105 | 106 | You can see the full documentation for [lando init](https://docs.lando.dev/cli/init.html). 107 | -------------------------------------------------------------------------------- /lando-101/lando-proxy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Lando Proxy 3 | description: An example of using the Lando proxy key. 4 | 5 | authors: 6 | - name: Team Lando 7 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 8 | link: https://twitter.com/devwithlando 9 | updated: 10 | timestamp: 1594391902000 11 | 12 | mailchimp: 13 | # action is required 14 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 15 | # everything else is optional 16 | title: Want similar content? 17 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 18 | button: Sign me up! 19 | --- 20 | 21 | # Lando Proxy 22 | 23 | Some `services` like `mailhog` provide an admin interface via a browser. In such cases it is convenient to assign a URL to the service container. We do so via the `proxy` key in our `.lando.yml` file. 24 | 25 | Let's add a URL to our `mailhog` service so we can access the MailHog dashboard. Open up your Lando 101 `.lando.yml` file and add a proxy section like so: 26 | 27 | ```yaml 28 | name: lando-101 29 | recipe: lamp 30 | config: 31 | php: 7.4 32 | services: 33 | mailhog: 34 | type: mailhog:v1.0.0 35 | portforward: true 36 | hogfrom: 37 | - appserver 38 | proxy: 39 | mailhog: 40 | - mail.lando-101.lndo.site 41 | ``` 42 | 43 | The new config being the `proxy` key which takes a `service` and the `service` gets an array of URLs in this case `- mail.lando-101.lndo.site`. You can add a URL to any service you like. 44 | 45 | ::: warning Rebuild Required 46 | After adding a `proxy` make sure to `rebuild` the Lando 101 app. 47 | 48 | ```bash 49 | lando rebuild -y 50 | ``` 51 | ::: 52 | 53 | After rebuilding we can now access the new `mail.lando-101.lndo.site` URL to view the MailHog dashboard. 54 | 55 | 56 | 57 | Using the `proxy` key in our `.lando.yml` file we can add a URL to any `service` in a Lando app! If you need to dig deeper you can read the [full proxy documentation](https://docs.lando.dev/core/v3/proxy.html). 58 | -------------------------------------------------------------------------------- /lando-101/lando-services.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Lando Services 3 | description: An example adding the mailhog service to a Lando recipe. 4 | 5 | authors: 6 | - name: Team Lando 7 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 8 | link: https://twitter.com/devwithlando 9 | updated: 10 | timestamp: 1594391902000 11 | 12 | mailchimp: 13 | # action is required 14 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 15 | # everything else is optional 16 | title: Want similar content? 17 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 18 | button: Sign me up! 19 | --- 20 | 21 | # Lando Services 22 | 23 | Another way you can extend Lando recipes is by adding additional [services](https://docs.lando.dev/core/v3/services.html). If you need to add a second database to your app, a node container for theming, or any number of use cases you can handle them by adding the appropriate service to your app. In this example we'll add a [mailhog](https://docs.lando.dev/mailhog) service to our Lando 101 app! 24 | 25 | Open up your `.lando.yml` configuration file in your favorite text editor. If you are following along with Lando 101 that file currently looks like this: 26 | 27 | ```yaml 28 | name: lando-101 29 | recipe: lamp 30 | config: 31 | php: 7.4 32 | ``` 33 | 34 | We'll now add the `services` key to our `.lando.yml` file and add in our `mailhog` service: 35 | 36 | ```yaml 37 | name: lando-101 38 | recipe: lamp 39 | config: 40 | php: 7.4 41 | services: 42 | mailhog: 43 | type: mailhog:v1.0.0 44 | portforward: true 45 | hogfrom: 46 | - appserver 47 | ``` 48 | 49 | The new configuration for our `mailhog` service is under the `services` key in our `.lando.yml` file. The service name can be anything. We've named it `mailhog` after the service it provides, but you can name it anything you like. The `type` tells lando what `service` to use (what image to initially fetch and subsequently use). Then the `portforward` key will automatically set a port for the new service, and finally the `hogfrom` key is specific to the the `mailhog` service and tells mailhog where it should be grabbing the mail from for the Lando 101 app that is the appserver. 50 | 51 | After adding or changing a `service` in our app a rebuild is required. 52 | 53 | ```bash 54 | lando rebuild -y 55 | ``` 56 | 57 | After rebuilding the Lando 101 app the new `mailhog` service will be available to our app! You can verify that by running: `docker ps` and you should see a line similar to this: 58 | 59 | ```bash 60 | 00daf795ccd0 mailhog/mailhog:v1.0.0 "/lando-entrypoint.s…" 25 seconds ago Up 24 seconds 8025/tcp, 127.0.0.1:32780->80/tcp, 127.0.0.1:32778->1025/tcp lando101_mailhog_1 61 | ``` 62 | 63 | You can see that our `lando101_mailhog_1` container is up and running and ready for us to use! Some services, like the `mailhog` service, will need to have a URL exposed in order to make use of them. In the next section we'll demonstrate how to add a proxy URL for the `mailhog` service. 64 | -------------------------------------------------------------------------------- /lando-101/lando-start.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Lando Start 3 | description: Start a Lando app and some vocabulary to help us talk about Lando. 4 | 5 | authors: 6 | - name: Team Lando 7 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 8 | link: https://twitter.com/devwithlando 9 | updated: 10 | timestamp: 1594391902000 11 | 12 | mailchimp: 13 | # action is required 14 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 15 | # everything else is optional 16 | title: Want similar content? 17 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 18 | button: Sign me up! 19 | --- 20 | 21 | # Lando Start 22 | 23 | This lesson is primarily about vocabulary to help us understand the Lando ecosystem. A `recipe` in Lando is a pre-configured start state for an application. Lando comes [with more than 12 recipes](https://docs.lando.dev/core/v3/recipes.html) out of the box. In the Lando 101 course we are using the [LAMP](https://docs.lando.dev/lamp) recipe. This tells Lando that we'll need an application container with Apache and PHP and a MySQL container. 24 | 25 | So, if we `lando start` our `Lando 101` app we'll see those corresponding containers. Here is some of the output from `lando start`: 26 | 27 | ```bash 28 | Scanning to determine which services are ready... Please standby... 29 | 30 | ___ __ __ __ __ ______ 31 | / _ )___ ___ __ _ ___ / / ___ _/ /_____ _/ /__ _/ /_____ _/ / / / 32 | / _ / _ \/ _ \/ ' \(_-80/tcp, 127.0.0.1:32952->443/tcp lando101_appserver_1 55 | a5d7060a15be bitnami/mysql:5.7.29-debian-10-r51 "/lando-entrypoint.s…" 25 seconds ago Up 23 seconds 127.0.0.1:32951->3306/tcp lando101_database_1 56 | 7f64e8add1fd traefik:2.2.0 "/lando-entrypoint.s…" 30 hours ago Up 25 seconds 127.0.0.1:80->80/tcp, 127.0.0.1:443->443/tcp, 127.0.0.1:32950->8080/tcp landoproxyhyperion5000gandalfedition_proxy_1 57 | 58 | ``` 59 | 60 | So you can see that Lando has started up `lando101_appserver_1`, `lando101_database_1`, and `landoproxyhyperion5000gandalfedition_proxy_1` containers. Behind the scenes Lando is managing the containers, persistent storage, and the networking for the containers to communication with each other. We don't need to worry about that Lando handles it for us. If later we want to take a deep dive you can see how Lando leverages docker-compose to get that all done for us, but for now just know Lando takes care of the right configurations for the recipe we choose. 61 | -------------------------------------------------------------------------------- /lando-101/lando-tooling.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Lando Tooling 3 | description: An example of adding tooling to a Lando app. 4 | 5 | authors: 6 | - name: Team Lando 7 | pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd 8 | link: https://twitter.com/devwithlando 9 | updated: 10 | timestamp: 1594391902000 11 | 12 | mailchimp: 13 | # action is required 14 | action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f 15 | # everything else is optional 16 | title: Want similar content? 17 | byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. 18 | button: Sign me up! 19 | --- 20 | 21 | # Lando Tooling 22 | 23 | Lando provides context specific tooling for the provided recipes, for example, the `lando-101` app is using the `lamp` recipe and out of the box provides us with tooling commands for `php` cli, `composer`, and a `mysql` shell among others. You can see the available commands for any given Lando app by typing `lando` at your command prompt. 24 | 25 | Sometimes we might need or want to add our own tooling to a Lando app to simplify workflows, use in CI, and reduce documentation. Let's add a `phpcs` tooling command to our Lando 101 app. 26 | 27 | First lets use the Lando provided `composer` tooling to add `phpcs` to our Lando 101 app: 28 | 29 | ```bash 30 | lando composer require squizlabs/php_codesniffer 31 | ``` 32 | 33 | That will place the `phpcs` binary in `/app/vendor/bin/phpcs` and we'll use that path to expose the tooling to our Lando 101 app. 34 | 35 | Open up your `.lando.yml` config file in your favorite text editor: 36 | 37 | ```yaml 38 | name: lando-101 39 | recipe: lamp 40 | config: 41 | php: 7.4 42 | services: 43 | mailhog: 44 | type: mailhog:v1.0.0 45 | portforward: true 46 | hogfrom: 47 | - appserver 48 | proxy: 49 | mailhog: 50 | - mail.lando-101.lndo.site 51 | tooling: 52 | phpcs: 53 | service: appserver 54 | cmd: /app/vendor/bin/phpcs 55 | ``` 56 | 57 | The new part of our config is the `tooling` key under which we have nested the command we want to expose, `phpcs` in this case. Told Lando which service to run the tooling command against with `service: appserver`. Provided the `cmd: /app/vendor/bin/phpcs` to tell Lando what command to run under the hood. 58 | 59 | Now all the developers on our team for the Lando 101 app can code sniff their code to provide uniform standards across the project. For example, if you want to check the syntax of the `index.php` file; you do so like this: 60 | 61 | ```bash 62 | lando phpcs index.php 63 | ``` 64 | 65 | Adding the `phpcs` command is simple, but just one example of the types of tooling you can add to your apps. To take a deep dive and learn more about Lando tooling read the [tooling docs page](https://docs.lando.dev/core/v3/tooling.html). 66 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@lando/docs", 3 | "description": "Lando Docs Repo.", 4 | "version": "4.0.1", 5 | "author": "Mike Pirog @pirog", 6 | "license": "GPL-3.0", 7 | "repository": "lando/docs", 8 | "bugs": "https://github.com/lando/docs/issues/new/choose", 9 | "homepage": "https://github.com/lando/docs", 10 | "keywords": [ 11 | "lando", 12 | "lando-plugin", 13 | "docs" 14 | ], 15 | "engines": { 16 | "node": ">=18.0.0" 17 | }, 18 | "main": "index.js", 19 | "scripts": { 20 | "build": "LANDO_MVB_VERSION=$(git describe --tags --always --abbrev=1 --match=\"v[0-9].*\") vitepress build . && npm run rename-sitemap", 21 | "dev": "LANDO_MVB_VERSION=$(git describe --tags --always --abbrev=1 --match=\"v[0-9].*\") vitepress dev .", 22 | "lint": "eslint . --ext .js --ext .mjs ", 23 | "mvb": "npx mvb .", 24 | "preview": "vitepress preview .", 25 | "rename-sitemap": "node rename-sitemap.js" 26 | }, 27 | "devDependencies": { 28 | "@babel/eslint-parser": "^7.16.0", 29 | "@lando/vitepress-theme-default-plus": "^1.1.0-beta.15", 30 | "babel-eslint": "^10.1.0", 31 | "eslint": "^7.32.0", 32 | "eslint-config-google": "^0.9.1", 33 | "eslint-plugin-vue": "^8.0.3", 34 | "js-yaml": "^4.1.0", 35 | "vitepress": "^1.3.4", 36 | "vue": "^3.4.21" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /plugins.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Plugins 3 | description: Browse, filter, sort, search and vibe all the plugins in the Lando ecosystem 4 | layout: page 5 | sidebar: false 6 | aside: false 7 | --- 8 | 9 | 10 | 13 | 16 | 17 |
18 | 19 |
20 | 21 | 22 |
23 | 24 | 61 | 62 | 72 | -------------------------------------------------------------------------------- /plugins/acquia-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Acquia Plugin 3 | description: This plugin provides a way to use Lando with Acquia Cloud. 4 | link: https://docs.lando.dev/plugins/acquia 5 | source: https://github.com/lando/acquia 6 | image: https://docs.lando.dev/acquia/images/acquiaicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | 16 | tags: 17 | - recipe 18 | - hosting integration 19 | - official 20 | --- 21 | 22 | # Acquia 23 | 24 | stuff and things 25 | -------------------------------------------------------------------------------- /plugins/apache-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Apache Plugin 3 | description: Allows you to use Apache as your web server. 4 | link: https://docs.lando.dev/plugins/apache 5 | source: https://github.com/lando/apache 6 | image: https://docs.lando.dev/apache/images/apacheicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | 16 | tags: 17 | - service 18 | - web server 19 | - official 20 | --- 21 | 22 | -------------------------------------------------------------------------------- /plugins/backdrop-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Backdrop Plugin 3 | description: This recipe spins up a fully-working stack for running Backdrop CMS applications. 4 | link: https://docs.lando.dev/plugins/backdrop 5 | source: https://github.com/lando/backdrop 6 | image: https://docs.lando.dev/backdrop/images/backdropicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - official 18 | --- 19 | 20 | -------------------------------------------------------------------------------- /plugins/compose-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Compose Plugin 3 | description: This plugin provides a way to use Lando with compose Cloud. 4 | link: https://docs.lando.dev/plugins/compose 5 | source: https://github.com/lando/compose 6 | image: https://docs.lando.dev/compose/images/composeicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | --- 16 | 17 | -------------------------------------------------------------------------------- /plugins/dotnet-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Dotnet Plugin 3 | description: This recipe spins up a fully-working stack for running Dotnet applications. 4 | link: https://docs.lando.dev/plugins/dotnet 5 | source: https://github.com/lando/dotnet 6 | image: https://docs.lando.dev/dotnet/images/dotneticon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - runtime 18 | - official 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/drupal-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Drupal Plugin 3 | description: This recipe spins up a fully-working stack for running Drupal applications. 4 | link: https://docs.lando.dev/plugins/drupal 5 | source: https://github.com/lando/drupal 6 | image: https://docs.lando.dev/drupal/images/drupalicon.svg 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - official 18 | --- 19 | 20 | -------------------------------------------------------------------------------- /plugins/elasticsearch-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Elasticsearch Plugin 3 | description: This plugin provides an Elasticsearch datastore for your Lando app. 4 | link: https://docs.lando.dev/plugins/elasticsearch 5 | source: https://github.com/lando/elasticsearch 6 | image: https://docs.lando.dev/elasticsearch/images/elasticsearchicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - index 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/go-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Go Plugin 3 | description: This service plugin provides the Go runtime for your Lando app. 4 | link: https://docs.lando.dev/plugins/go 5 | source: https://github.com/lando/go 6 | image: https://docs.lando.dev/go/images/golangicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - runtime 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/joomla-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Joomla Plugin 3 | description: This recipe spins up a fully-working stack for running Joomla applications. 4 | link: https://docs.lando.dev/plugins/joomla 5 | source: https://github.com/lando/joomla 6 | image: https://docs.lando.dev/joomla/images/joomlaicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - official 18 | --- 19 | 20 | -------------------------------------------------------------------------------- /plugins/lagoon-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Lagoon Plugin 3 | description: This plugin provides a way to use Lando with Lagoon, an opensource hosting solution. 4 | link: https://docs.lando.dev/plugins/lagoon 5 | source: https://github.com/lando/lagoon 6 | image: https://docs.lando.dev/lagoon/images/lagoon-icon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - hosting integration 18 | - official 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/lamp-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: LAMP Plugin 3 | description: This recipe spins up a fully-working LAMP-stack. 4 | link: https://docs.lando.dev/plugins/lamp 5 | source: https://github.com/lando/lamp 6 | image: https://docs.lando.dev/lamp/images/lampicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - official 18 | --- 19 | 20 | -------------------------------------------------------------------------------- /plugins/laravel-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Laravel Plugin 3 | description: This recipe spins up a fully-working stack for running Laravel applications. 4 | link: https://docs.lando.dev/plugins/laravel 5 | source: https://github.com/lando/laravel 6 | image: https://docs.lando.dev/laravel/images/laravelicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - official 18 | --- 19 | 20 | -------------------------------------------------------------------------------- /plugins/lemp-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: LEMP Plugin 3 | description: This recipe spins up a fully-working LEMP stack. 4 | link: https://docs.lando.dev/plugins/lemp 5 | source: https://github.com/lando/lemp 6 | image: https://docs.lando.dev/lemp/images/lampicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - official 18 | --- 19 | 20 | -------------------------------------------------------------------------------- /plugins/mailhog-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Mailhog Plugin 3 | description: This plugin allows you to use Mailhog with your Lando app. 4 | link: https://docs.lando.dev/plugins/mailhog 5 | source: https://github.com/lando/mailhog 6 | image: https://docs.lando.dev/mailhog/images/mailhogicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - dev tool 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/mariadb-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MariaDB Plugin 3 | description: This plugin provides a MariaDB database for your Lando app. 4 | link: https://docs.lando.dev/plugins/mariadb 5 | source: https://github.com/lando/mariadb 6 | image: https://docs.lando.dev/mariadb/images/mariadbicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - database 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/mean-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MEAN Plugin 3 | description: This recipe spins up a fully-working MEAN stack. 4 | link: https://docs.lando.dev/plugins/mean 5 | source: https://github.com/lando/mean 6 | image: https://docs.lando.dev/mean/images/meanicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - official 18 | --- 19 | 20 | -------------------------------------------------------------------------------- /plugins/memcached-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Memcached Plugin 3 | description: This plugin provides the memcached cache service for your Lando app. 4 | link: https://docs.lando.dev/plugins/memcached 5 | source: https://github.com/lando/memcached 6 | image: https://docs.lando.dev/memcached/images/memcachedicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - cache 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/mongo-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MongoDB Plugin 3 | description: This plugin provides a MongoDB database for your Lando app. 4 | link: https://docs.lando.dev/plugins/mongo 5 | source: https://github.com/lando/mongo 6 | image: https://docs.lando.dev/mongo/images/mongoicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - database 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/mssql-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MSSQL Plugin 3 | description: This plugin provides a MSSQL database for your Lando app. 4 | link: https://docs.lando.dev/plugins/mssql 5 | source: https://github.com/lando/mssql 6 | image: https://docs.lando.dev/mssql/images/mssqlicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - database 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/mysql-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MySQL Plugin 3 | description: This plugin provides a MySQL database for your Lando app. 4 | link: https://docs.lando.dev/plugins/mysql 5 | source: https://github.com/lando/mysql 6 | image: https://docs.lando.dev/mysql/images/mysqlicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - database 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/nginx-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: nginx Plugin 3 | description: Allows you to use Nginx as the web server in your Lando app. 4 | link: https://docs.lando.dev/plugins/nginx 5 | source: https://github.com/lando/nginx 6 | image: https://docs.lando.dev/nginx/images/nginxicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - web server 18 | - official 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/node-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Node Plugin 3 | description: This service plugin provides the NodeJS runtime for your Lando app. 4 | link: https://docs.lando.dev/plugins/node 5 | source: https://github.com/lando/node 6 | image: https://docs.lando.dev/node/images/nodejsicon.svg 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - runtime 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/pantheon-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Pantheon Plugin 3 | description: This plugin provides a way to use Lando with the Pantheon hosting service. 4 | link: https://docs.lando.dev/plugins/pantheon 5 | source: https://github.com/lando/pantheon 6 | image: https://docs.lando.dev/pantheon/images/pantheonicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - hosting integration 18 | - official 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/php-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: PHP Plugin 3 | description: This service plugin provides the PHP runtime for your Lando app. 4 | link: https://docs.lando.dev/plugins/php 5 | source: https://github.com/lando/php 6 | image: https://docs.lando.dev/php/images/phpicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - runtime 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/phpmyadmin-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: phpMyAdmin Plugin 3 | description: This plugin allows you to use PHPMyAdmin with your Lando app. 4 | link: https://docs.lando.dev/plugins/phpmyadmin 5 | source: https://github.com/lando/phpmyadmin 6 | image: https://docs.lando.dev/phpmyadmin/images/phpmyadminicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - dev tool 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/platformsh-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Platform.sh Plugin 3 | description: This plugin provides a way to use Lando with the Platform.sh hosting service. 4 | link: https://docs.lando.dev/plugins/platformsh 5 | source: https://github.com/lando/platformsh 6 | image: https://docs.lando.dev/platformsh/images/pshicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - hosting integration 18 | - unsupported 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/postgres-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: PostgreSQL Plugin 3 | description: This plugin provides a Postgres database for your Lando app. 4 | link: https://docs.lando.dev/plugins/postgres 5 | linkText: db me 6 | source: https://github.com/lando/postgres 7 | image: https://docs.lando.dev/postgres/images/postgresicon.png 8 | maintainers: 9 | - name: Team Lando 10 | avatar: /images/icon.svg 11 | links: 12 | - icon: github 13 | link: https://github.com/lando 14 | - icon: twitter 15 | link: https://twitter.com/devwithlando 16 | tags: 17 | - service 18 | - official 19 | - database 20 | --- 21 | 22 | -------------------------------------------------------------------------------- /plugins/python-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Python Plugin 3 | description: This service plugin provides the Python runtime for your Lando app. 4 | link: https://docs.lando.dev/plugins/python 5 | source: https://github.com/lando/python 6 | image: https://docs.lando.dev/python/images/pythonicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - runtime 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/redis-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: redis Plugin 3 | description: This plugin provides the Redis cache service for your Lando app. 4 | link: https://docs.lando.dev/plugins/redis 5 | source: https://github.com/lando/redis 6 | image: https://docs.lando.dev/redis/images/redisicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - cache 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/ruby-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Ruby Plugin 3 | description: This service plugin provides the Ruby runtime for your Lando app. 4 | link: https://docs.lando.dev/plugins/ruby 5 | source: https://github.com/lando/ruby 6 | image: https://docs.lando.dev/ruby/images/rubyicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - runtime 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/solr-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Solr Plugin 3 | description: This plugin provides an Apache Solr datastore for your Lando app. 4 | link: https://docs.lando.dev/plugins/solr 5 | source: https://github.com/lando/solr 6 | image: https://docs.lando.dev/solr/images/solricon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - index 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/symfony-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Symfony Plugin 3 | description: This recipe spins up a fully-working stack for running Symfony applications. 4 | link: https://docs.lando.dev/plugins/symfony 5 | source: https://github.com/lando/symfony 6 | image: https://docs.lando.dev/symfony/images/symfonyicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - official 18 | --- 19 | 20 | -------------------------------------------------------------------------------- /plugins/tomcat-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Tomcat Plugin 3 | description: Allows you to use Tomcat as a web server in your Lando app. 4 | link: https://docs.lando.dev/plugins/tomcat 5 | source: https://github.com/lando/tomcat 6 | image: https://docs.lando.dev/tomcat/images/tomcaticon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - web server 18 | - official 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/varnish-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Varnish Plugin 3 | description: This plugin provides the Varnish cache service for your Lando app. 4 | link: https://docs.lando.dev/plugins/varnish 5 | source: https://github.com/lando/varnish 6 | image: https://docs.lando.dev/varnish/images/varnishicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - service 17 | - official 18 | - cache 19 | --- 20 | 21 | -------------------------------------------------------------------------------- /plugins/wordpress-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: WordPress Plugin 3 | description: This plugin provides a way to use Lando with wordpress Cloud. 4 | link: https://docs.lando.dev/plugins/wordpress 5 | source: https://github.com/lando/wordpress 6 | image: https://docs.lando.dev/wordpress/images/wordpressicon.png 7 | maintainers: 8 | - name: Team Lando 9 | avatar: /images/icon.svg 10 | links: 11 | - icon: github 12 | link: https://github.com/lando 13 | - icon: twitter 14 | link: https://twitter.com/devwithlando 15 | tags: 16 | - recipe 17 | - official 18 | --- 19 | 20 | -------------------------------------------------------------------------------- /public/contact.html: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/favicon.ico -------------------------------------------------------------------------------- /public/favicon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/add-remote-interpreter-docker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/add-remote-interpreter-docker.png -------------------------------------------------------------------------------- /public/images/d7-db-creds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/d7-db-creds.png -------------------------------------------------------------------------------- /public/images/drupal7-extant/landoAppName.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/drupal7-extant/landoAppName.jpg -------------------------------------------------------------------------------- /public/images/drupal7-extant/landoCodeBase.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/drupal7-extant/landoCodeBase.jpg -------------------------------------------------------------------------------- /public/images/drupal7-extant/landoInfo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/drupal7-extant/landoInfo.jpg -------------------------------------------------------------------------------- /public/images/drupal7-extant/landoInit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/drupal7-extant/landoInit.jpg -------------------------------------------------------------------------------- /public/images/drupal7-extant/landoStart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/drupal7-extant/landoStart.jpg -------------------------------------------------------------------------------- /public/images/drupal7-extant/landoWebroot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/drupal7-extant/landoWebroot.jpg -------------------------------------------------------------------------------- /public/images/drupalicon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/drush-xdebug-phpstorm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/drush-xdebug-phpstorm.png -------------------------------------------------------------------------------- /public/images/edgerelease.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/edgerelease.png -------------------------------------------------------------------------------- /public/images/github-personal-access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/github-personal-access.png -------------------------------------------------------------------------------- /public/images/hero-pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/hero-pink.png -------------------------------------------------------------------------------- /public/images/hero-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/hero-white.png -------------------------------------------------------------------------------- /public/images/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/hero.png -------------------------------------------------------------------------------- /public/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/icon.png -------------------------------------------------------------------------------- /public/images/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/lamp-con.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/lamp-con.png -------------------------------------------------------------------------------- /public/images/lamp-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/lamp-start.png -------------------------------------------------------------------------------- /public/images/lando-101/lando-101-index.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/lando-101/lando-101-index.jpg -------------------------------------------------------------------------------- /public/images/lando-101/logo-pink-medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/lando-101/logo-pink-medium.png -------------------------------------------------------------------------------- /public/images/lando-101/mh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/lando-101/mh.jpg -------------------------------------------------------------------------------- /public/images/lando-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/lando-screenshot.png -------------------------------------------------------------------------------- /public/images/logo-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/logo-1.png -------------------------------------------------------------------------------- /public/images/logo-pink-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/logo-pink-icon.png -------------------------------------------------------------------------------- /public/images/logo-pink-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/logo-pink-mini.png -------------------------------------------------------------------------------- /public/images/logo-pink-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/logo-pink-small.png -------------------------------------------------------------------------------- /public/images/logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/logo-small.png -------------------------------------------------------------------------------- /public/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/logo.png -------------------------------------------------------------------------------- /public/images/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/seal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/seal.png -------------------------------------------------------------------------------- /public/images/stablerelease.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/stablerelease.png -------------------------------------------------------------------------------- /public/images/tandem-pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/tandem-pink.png -------------------------------------------------------------------------------- /public/images/tandem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/tandem.png -------------------------------------------------------------------------------- /public/images/test-frameworks-remote-interpreter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lando/legacy-docs/788e2c74dffd5a0e6dc2fe70ca3b9699d568ee97/public/images/test-frameworks-remote-interpreter.png -------------------------------------------------------------------------------- /public/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | https://docs.lando.dev/docs-sitemap.xml 5 | 6 | 7 | https://docs.lando.dev/cli/sitemap.xml 8 | 9 | 10 | https://docs.lando.dev/core/sitemap.xml 11 | 12 | 13 | https://docs.lando.dev/install/sitemap.xml 14 | 15 | 16 | https://docs.lando.dev/plugins/acquia/sitemap.xml 17 | 18 | 19 | https://docs.lando.dev/plugins/apache/sitemap.xml 20 | 21 | 22 | https://docs.lando.dev/plugins/backdrop/sitemap.xml 23 | 24 | 25 | https://docs.lando.dev/plugins/compose/sitemap.xml 26 | 27 | 28 | https://docs.lando.dev/plugins/dotnet/sitemap.xml 29 | 30 | 31 | https://docs.lando.dev/plugins/drupal/sitemap.xml 32 | 33 | 34 | https://docs.lando.dev/plugins/elasticsearch/sitemap.xml 35 | 36 | 37 | https://docs.lando.dev/plugins/go/sitemap.xml 38 | 39 | 40 | https://docs.lando.dev/plugins/joomla/sitemap.xml 41 | 42 | 43 | https://docs.lando.dev/plugins/lagoon/sitemap.xml 44 | 45 | 46 | https://docs.lando.dev/plugins/lamp/sitemap.xml 47 | 48 | 49 | https://docs.lando.dev/plugins/laravel/sitemap.xml 50 | 51 | 52 | https://docs.lando.dev/plugins/lemp/sitemap.xml 53 | 54 | 55 | https://docs.lando.dev/plugins/mailhog/sitemap.xml 56 | 57 | 58 | https://docs.lando.dev/plugins/mariadb/sitemap.xml 59 | 60 | 61 | https://docs.lando.dev/plugins/mean/sitemap.xml 62 | 63 | 64 | https://docs.lando.dev/plugins/memcached/sitemap.xml 65 | 66 | 67 | https://docs.lando.dev/plugins/mongo/sitemap.xml 68 | 69 | 70 | https://docs.lando.dev/plugins/mssql/sitemap.xml 71 | 72 | 73 | https://docs.lando.dev/plugins/mysql/sitemap.xml 74 | 75 | 76 | https://docs.lando.dev/plugins/nginx/sitemap.xml 77 | 78 | 79 | https://docs.lando.dev/plugins/node/sitemap.xml 80 | 81 | 82 | https://docs.lando.dev/plugins/pantheon/sitemap.xml 83 | 84 | 85 | https://docs.lando.dev/plugins/php/sitemap.xml 86 | 87 | 88 | https://docs.lando.dev/plugins/phpmyadmin/sitemap.xml 89 | 90 | 91 | https://docs.lando.dev/plugins/platformsh/sitemap.xml 92 | 93 | 94 | https://docs.lando.dev/plugins/postgres/sitemap.xml 95 | 96 | 97 | https://docs.lando.dev/plugins/python/sitemap.xml 98 | 99 | 100 | https://docs.lando.dev/plugins/redis/sitemap.xml 101 | 102 | 103 | https://docs.lando.dev/plugins/ruby/sitemap.xml 104 | 105 | 106 | https://docs.lando.dev/plugins/solr/sitemap.xml 107 | 108 | 109 | https://docs.lando.dev/plugins/symfony/sitemap.xml 110 | 111 | 112 | https://docs.lando.dev/plugins/tomcat/sitemap.xml 113 | 114 | 115 | https://docs.lando.dev/plugins/varnish/sitemap.xml 116 | 117 | 118 | https://docs.lando.dev/plugins/wordpress/sitemap.xml 119 | 120 | 121 | -------------------------------------------------------------------------------- /rename-sitemap.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | 4 | const oldPath = path.join(__dirname, '.vitepress', 'dist', 'sitemap.xml'); 5 | const newPath = path.join(__dirname, '.vitepress', 'dist', 'docs-sitemap.xml'); 6 | 7 | fs.rename(oldPath, newPath, err => { 8 | if (err) { 9 | console.error('Error renaming sitemap.xml:', err); 10 | process.exit(1); 11 | } 12 | console.log('sitemap.xml has been renamed to docs-sitemap.xml'); 13 | }); 14 | 15 | // Copy public/sitemap.xml to .vitepress/dist/sitemap.xml 16 | const oldSitemapPath = path.join(__dirname, 'public', 'sitemap.xml'); 17 | const newSitemapPath = path.join(__dirname, '.vitepress', 'dist', 'sitemap.xml'); 18 | 19 | fs.copyFile(oldSitemapPath, newSitemapPath, err => { 20 | if (err) { 21 | console.error('Error copying sitemap.xml:', err); 22 | process.exit(1); 23 | } 24 | console.log('sitemap.xml has been copied to .vitepress/dist/sitemap.xml'); 25 | }); 26 | -------------------------------------------------------------------------------- /security.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn how to submit a security issue to Lando. 3 | --- 4 | 5 | # Security 6 | 7 | If you have discovered a security issue with Lando, please contact the Lando Security Team directly at 8 | [security@lando.dev](mailto:security@lando.dev). We manage security issues separately in a private repository until the issue has been resolved. 9 | Even if you're not sure if it's a security problem, please contact the security team before filing an issue, blogging, or 10 | tweeting about it. 11 | 12 | ## Security Team 13 | 14 | * [Alec Reynolds](https://github.com/reynoldsalec) 15 | * [Mike Pirog](https://github.com/pirog) 16 | 17 | ## Security Evaluations 18 | 19 | Is your company looking at adopting Lando and performing a security evaluation? Contact [security@lando.dev](mailto:security@lando.dev) and we can help you get started. 20 | -------------------------------------------------------------------------------- /support.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Contact Us 3 | description: Get help and support for the Lando Dotnet Plugin 4 | --- 5 | 6 | # Contact Us 7 | 8 | If you need priority and dedicated support, expediated bug fixes or more features then please contact us below. 9 | 10 |
11 | 12 |

13 | 14 |

15 |

16 | 17 |

18 |

19 | 20 |

21 |

22 | 23 |

24 |
25 | -------------------------------------------------------------------------------- /team.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Learn about the team that made VitePress Default Theme Plus. 3 | layout: page 4 | title: Team 5 | --- 6 | 7 | 8 | 9 | 12 | 15 | 16 | 17 | 18 | 19 | 26 | -------------------------------------------------------------------------------- /terms.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Lando Documentation's Terms and Conditions 3 | editLink: false 4 | jobs: false 5 | sidebar: false 6 | sponsors: false 7 | carbonAds: false 8 | next: false 9 | prev: 10 | text: 'Back' 11 | link: '/' 12 | --- 13 | 14 | # Terms and Conditions 15 | 16 | **Last updated:** _November 26, 2019_ 17 | 18 | These Terms and Conditions ("Terms", "Terms and Conditions") govern your relationship with website (the "Service") operated by Kalabox Inc DBA Tandem ("us", "we", or "our"). 19 | 20 | Please read these Terms and Conditions carefully before using the Service. 21 | 22 | Your access to and use of the Service is conditioned on your acceptance of and compliance with these Terms. These Terms apply to all visitors, users and others who access or use the Service. 23 | 24 | By accessing or using the Service you agree to be bound by these Terms. If you disagree with any part of the terms then you may not access the Service. 25 | 26 | ## Other Terms 27 | 28 | If you are looking for the Terms and Conditions for Lando the software you should [look here](https://github.com/lando/lando/blob/master/TERMS.md). 29 | 30 | ## Links To Other Web Sites 31 | 32 | Our Service may contain links to third-party web sites or services that are not owned or controlled by Kalabox Inc DBA Tandem. 33 | 34 | Kalabox Inc DBA Tandem has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party web sites or services. You further acknowledge and agree that Kalabox Inc DBA Tandem shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods or services available on or through any such web sites or services. 35 | 36 | We strongly advise you to read the terms and conditions and privacy policies of any third-party web sites or services that you visit. 37 | 38 | ## Termination 39 | 40 | We may terminate or suspend your access immediately, without prior notice or liability, for any reason whatsoever, including without limitation if you breach the Terms. 41 | 42 | Upon termination, your right to use the Service will immediately cease. 43 | 44 | ## Governing Law 45 | 46 | These Terms shall be governed and construed in accordance with the laws of United States, without regard to its conflict of law provisions. 47 | 48 | Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights. If any provision of these Terms is held to be invalid or unenforceable by a court, the remaining provisions of these Terms will remain in effect. These Terms constitute the entire agreement between us regarding our Service, and supersede and replace any prior agreements we might have between us regarding the Service. 49 | 50 | ## Changes 51 | 52 | We reserve the right, at our sole discretion, to modify or replace these Terms at any time. If a revision is material we will try to provide at least 30 days notice prior to any new terms taking effect. What constitutes a material change will be determined at our sole discretion. 53 | 54 | By continuing to access or use our Service after those revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, please stop using the Service. 55 | 56 | ## Contact Us 57 | 58 | If you have any questions about these Terms, please contact us. 59 | 60 | -------------------------------------------------------------------------------- /troubleshooting.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Home helpful troubleshooting materials for Lando 3 | layout: page 4 | title: Troubleshooting 5 | sidebar: false 6 | --- 7 | 8 | 9 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 26 | --------------------------------------------------------------------------------