The First 5 Minutes: Getting Started with LDM¶
Note
Welcome to Liferay Docker Manager (LDM)! This 5-minute interactive tutorial guides you from initial setup to running a local Liferay Portal/DXP environment, attaching Client Extensions, monitoring logs, and managing your stack.
This assumes LDM and Docker are already installed and working. If you still need to install them, or something is broken, start with Installation & Setup instead.
โฑ๏ธ Step 1: Run the Interactive Onboarding Guide¶
LDM includes an interactive onboarding wizard built directly into the CLI. Run:
You will see an interactive menu covering:
- Quickstart Workflow: Standard 4-step developer lifecycle.
- LDM Conventions & Defaults: Out-of-the-box infrastructure settings (PostgreSQL, Elasticsearch, Traefik).
- Customizing Defaults: Config precedence levels (CLI flags > local
.liferay-docker.meta> global~/.liferay-docker/config.json). - Client Extension Integration: Hot-reloading client extension builds into running containers.
- Interactive Diagnostic Doctor: Proactive environment verification (
ldm doctor).
๐ Step 2: Spin Up Your First Liferay Stack¶
To start a fresh Liferay DXP/Portal instance with auto-provisioned PostgreSQL database and Traefik routing, run:
- Interactive Prompts: LDM will prompt for project name, Liferay version tag (defaults to latest LTS), database type, and search mode.
- Non-Interactive Mode: To accept all sane defaults automatically, pass the
-yflag:
Once complete, LDM will output your virtual hostname:
โ
Project 'my-project' started in background.
โน Access your environment at: http://localhost:8080 or http://my-project.local
๐ก Next step: Run 'ldm link <path-to-cx>' to attach client extensions, or 'ldm logs -f' to tail logs.
๐ Step 3: Link a Client Extension Workspace¶
To attach a local Liferay Client Extension (CX) directory and enable live hot-reloading into your running Liferay container, run:
LDM will:
- Parse
client-extension.yamlandLCP.json. - Configure dynamic routing subdomains (e.g.
http://my-cx.my-project.local:8080). - Start watching for build outputs and synchronize them atomically.
๐ Step 4: Tail Container Logs¶
To monitor boot progress, OSGi bundle deployments, or client extension logs:
Press Ctrl+C at any time to detach without stopping the containers.
โน๏ธ Step 5: Stop or Manage Your Stack¶
When finished with your development session:
To list all registered projects and container statuses across your machine:
To open the visual Web Dashboard:
Last Updated: 2026-08-18 | Last Reviewed: 2026-08-18