--- title: Introduction type: index weight: 1 --- Laradock is a full PHP development environment for Docker. It supports a variety of common services, all pre-configured to provide a ready PHP development environment.
--- ### Use Docker First - Then Learn About It Later! --- ## Features - Easy switch between PHP versions: 7.4, 7.3, 7.2, 7.1, 5.6... - Choose your favorite database engine: MySQL, Postgres, MariaDB... - Run your own stack: Memcached, HHVM, RabbitMQ... - Each software runs on its own container: PHP-FPM, NGINX, PHP-CLI... - Easy to customize any container, with simple edits to the `Dockerfile`. - All Images extends from an official base Image. (Trusted base Images). - Pre-configured NGINX to host any code at your root directory. - Can use Laradock per project, or single Laradock for all projects. - Easy to install/remove software's in Containers using environment variables. - Clean and well structured Dockerfiles (`Dockerfile`). - Latest version of the Docker Compose file (`docker-compose`). - Everything is visible and editable. - Fast Images Builds. ## Quick Overview Let's see how easy it is to setup our demo stack `PHP`, `NGINX`, `MySQL`, `Redis` and `Composer`: 1 - Clone Laradock inside your PHP project: ```shell git clone https://github.com/Laradock/laradock.git ``` 2 - Enter the laradock folder and rename `env-example` to `.env`. ```shell cp env-example .env ``` 3 - Run your containers: ```shell docker-compose up -d nginx mysql phpmyadmin redis workspace ``` 4 - Open your project's `.env` file and set the following: ```shell DB_HOST=mysql REDIS_HOST=redis QUEUE_HOST=beanstalkd ``` 5 - Open your browser and visit localhost: `http://localhost`. ```shell That's it! enjoy :) ``` ## Supported Services > Laradock, adheres to the 'separation of concerns' principle, thus it runs each software on its own Docker Container. > You can turn On/Off as many instances as you want without worrying about the configurations. > 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". - **Web Servers:** - NGINX - Apache2 - Caddy - **Load Balancers:** - HAProxy - Traefik - **PHP Compilers:** - PHP FPM - HHVM - **Database Management Systems:** - MySQL - PostgreSQL - PostGIS - MariaDB - Percona - MSSQL - MongoDB - MongoDB Web UI - Neo4j - CouchDB - RethinkDB - Cassandra - **Database Management Apps:** - PhpMyAdmin - Adminer - PgAdmin - **Cache Engines:** - Redis - Redis Web UI - Redis Cluster - Memcached - Aerospike - Varnish - **Message Brokers:** - RabbitMQ - RabbitMQ Admin Console - Beanstalkd - Beanstalkd Admin Console - Eclipse Mosquitto - PHP Worker - Laravel Horizon - Gearman - **Mail Servers:** - Mailu - MailCatcher - Mailhog - MailDev - **Log Management:** - GrayLog - **Testing:** - Selenium - **Monitoring:** - Grafana - NetData - **Search Engines:** - ElasticSearch - Apache Solr - Manticore Search - **IDE's** - ICE Coder - Theia - Web IDE - **Miscellaneous:** - Workspace *(Laradock container that includes a rich set of pre-configured useful tools)* - `PHP CLI` - `Composer` - `Git` - `Vim` - `xDebug` - `Linuxbrew` - `Node` - `V8JS` - `Gulp` - `SQLite` - `Laravel Envoy` - `Deployer` - `Yarn` - `SOAP` - `Drush` - `Wordpress CLI` - Apache ZooKeeper *(Centralized service for distributed systems to a hierarchical key-value store)* - Kibana *(Visualize your Elasticsearch data and navigate the Elastic Stack)* - Dejavu *(Edit your Elasticsearch data)* - LogStash *(Server-side data processing pipeline that ingests data from a multitude of sources simultaneously)* - Jenkins *(automation server, that provides plugins to support building, deploying and automating any project)* - Certbot *(Automatically enable HTTPS on your website)* - Swoole *(Production-Grade Async programming Framework for PHP)* - SonarQube *(continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs and more)* - Gitlab *(A single application for the entire software development lifecycle)* - PostGIS *(Database extender for PostgreSQL. It adds support for geographic objects allowing location queries to be run in SQL)* - Blackfire *(Empowers all PHP developers and IT/Ops to continuously verify and improve their app's performance)* - Laravel Echo *(Bring the power of WebSockets to your Laravel applications)* - Phalcon *(A PHP web framework based on the model–view–controller pattern)* - Minio *(Cloud storage server released under Apache License v2, compatible with Amazon S3)* - AWS EB CLI *(CLI that helps you deploy and manage your AWS Elastic Beanstalk applications and environments)* - Thumbor *(Photo thumbnail service)* - IPython *(Provides a rich architecture for interactive computing)* - Jupyter Hub *(Jupyter notebook for multiple users)* - Portainer *(Build and manage your Docker environments with ease)* - Docker Registry *(The Docker Registry implementation for storing and distributing Docker images)* - Docker Web UI *(A browser-based solution for browsing and modifying a private Docker registry)* 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 :)* --- ## Chat with us Feel free to join us on Gitter. [![Gitter](https://badges.gitter.im/Laradock/laradock.svg)](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) --- Laradock exists thanks to all the people who contribute. ## 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 --- ## Financial Contributors Contribute and help us sustain the project. Option 1: Donate via [Paypal](https://paypal.me/mzmmzz).
Option 2: Become a Sponsor via [Github Sponsors](https://github.com/sponsors/Mahmoudz).
Option 3: Become a Sponsor/Backer via [Open Collective](https://opencollective.com/laradock/contribute).
Option 4: Become a [Patreon](https://www.patreon.com/zalt). ## Sponsors Support Laradock with your [organization](https://opencollective.com/laradock/contribute/).
Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page.
For more info contact support@laradock.io. ## Backers