--- sidebar_position: 1 title: Introduction ---  Laradock is a full PHP development environment for Docker. We offer a range of popular, pre-configured services that provide a ready-to-use PHP development environment in seconds. --- ### Use Docker First - Learn About It Later! --- ## Features - **Seamless PHP Version Switching**: Effortlessly switch between PHP versions (8.1, 8.0, 7.4, 7.3, 7.2, 7.1, 5.6...). - **Flexible Database Choices**: Pick your preferred database engine, whether it's MySQL, Postgres, MariaDB, and more. - **Customizable Stacks**: Run your own stack with services like Memcached, HHVM, RabbitMQ, and more. - **Isolated Containers**: Each software runs in its own container, ensuring clean separation and easy management. - **Simple Customization**: Easily tweak any container by editing its `Dockerfile`. - **Trusted Base Images**: All images extend from official base images, ensuring reliability and security. - **Pre-configured Web Servers**: Ready-to-use NGINX setup to host your code right from the root directory. - **Project Flexibility**: Use Laradock per project or a single Laradock setup for all your projects. - **Environment Variable Management**: Easily install or remove software in containers using environment variables. - **Clean Dockerfiles**: Well-structured and easy-to-understand Dockerfiles (`Dockerfile`). - **Latest Docker Compose**: Always up-to-date with the latest version of the Docker Compose file (`docker-compose`). - **Full Transparency**: Everything is visible and editable, giving you full control over your environment. - **Fast Builds**: Enjoy quick image builds to get your environment up and running in no time. ## 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". | Category | Services (Containers) | |---------------------------|--------------------------------------------------------------------------| | **Web Servers** | NGINX, Apache2, Caddy | | **Load Balancers** | HAProxy, Traefik | | **PHP Compilers** | PHP FPM, HHVM | | **Database Management Systems** | MySQL, PostgreSQL (PostGIS), MariaDB, Percona, MSSQL, MongoDB, Neo4j, CouchDB, RethinkDB, Cassandra | | **Database Management Tools** | PhpMyAdmin, Adminer, PgAdmin, MongoDB Web UI | | **Cache Engines** | Redis, Redis Web UI, Redis Cluster, Memcached, Aerospike, Varnish | | **Message Brokers** | RabbitMQ, RabbitMQ Admin Console, Beanstalkd, Beanstalkd Admin Console, Eclipse Mosquitto, Gearman | | **Log Management** | GrayLog, Kibana, LogStash | | **Search Engines** | ElasticSearch, Apache Solr, Manticore Search, Dejavu | | **PHP Extensions** | Swoole, Blackfire, Phalcon, PHP Worker, Laravel Horizon | | **Mail Servers** | Mailu, MailCatcher, Mailhog, MailDev | | **Real-time Communication** | Laravel Echo, Mercure | | **Monitoring** | Grafana, NetData | | **Coordination Services** | Apache ZooKeeper | | **Container Management** | Portainer, Docker Registry, Docker Web UI | | **CI/CD Tools** | Jenkins, SonarQube, Gitlab | | **Cloud Tools** | AWS EB CLI, Amazon Simple Queue Service | | **Image Processing** | Thumbor | | **Interactive Computing** | IPython, Jupyter Hub | | **Security Tools** | Certbot | | **Object Storage** | Minio | | **Testing** | Selenium | | **IDEs** | ICE Coder, Theia, Web IDE | | (**Laradock Workspace**) | PHP CLI, Composer, Git, Vim, xDebug, Linuxbrew, Node, V8JS, Gulp, SQLite, Laravel Envoy, Deployer, Yarn, SOAP, Drush, Wordpress CLI, dnsutils | 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 :) ## 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 :) ``` --- ## 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 |