LaraDock/
laradock
g4t.io

LaraDock Homestead for Docker

by Eric L. Barnes

LaraDock is a Laravel Homestead Docker project that aims to bring Homestead to Docker. LaraDock strives to make the development experience easier. It contains p…

README from LaraDock/laradock Open on GitHub →

Overview

Laradock is a full PHP development environment for Docker. 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 or plain Docker Compose, 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. The same platform includes a developer-friendly CLI for managing your stack, plus built-in production deployment with ./laradock ship, allowing you to package your application and deploy it to Kubernetes, Google Cloud Run, AWS ECS, your own server, and many more, without switching tools or rebuilding your environment.

The easiest way to run PHP on Docker.

Trusted by 100K+ developers, Laradock is free and open-source under the MIT license, and has been battle-tested in real-world PHP projects since 2015.

Quick Start

Requires Docker with Compose v2.20+.

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 run opens a wizard: pick your framework, PHP version, stack, and the tools in your dev shell, then hit Enter. Every question comes with a sensible answer pre-selected, so you can hold Enter and get a working stack. After that, start just runs your stack and prints its URLs and credentials (./laradock setup reopens the wizard any time, to add a service, switch PHP version, or add a tool like Xdebug).

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. Unknown commands pass straight through (./laradock logs -f nginx = docker compose logs -f nginx). Full reference: CLI docs.

Prefer plain Docker? Skip the CLI and run docker compose directly, same files, same result. See the manual setup guide.

Key Features

  • Any PHP Version: Run any version from 5.6 to 8.5. Set PHP_VERSION in .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 workspace container, 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 Dockerfile and config is plain, readable, and open for you to change.

What's New (2026)

Battle-tested since 2015, and still growing. Recent highlights:

  • Deploy to production, ./laradock ship builds an image for any server or cloud.
  • A plain-English CLI, ./laradock start runs 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.

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:

Type Projects
Frameworks Laravel, Symfony, CodeIgniter, Yii, Laminas (Zend Framework), CakePHP, Phalcon, Slim, Lumen, FuelPHP, Spiral, Hyperf, API Platform, Mezzio, Flight, Fat-Free Framework (F3), ThinkPHP, Silex, Swoole, Workerman, Ubiquity, SilverStripe, Nette, Leaf PHP
CMS WordPress, Drupal, Joomla, October CMS, Statamic, Craft CMS, TYPO3, Concrete CMS, Grav, Backdrop CMS, HTMLy, Kirby, ProcessWire, Pico, Bolt CMS, Contao, b2evolution, Serendipity, Nucleus, e107, Pligg, Sulu CMS, Pimcore, Winter CMS, Neos CMS, Textpattern, ExpressionEngine
E-commerce Magento, WooCommerce, PrestaShop, OpenCart, Sylius, Bagisto, Aimeos, Avored, OroCommerce, Zen Cart, osCommerce, AbanteCart, CubeCart, Shopware, LiteCart, OpenMage
Apps Moodle, MediaWiki, phpBB, Matomo, MyBB, FluxBB, PunBB, Flarum, bbPress, Simple Machines Forum (SMF), DokuWiki, BookStack, Roundcube, phpMyAdmin, Adminer, SuiteCRM, EspoCRM, Vtiger, Dolibarr, Aureus ERP, WebERP, FrontAccounting, Kanboard, Firefly III, Invoice Ninja, X2CRM, Nextcloud, ownCloud, Pydio, Mautic, Crater, Akaunting, Monica CRM, Leantime, Cachet, PHP Server Monitor, YOURLS, LinkAce, Koel, AzuraCast, Lychee, Vanilla Forums

Not using a framework? Plain PHP works too.

Supported Services

A service is one piece of software (a database, web server, cache, queue) that Laradock runs for you in its own isolated container, already configured. Switch on the ones your project needs, leave the rest off; isolated, they never conflict. To start one: ./laradock start {container-name} (or docker compose up -d {container-name}); the container name matches its folder name, e.g. php-fpm.

Category Services (Containers)
(Laradock Workspace) PHP CLI, Composer, Git, Vim, xDebug, Linuxbrew, Node, V8JS, Gulp, SQLite, Laravel Envoy, Deployer, Yarn, SOAP, Drush, Wordpress CLI, dnsutils, Terraform, ImageMagick, Drupal Console, Protoc, JDK, Docker Client
Web Servers NGINX, Apache2, Caddy, OpenResty, Tomcat, FrankenPHP
Load Balancers HAProxy, Traefik
PHP Compilers PHP FPM, RoadRunner
Database Management Systems MySQL, PostgreSQL, PostGIS, pgvector, MariaDB, Percona, MSSQL, MongoDB, Neo4j, CouchDB, RethinkDB, Cassandra, ClickHouse, Tarantool
Database Management Tools PhpMyAdmin, Adminer, PgAdmin, MongoDB Web UI, Tarantool Admin, pgbackups (PostgreSQL)
Cache Engines Redis, Redis Web UI, Redis Cluster, Valkey, Dragonfly, Memcached, Aerospike, Varnish, SSDB
Message Brokers RabbitMQ, RabbitMQ Admin Console, Beanstalkd, Beanstalkd Admin Console, Eclipse Mosquitto, Gearman, NATS, Apache Kafka, Kafka Manager
Log Management GrayLog, Kibana, LogStash
Search Engines ElasticSearch, OpenSearch, Apache Solr, Manticore Search, Typesense, Meilisearch, Dejavu
Vector Databases pgvector, Qdrant, Weaviate, Chroma
Graph / Multi-model Databases Neo4j, ArangoDB, SurrealDB
Time-series Databases InfluxDB
AI / LLM Ollama, vLLM, LocalAI, LiteLLM, Open WebUI, MCP
Agentic / Automation n8n, Flowise, Langflow
PHP Extensions Swoole, Blackfire, Phalcon, PHP Worker, Laravel Horizon
Mail Servers Mailu, MailCatcher, Mailhog, MailDev, Mailpit
Real-time Communication Laravel Echo, Laravel Reverb, Mercure, Soketi
Monitoring Grafana, NetData, Prometheus
Coordination Services Apache ZooKeeper
Container Management Portainer, Docker Registry
CI/CD Tools Jenkins, SonarQube, Gitlab, GitLab Runner, OneDev
Cloud Tools AWS EB CLI, Amazon Simple Queue Service
Image Processing Thumbor
Security & Identity Tools Certbot, Keycloak
Object Storage Minio
Testing Selenium
IDEs Theia
API Documentation Swagger UI, Swagger Editor
Analytics / BI Metabase
Collaboration Confluence

