$ ps-lando
Empezar

Instalación

Requisitos previos, plataformas soportadas y qué esperar en la primera ejecución.

ps-lando en sí es un único paquete npm — npx ps-lando@latest <command> es la única invocación que necesitas. Todo lo demás en esta página va sobre la máquina anfitriona que ejecuta Lando + Docker por debajo.

Requisitos previos

HerramientaPor quéCómo
Node.js 20+Ejecuta la CLI vía npx.nodejs.org o tu gestor de paquetes.
DockerMotor de contenedores que pilota Lando.Docker Desktop (macOS / Windows) o Docker Engine (Linux).
Lando 3.26+Orquesta Apache + MariaDB + phpMyAdmin + MailHog.docs.lando.dev/install.
unzip, curl, gitUsados internamente por la CLI.Preinstalados en macOS/Linux. En Windows: usa WSL2.

Si tienes OrbStack instalado, igual necesitas Docker Desktop instalado (no hace falta que esté arrancado) para que /Applications/Docker.app exista en disco. La comprobación de motor de Lando falla si no. Mira lando/core#138.

Suelta tus zips, elige qué instalar

Desde 1.0.0 (1.0.0), ps-lando es zero-config y theme-agnostic: suelta tus zips de tema + módulos en una carpeta, ejecuta ps-lando create y la CLI te guía por dos prompts:

  1. Tema — prompt select que lista cada tema detectado (zip con config/theme.{yml,xml} a profundidad 0 o 1) más una opción None.
  2. Módulos — prompt multiselect con cada zip de módulo detectado (<name>/<name>.php o <name>/config.xml) pre-marcado.

Eliges lo que quieres, le das a enter y la CLI instala solo lo seleccionado. Sin flag --panda, sin binario específico de tema, sin que se cuelen módulos pre-instalados de PS.

PatrónQué es¿Obligatorio?
*.zip con config/theme.{yml,xml}Cualquier zip de tema de PrestaShop.Opcional — puedes elegir None en el prompt para un install vanilla.
st*.zip / module-*.zip / <name>.zip con <name>/<name>.phpCualquier zip de módulo PrestaShop.Opcional — ninguno, uno o muchos.

La CLI escanea el cwd (o --zips=<dir>) y clasifica cada *.zip como tema / módulo / desconocido vía el zip-classifier incluido. Detección case-insensitive en todo.

Defaults no interactivos (-y)

ps-lando create -y salta ambos prompts:

  • 1 tema detectado → auto-seleccionado. 2+ temas → termina con exit 2 (AmbiguousThemeError) y un hint para pasar --theme=<name>.
  • Todos los módulos detectados quedan auto-marcados.
  • Carpeta vacía → install vanilla de PS con los temas classic / hummingbird incluidos (sin prompts).

Los scripts CI que ya pasan -y siguen funcionando sin tocar nada.

Camino feliz Panda

Suelta tus panda*.zip + steasybuilder* + steasy_trans_panda* en la carpeta, ejecuta ps-lando create, selecciona panda en el prompt de tema, deja el multiselect de módulos como está, dale a enter. El preset panda incluido se activa automáticamente (se vincula al nombre del tema seleccionado) y tienes el mismo sandbox Panda + Easy Builder que producía el flujo hard-coded pre-1.0 — byte-equivalente a v0.6.

Preset incluido panda

ps-lando incluye el preset panda que se activa cuando el usuario selecciona (o -y auto-selecciona) un tema cuyo nombre es panda — el mismo comportamiento Panda + Easy Builder que los usuarios pre-1.0 tenían hard-codeado. El preset conecta el puente Easy Builder ↔ Panda y aporta los globs de grupo blog / easybuilder / social / marketing. Desactívalo con --no-preset o presets: [] en config; fuerza otro con --preset=<name>.

PresetSe activa cuandoQué hace
panda (incluido)El nombre del tema seleccionado es pandaAñade el puente Easy Builder, filtros de grupo (blog, easybuilder, social, marketing), orden tipo stblog_parent.
none (incluido)Nunca (solo explícito)No-op — útil para --preset=none y descartar sin --no-preset.

