Introduction
The easiest way to run PHP on Docker.
Laradock is a complete Docker environment for PHP. Clone it into any PHP project, run one command, and you have a complete local stack running.

It ships pre-configured containers for everything a PHP application needs: a web server (Nginx), the PHP runtime (PHP-FPM), a database (MySQL), caching (Redis), background jobs (PHP Worker), search (Elasticsearch), mail testing (Mailpit), and 100+ additional services, all ready to use with zero manual configuration.
Whether you're using the built-in Laradock CLI, no Docker knowledge required, or plain docker compose when you want full control, the same stack works with any PHP project, including Laravel, WordPress, Symfony, Drupal, Magento, 100+ other frameworks and applications, or plain PHP. Every developer gets the same environment on Linux, macOS, and Windows, eliminating setup differences and "works on my machine" problems.
Laradock doesn't stop at local development. Built-in production deployment with ./laradock ship packages your application and deploys it to Kubernetes, Google Cloud Run, AWS ECS, your own server, and many more, without switching tools or rebuilding your environment.
Trusted by 100K+ developers, it's free and open-source under the MIT license, and has been battle-tested in real-world PHP projects since 2015.
Already running an older version of Laradock?
Upgrade straight to the latest, with AI, in one go. It's safe, nothing you already run changes.
Use Docker first. Learn about it later.
Three ways to point your AI assistant at Laradock:
- Run it for you - the repo ships agent instructions (
AGENTS.md+ rule files for Claude Code, Gemini CLI, Cursor, Cline, and Windsurf). Open the repo in your agent and say "Set up Laradock for this project." - Ask about it, no clone - add the docs as an MCP server:
https://gitmcp.io/laradock/laradock. - Read a walkthrough - browse the AI-generated overview on DeepWiki, starting with its architecture diagram.
Quick Start
Requires Docker with Compose v2.20+. Pick a tab, both reach the exact same result, and you can switch any time.
- Laradock CLI
- Docker Compose
1 - Clone Laradock inside your PHP project:
git clone https://github.com/Laradock/laradock.git
2 - Enter the laradock folder:
cd laradock
3 - Start your stack:
./laradock start
The first time, start runs a short setup wizard, then launches your stack. Full walkthrough and all options: Getting Started.
4 - Enter the Laradock Workspace (a dev shell with php, composer, node, and git inside):
./laradock workspace
Then open http://localhost. Done.
The CLI is optional, transparent sugar: it prints every docker compose command it runs, keeps no state, and writes nothing but your .env. Full reference: The Laradock CLI.
The same result, step by step, with you in charge of every detail:
1 - Clone Laradock inside your PHP project:
git clone https://github.com/Laradock/laradock.git
2 - Enter the laradock folder and rename .env.example to .env.
cp .env.example .env
3 - Run your containers:
docker compose up -d workspace nginx mysql redis
4 - Open your project's .env file and set the following:
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
5 - Open your browser and visit localhost: http://localhost.
Done.
What's New (2026)
Battle-tested since 2015, and still growing. Recent highlights:
- Deploy to production,
./laradock shipbuilds an image for any server or cloud. - A plain-English CLI,
./laradock startruns your whole stack, no Docker needed. - Local AI built in, run LLMs and vector databases on your own machine.
- 100+ services ready, plus every PHP version from 5.6 to 8.5.
See the release notes for the full history.
Already on an older version? Jumping straight to the latest is safe, nothing you run changes. See the Upgrade Guide for the one structural change to know about.
Features
- Any PHP Version: Run any version from 5.6 to 8.5. Set
PHP_VERSIONin.env, rebuild, and you're on it. - 100+ Ready-made Services: Databases, caches, queues, search engines, and more, pre-configured and waiting.
- All-in-One Dev Shell: Run Artisan, Composer, Node, and any CLI inside the
workspacecontainer, nothing on host. - Deploy to Production: Turn your stack into a hardened image with
./laradock ship, then deploy anywhere. - Pick Your Database: MySQL, PostgreSQL, MariaDB, MongoDB, Redis, and many others, ready to switch on.
- Framework-Agnostic: Works with Laravel, Symfony, WordPress, Magento, Drupal, or plain PHP.
- Local AI, Built In: Run LLMs and vector search locally with Ollama, LiteLLM, pgvector, Qdrant, no cloud bills.
- Toggle Services On Demand: Start only what a project needs with
docker compose up, and stop them easily. - One Environment Everywhere: Identical setup on Linux, macOS, and Windows, so your team shares the stack.
- A Container Per Service: Every service is isolated, so nothing conflicts and each piece is easy to manage.
- Configure From One File: Every service ships pre-configured; override any setting with 1 line in
.env, always wins. - Official Base Images: Every image builds on a trusted upstream source for reliability and security.
- Web Server Ready: NGINX, Apache, and Caddy come pre-configured to serve your code out of the box.
- One or Many Projects: Run a dedicated Laradock per project, or share a single setup across all of them.
- Yours to Edit: Every
Dockerfileand config is plain, readable, and open for you to change.
Supported PHP Projects
Laradock provides the PHP runtime, web server, databases, and background services your app needs, so it runs virtually any PHP framework, CMS, or e-commerce platform, right down to plain framework-free PHP.
New here? Jump straight to a step-by-step guide for the most popular platforms:
Not listed? Pick from the full catalog of 100+ supported projects below.
Supported Services
A service is one piece of software, a database, a web server, a cache, a queue, that Laradock runs for you in its own isolated container (a lightweight, self-contained box). Each one is already configured, so you just switch on the ones your project needs and leave the rest off. Because they're isolated, they never conflict with each other or with anything on your machine.
To start any service from the list below, use its name, which is the same as its folder name. For example, the "PHP FPM" service lives in the php-fpm folder, so you start it with php-fpm:
- Laradock CLI
- Docker Compose
./laradock start php-fpm
docker compose up -d php-fpm
You can choose which tools to install in your workspace container and other containers: browse the available flags in each container's defaults.env (e.g. workspace/defaults.env), then set the ones you want in your .env (your .env overrides all defaults).
If you modify a compose.yml, defaults.env, .env or any dockerfile file, you must re-build your containers, to see those effects in the running instance.
If you can't find your Software in the list, build it yourself and submit it. Contributions are welcomed :)
Deploy Anywhere
Laradock follows your app to production. Build one image with ./laradock ship, then run that same image on any of these:
| Where | Platforms |
|---|---|
| Managed clouds | Google Cloud Run · AWS ECS · AWS App Runner · Azure Container Apps · Fly.io · Render · Railway · DigitalOcean · Heroku |
| Your own infrastructure | Kubernetes · Kamal · A single server |
Start here: Deploy to Production.
Your All-in-One Dev Workspace
Laradock ships a Workspace: a ready-to-use Linux command line with PHP, Composer, Node, Git, and dozens of dev tools already installed. You run every command your project needs inside it, so nothing gets installed on your own machine.
Enter it and work from there:
- Laradock CLI
- Docker Compose
./laradock workspace
docker compose exec workspace bash
artisan, composer, phpunit, npm, and git all just work, with nothing installed on your host: no PHP, no Composer, no Node, no version conflicts. Stop the project and zero traces are left on your device.
Why it's a big deal:
- Start in seconds. Every tool is already installed and configured, so there's nothing to set up; clone a project and get to work.
- Keep your machine spotless. Run everything inside the container; your host never gets PHP, Composer, Node, or any CLI, and nothing is left behind when you're done.
- Isolate every project. Each one runs on its own PHP and database versions with no conflicts between them.
- Revive old projects. Run legacy apps on older PHP (5.6, 7.x) without touching your system's PHP version.
Laradock doesn't stop at your laptop. When your app is ready, ./laradock ship turns this exact stack into a hardened image you can deploy anywhere, a single server, Kubernetes (EKS/GKE/AKS), or a managed cloud like AWS ECS, Cloud Run, or Fly. Read more: Deploy to Production.
One folder per service; each holds that service's compose.yml (container definition), defaults.env (pre-filled settings), and Dockerfile. Change any setting by adding one line to your .env, it always wins. Full map in Getting Started. Going deeper? Customizing Images covers changing what's inside a container, and Data & Volumes covers where your data lives.
The Story: Laravel + Docker = Laradock
Laradock started in 2015 as exactly what the name says: Laravel + Docker, back when Laravel had no official Docker answer of its own. Then developers wanted more: more databases, caches, queues, search engines, and projects that were never Laravel at all (Symfony, WordPress, Magento, plain PHP). So Laradock grew with them, from one Laravel stack into 100+ pre-configured services for any PHP project, and now all the way to production with ./laradock ship. Laravel later shipped its own Sail, deliberately small and Laravel-only; Laradock covers the ground it doesn't.
How Laradock Compares
Every other option either installs software on your machine (XAMPP, MAMP, Herd) or puts a tool between you and Docker (DDEV, Lando, Sail). Laradock does neither: it is raw Docker with the wiring already done. Nothing to install, no new commands to learn, nothing generated or hidden; you use docker compose directly on plain, readable files you fully own. That makes it the lightest option to adopt and the easiest one to inspect, debug, and bend to your will.
And today it goes further than any of them combine: you pick the services you want and they come wired together, no setup of your own, with a workspace shell that already has every PHP tool in it; ./laradock ship carries this exact environment to production; a local AI stack (Ollama, LiteLLM, Qdrant) is one command away; and an AI agent can set it up for you (AGENTS.md + llms.txt). Each rival wins on a single axis (Herd on native speed, DDEV on automatic HTTPS); Laradock wins on the combination.
See the full honest breakdown, including when the other tools are the better choice: Laradock vs Others (DDEV, Sail, Herd, Lando, XAMPP, and more).
Community
Gitter's done. Our community of 2,000+ active members has a new home on GitHub Discussions.
None of this happens on its own. Behind every container, every fix, and every new service added is someone who cared enough to give their time. Meet the people who make Laradock possible.
Awesome People
Laradock is an MIT-licensed open source project with its ongoing development made possible entirely by the support of you and all these awesome people. 💜
Project Maintainers
![]() Mahmoud Zalt @mahmoudz | ![]() Yu-Lung Shao (Allen) @bestlong | ![]() Winfried van Loon @winfried-van-loon | ![]() Bo-Yi Wu @appleboy | ![]() Valentino Lauciani @vlauciani |
![]() Arian Acosta @arianacosta | ![]() Erik @erikn69 | ![]() Dwi Fahni Denni @zeroc0d3 | ![]() Dawid Makowski @makowskid | ![]() Luciano Jr @iamlucianojr |
![]() Pavel Savushkin @PavelSavushkinMix | ![]() Philippe Trépanier @philtrep | ![]() Ahkui @ahkui | ![]() Mike Erickson @mikeerickson | ![]() Lan Phan @lanphan |
![]() zhushaolong @zhushaolong | ![]() Frank Yuan @kideny | ![]() xiagw @xiagw | ![]() Abdelrahman Omran @Omranic | ![]() TJ Miller @sixlive |
![]() Thor Erik @thorerik | ![]() Milan Urukalo @urukalo | ![]() Vince Chu @vwchu | ![]() Huadong Zuo @zuohuadong | ![]() < Join Us > @laradock |
Code Contributors
Financial Contributors (Backers)
Sponsors
Laradock has stayed free and maintained for 10+ years, funded entirely by the developers who use it. Here's this month's progress toward keeping it alive:
Laradock powers local development for developers and companies worldwide: 100K+ active developers, 5M+ downloads, 100+ services, kept working for 10+ years. Like every open-source project, its future depends on the people who rely on it. Your sponsorship directly funds the maintenance that keeps every service working with the latest PHP, database, and framework versions.
Your team runs on Laradock? Help fund it:
- Individuals sponsor monthly on GitHub, from the price of a coffee.
- Companies get your logo below with a real dofollow backlink.
- Pay by invoice or bank transfer if a sponsor button won't clear your finance team: Open Collective issues invoices and takes bank transfers so your organization can pay Laradock directly.
❤️ Sponsor on GitHub · Sponsor / invoice via Open Collective · custom or annual agreements: [email protected]
Diamond Sponsors
Gold Sponsors
Silver Sponsors
Bronze Sponsors
Sponsorship Support
Sponsoring is an act of giving in a unique way. 🌱
You can support us using any of the methods below:
1: Open Collective
Available for all tiers: Gold, Silver, Bronze, and Backers (Financial Contributors). Preferred method.
2: GitHub Sponsors
Supports the creator of the project directly: Ideal for personal support of the project creator.

