See the full service list and usage docs.

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, with the Laradock CLI:

./laradock workspace

or plain Docker Compose:

docker compose exec workspace bash

artisan, composer, phpunit, npm, and git all just work. Stop the project and zero traces are left on your device.

What You Get From It

  • Start in seconds. Nothing to install or configure; clone a project and get to work.
  • Keep your machine spotless. 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.

Built from two base images, each in its own repo: laradock/workspace (this dev shell) and laradock/php-fpm (the PHP runtime).

How It Works

Here is Laradock from where you sit. You work two ways, open your app in a browser (Nginx serves it through PHP-FPM) or drop into the Workspace terminal (artisan, composer, npm), and both act on the same codebase mounted from your machine. Your code talks to whatever services you switch on, add as many as you need, and the same setup ships to production.

flowchart LR
  you(["You<br/>(your machine)"])

  subgraph docker["Laradock &middot; your containers on Docker"]
    direction TB
    nginx["Nginx<br/>web server"]
    php["PHP-FPM<br/>runs your PHP"]
    workspace["Workspace<br/>terminal: php, composer, node, git"]
    code[/"Your codebase<br/>mounted from your machine"/]

    subgraph services["Switch on the services you need"]
      direction LR
      db[("Database<br/>(MySQL)")]
      cache[("Cache<br/>(Redis)")]
      queue["Queue<br/>(RabbitMQ)"]
      search[("Search<br/>(Meilisearch)")]
      ai["Local AI<br/>(Ollama)"]
      more["&hellip;100+ more"]
    end
  end

  ship["Ship to production<br/>any server / cloud"]

  you -->|"in your browser"| nginx
  you -->|"in your terminal"| workspace
  nginx -->|"FastCGI"| php
  php -->|"executes"| code
  workspace -->|"develops"| code
  code -.-> db
  code -.-> cache
  code -.-> queue
  code -.-> search
  code -.-> ai
  code -.-> more
  docker -->|"./laradock ship"| ship

  classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
  classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
  classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
  classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
  class you toneBlue
  class nginx,php,workspace toneAmber
  class code toneRose
  class db,cache,queue,search,ai,more toneMint
  class ship toneBlue

The docs go deeper into how a request flows and how the two Docker networks isolate your services.

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.

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.

Four things no other tool combines: 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, just say "Set up Laradock for this project"). Full breakdown: Laradock vs Others, or head straight to Sail, DDEV, Herd, Lando, XAMPP, Valet, or Homestead.

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

Code Contributors

Laradock Contributors

Financial Contributors (Backers)

Open Collective backers

Sponsors

Laradock has stayed free and maintained for 10+ years, funded entirely by the developers who use it.

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 on this README 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 via Open Collective  ·  custom or annual agreements: mahmoud@zalt.me

Diamond Sponsors

Gold Sponsors

Silver Sponsors

Silver Sponsors

Bronze Sponsors

Bronze Sponsors

Community

Ask questions, share your setup, and get help from other Laradock developers on GitHub Discussions.

We moved off Gitter in 2026. GitHub Discussions is our only home now.

Contact

Have a question, found a problem, or need something? mahmoud@zalt.me

For security vulnerabilities, see SECURITY.md.

License

MIT © Mahmoud Zalt

More from the ecosystem

marcreichel/
laya-php
g4t.io
3 53

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Classify text in PHP without an LLM bill: typed decisions in 100+ languages, self-hosted. Laravel-ready SDK for Laya, a Jev AI alternative.

ai classification decision-engine
marcreichel/laya-php via Laravel News
Josh-Dovey/
postcodes-laravel
g4t.io
5 9

Postcodes for Laravel: GB Postcode Lookup and Geography Data

Postcodes for Laravel adds typed GB postcode lookups, validation, geography data, distance searches, and test fakes through the GB Postcodes API.

Josh-Dovey/postcodes-laravel via Laravel News
RedberryProducts/
mailbox-for-laravel
g4t.io
4 115

Mailbox for Laravel: Preview and Test Rendered Email

Mailbox for Laravel captures outgoing mail in a local dashboard and lets you test rendered HTML, recipients, and attachments with fluent assertions.

RedberryProducts/mailbox-for-laravel via Laravel News