Ver Referencia → Presets para escribir presets locales.

Opcional: pslando.config.json

Zero-config es lo por defecto. Si quieres comportamiento explícito y repetible (CI, subcarpetas de monorepo, drops multi-tema), ejecuta ps-lando init para generar un pslando.config.json:

ps-lando init           # interactivo (clack), 7 prompts
ps-lando init --yes     # escribe defaults, sin prompts
ps-lando init --force   # sobrescribe config existente

El asistente init escribe pslando.config.json, un init-scripts/01-example.sh de ejemplo y añade .pslando-cache.json a tu .gitignore. Ver Referencia → Config para el esquema completo.

¿Migrando desde 0.6.x? Mira la guía Migración desde 0.x. Las flags --skip-easybuilder, --skip-blog, --skip-social y --skip-marketing se eliminaron en 1.0.0 — reemplazadas por la flag genérica --exclude=<glob>.

macOS

La plataforma más probada. Funciona nativamente en Apple Silicon (M1 / M2 / M3 / M4) — las imágenes Docker corren nativas o vía Rosetta sin problemas.

brew install node
brew install --cask docker
brew install --cask lando

Arranca Docker Desktop una vez desde Aplicaciones para que acepte permisos y cree ~/.docker/. Después, Lando se encarga de levantar y parar contenedores cuando hace falta.

node --version    # se espera v20+
docker --version  # cualquier versión reciente
lando version

Linux

Funciona en cualquier distro que pueda ejecutar Docker Engine + Node 20. La instalación es por distro para Docker, y luego Lando ofrece un paquete deb/rpm único.

Ubuntu / Debian

1. Instala Docker Engine (community edition, gratis):

Añade el repo APT oficial de Docker e instala:

# Quita primero versiones viejas de podman/docker.io si las hay
sudo apt-get remove docker docker-engine docker.io containerd runc 2>/dev/null

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Para Debian, cambia ubuntu por debian en las URLs.

2. Usa Docker sin sudo:

sudo usermod -aG docker $USER
newgrp docker     # aplica el grupo en el shell actual, o cierra sesión y vuelve a entrar
docker run hello-world

3. Instala Node.js 20:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

4. Instala Lando:

Descarga el .deb más reciente desde lando releases:

curl -fsSL https://files.lando.dev/installer/setup-lando.sh | bash
# o baja lando-stable.deb manualmente y:
# sudo dpkg -i lando-stable.deb

Fedora / RHEL / CentOS Stream

# Docker
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER && newgrp docker

# Node.js 20
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo dnf install -y nodejs

# Lando
curl -fsSL https://files.lando.dev/installer/setup-lando.sh | bash

Arch / Manjaro

sudo pacman -Syu docker docker-buildx docker-compose nodejs npm
sudo systemctl enable --now docker
sudo usermod -aG docker $USER && newgrp docker

# Lando — instálalo con el script oficial
curl -fsSL https://files.lando.dev/installer/setup-lando.sh | bash

Verifica la instalación en Linux

node --version       # v20+
docker --version
docker compose version
lando version
docker run --rm hello-world   # confirma daemon + permisos

Tip de rendimiento: ten los archivos del proyecto en un sistema de ficheros nativo de Linux (ext4, btrfs). Evita volúmenes Docker montados desde /mnt/c/... u otros sistemas de ficheros foráneos — ralentizan mucho.

Problemas comunes en Linux

  • Cannot connect to the Docker daemon — te olvidaste sudo usermod -aG docker $USER (o no hiciste newgrp docker / login out+in después).
  • failed to start daemon: error initializing graphdriver — casi siempre un tema de cgroup v2 en kernels viejos. Actualiza al kernel 5.15+ o revisa /etc/docker/daemon.json.
  • Conflictos de puerto Lando — si ya tienes Apache o MySQL en el host, lando start falla. Para los servicios del host o cambia los puertos expuestos en .lando.yml.
  • SELinux en Fedora/RHEL — si los mounts se comportan raro, prueba :Z en los bind mounts. Lando lo gestiona internamente para sus propios servicios.

