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
| Herramienta | Por qué | Cómo |
|---|---|---|
| Node.js 20+ | Ejecuta la CLI vía npx. | nodejs.org o tu gestor de paquetes. |
| Docker | Motor 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, git | Usados 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:
- Tema — prompt
selectque lista cada tema detectado (zip conconfig/theme.{yml,xml}a profundidad 0 o 1) más una opciónNone. - Módulos — prompt
multiselectcon cada zip de módulo detectado (<name>/<name>.phpo<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ón | Qué 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>.php | Cualquier 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/hummingbirdincluidos (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>.
| Preset | Se activa cuando | Qué hace |
|---|---|---|
panda (incluido) | El nombre del tema seleccionado es panda | Añ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 existenteEl 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 landoArranca 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 versionLinux
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-pluginPara 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-world3. Instala Node.js 20:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs4. 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.debFedora / 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 | bashArch / 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 | bashVerifica la instalación en Linux
node --version # v20+
docker --version
docker compose version
lando version
docker run --rm hello-world # confirma daemon + permisosTip 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 olvidastesudo usermod -aG docker $USER(o no hicistenewgrp docker/ login out+in después).failed to start daemon: error initializing graphdriver— casi siempre un tema decgroup v2en 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 startfalla. Para los servicios del host o cambia los puertos expuestos en.lando.yml. - SELinux en Fedora/RHEL — si los mounts se comportan raro, prueba
:Zen 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 --installEsto 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 23. 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-world4. 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 | bashDó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 createSi 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 versionProblemas comunes en Windows
docker: command not founddentro de WSL — la integración WSL de Docker Desktop no está activa para esa distro. Settings → Resources → WSL Integration.lando startse 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. Lanzawsl --set-version Ubuntu 2desde 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é.
| Fase | En 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 --versionOpcional: fija una instalación global si no quieres esperar a npx cada vez.
npm i -g ps-lando
ps-lando --version