Skip to main content

Introduction

Laradock is a full PHP development environment for Docker. Spin up a ready-to-use stack in seconds, with popular pre-configured services.

Laradock

Instead of installing and configuring Nginx, databases, caches, and queues by hand, you get them all as ready-made containers you can switch on and off per project. It works with any PHP project (Laravel, Symfony, WordPress, or plain PHP) and behaves the same on Linux, macOS, and Windows, so your whole team shares one identical setup.

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

Use Docker first. Learn about it later.

Features

  • Any PHP Version: Run any version from 5.6 to 8.5. Set PHP_VERSION in .env, rebuild, and you're on it.
  • 70+ Ready-made Services: Databases, caches, queues, search engines, and more, all pre-configured and waiting.
  • All-in-One Dev Shell: Run Artisan, Composer, Node, and every CLI your project needs inside the ready-made workspace container, with nothing installed on your host.
  • Pick Your Database: MySQL, PostgreSQL, MariaDB, MongoDB, Redis, and many others, ready to switch on.
  • 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 same stack.
  • A Container Per Service: Every service is isolated, so nothing conflicts and each piece is easy to manage.
  • Configure From One File: Add or drop software for any container by flipping variables in .env.
  • 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.

Works With

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.

TypeProjects
FrameworksLaravel, Symfony, CodeIgniter, Yii, Laminas (Zend Framework), CakePHP, Phalcon, Slim, Lumen, FuelPHP
CMSWordPress, Drupal, Joomla, October CMS, Statamic, Craft CMS, TYPO3, Concrete CMS, Grav
E-commerceMagento, WooCommerce, PrestaShop, OpenCart, Sylius, Bagisto
AppsMoodle, MediaWiki, phpBB, Matomo

The Workspace: Your All-in-One Dev Shell

A command line preloaded with PHP, Composer, Node, Git, and dozens of dev tools, so you run every command your project needs inside it and install nothing on your own machine.

Enter it and work from there:

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.

Quick Start

Set up a demo stack with PHP, NGINX, MySQL, Redis and Composer:

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.

Supported Services

Laradock adheres to the 'separation of concerns' principle, so it runs each software in its own Docker container. You can turn instances on or off as needed without worrying about configuration.

To run a chosen container from the list below, run docker-compose up -d {container-name}. The container name {container-name} is the same as its folder name. Example to run the "PHP FPM" container, use the name "php-fpm".

CategoryServices (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 ServersNGINX, Apache2, Caddy, OpenResty, Tomcat
Load BalancersHAProxy, Traefik
PHP CompilersPHP FPM, HHVM
Database Management SystemsMySQL, PostgreSQL (PostGIS), MariaDB, Percona, MSSQL, MongoDB, Neo4j, CouchDB, RethinkDB, Cassandra, ClickHouse, Tarantool
Database Management ToolsPhpMyAdmin, Adminer, PgAdmin, MongoDB Web UI, Tarantool Admin, pgbackups (PostgreSQL)
Cache EnginesRedis, Redis Web UI, Redis Cluster, Memcached, Aerospike, Varnish, SSDB
Message BrokersRabbitMQ, RabbitMQ Admin Console, Beanstalkd, Beanstalkd Admin Console, Eclipse Mosquitto, Gearman, NATS, Apache Kafka, Kafka Manager
Log ManagementGrayLog, Kibana, LogStash
Search EnginesElasticSearch, Apache Solr, Manticore Search, Dejavu
PHP ExtensionsSwoole, Blackfire, Phalcon, PHP Worker, Laravel Horizon
Mail ServersMailu, MailCatcher, Mailhog, MailDev, Mailpit
Real-time CommunicationLaravel Echo, Mercure, Soketi
MonitoringGrafana, NetData
Coordination ServicesApache ZooKeeper
Container ManagementPortainer, Docker Registry, Docker Web UI
CI/CD ToolsJenkins, SonarQube, Gitlab, OneDev
Cloud ToolsAWS EB CLI, Amazon Simple Queue Service
Image ProcessingThumbor
Interactive ComputingIPython, Jupyter Hub
Security ToolsCertbot
Object StorageMinio
TestingSelenium
IDEsCodiad, ICE Coder, Theia, Web IDE
API DocumentationSwagger UI, Swagger Editor

You can choose, which tools to install in your workspace container and other containers, from the .env file.

If you modify docker-compose.yml, .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 :)


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

Bo-Yi Wu
@appleboy

Philippe Trépanier
@philtrep

Mike Erickson
@mikeerickson

Dwi Fahni Denni
@zeroc0d3

Thor Erik
@thorerik

Winfried van Loon
@winfried-van-loon

TJ Miller
@sixlive

Yu-Lung Shao (Allen)
@bestlong

Milan Urukalo
@urukalo

Vince Chu
@vwchu

Huadong Zuo
@zuohuadong

Lan Phan
@lanphan

Ahkui
@ahkui

< Join Us >
@laradock

Code Contributors

Laradock Contributors

Financial Contributors (Backers)

Open Collective backers


Sponsors

Diamond Sponsors

Sistava - Hire AI Employees to Run Your Business.Apiato - A powerful PHP framework for building scalable, enterprise-grade APIs!

Gold Sponsors

Silver Sponsors

Sista AI - AI Workforce platform.

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.

License

MIT © Mahmoud Zalt