Windows

Usa WSL2 con la integración WSL de Docker Desktop. ps-lando usa herramientas POSIX (unzip, curl, git) y asume un shell Unix — desde PowerShell o CMD no funciona.

Setup inicial (una vez)

1. Instala WSL2 + Ubuntu (PowerShell como admin, un comando):

wsl --install

Esto instala WSL2 y deja Ubuntu como distro por defecto. Reinicia cuando te lo pida, luego abre Ubuntu desde el menú Inicio. Pon usuario + password la primera vez que arranca.

Si quieres otra distro: wsl --list --online muestra las disponibles, wsl --install -d <Nombre> instala la que elijas.

2. Actualiza WSL tras el primer arranque:

wsl --update
wsl --set-default-version 2

3. Instala Docker Desktop:

Bájalo de docker.com. Tras instalarlo, abre Settings:

  • General → marca "Use the WSL 2 based engine".
  • Resources → WSL Integration → activa para tu distro Ubuntu.
  • Apply + reinicia.

Verifica desde dentro de WSL Ubuntu:

docker version            # debería mostrar Server: Docker Desktop
docker run hello-world

4. Instala Node 20 + Lando dentro de WSL:

# Dentro del shell de WSL Ubuntu:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

curl -fsSL https://files.lando.dev/installer/setup-lando.sh | bash

Dónde poner los archivos del proyecto

Dentro del filesystem de WSL (p. ej. /home/<user>/projects/my-shop), no del lado Windows (/mnt/c/Users/...). El I/O entre filesystems WSL ↔ Windows es 5–10× más lento y rompe los file watchers en Lando.

cd ~                           # /home/<user>/
mkdir -p projects/my-shop
cd projects/my-shop
cp /mnt/c/Users/<tu-usuario>/Downloads/panda-theme.zip .
npx ps-lando@latest create

Si usas VS Code, instala la extensión WSL. Abre el proyecto con File → Open Folder in WSL para que el editor hable directo con el filesystem Linux.

Verifica la instalación en Windows

Desde el shell de WSL Ubuntu:

node --version        # v20+
docker --version      # el server de Docker Desktop
lando version

Problemas comunes en Windows

  • docker: command not found dentro de WSL — la integración WSL de Docker Desktop no está activa para esa distro. Settings → Resources → WSL Integration.
  • lando start se queda colgado en "starting Docker" — comprueba que Docker Desktop esté arrancado en Windows (icono en la system tray). WSL no puede arrancarlo solo.
  • Los archivos guardados desde Windows no los detecta Lando — tu proyecto vive en /mnt/c/.... Muévelo a /home/<user>/... y recrea el sandbox.
  • exec format error — tu WSL aún está en WSL1. Lanza wsl --set-version Ubuntu 2 desde PowerShell.

Primera ejecución — qué esperar

El primer ps-lando create en una máquina recién montada será unos minutos más lento que las ejecuciones posteriores. Docker baja las imágenes de la receta LAMP en el primer arranque; los siguientes sandboxes reutilizan esas imágenes en caché.

FaseEn frío (primera vez)En caliente (siguientes sandboxes)
Descarga de PrestaShop~30 s (PS 9 desde CDN, cacheado luego)~0 s (zip cacheado en ~/.cache/ps-lando/prestashop/)
lando start (pull de imágenes + arranque)~2-3 min~10-20 s
Instalador CLI + Panda + install de módulos~3-5 min~3-5 min
Total~6 min~5 min

Tanto PS 8.2.x como PS 9.1.x caen en la misma franja — PS 9 baja la edición pre-construida desde el CDN oficial de PrestaShop (sin Composer dentro de Lando desde 0.3.0).

Verifica tu instalación

Una vez los requisitos están en su sitio, no necesitas instalar ps-lando por separado. npx se encarga:

npx ps-lando@latest --version

Opcional: fija una instalación global si no quieres esperar a npx cada vez.

npm i -g ps-lando
ps-lando --version

Siguientes pasos

On this page