laradock/DOCUMENTATION/content/introduction/index.md

37 KiB
Raw Blame History

title type weight
Introduction index 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 - Learn About It Later!


Features

  • Easy switch between PHP versions: 8.0, 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 extend 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).
  • The 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:

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 nginx mysql phpmyadmin redis workspace 

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.

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
    • Amazon Simple Queue Service
  • 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)
    • Mercure (Server-sent events)
    • Phalcon (A PHP web framework based on the modelviewcontroller 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 :)


Join Us

Gitter

Gitpod


Awesome People

Laradock is an MIT-licensed open source project with its ongoing development made possible entirely by the support of all these smart and generous people, from code contributors to financial contributors. 💜

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

Open Collective backers

You can support us using any of the methods below:

1: Open Collective
2: Paypal
3: Github Sponsors
4: Patreon


Sponsors

Sponsoring is an act of giving in a different fashion. 🌱

Gold Sponsors

KasynoHEX.com Polska Online casino list in Canada by OnlineCasinoHEX.ca Online pokies by AussieCasinoHEX.com Apiato Build PHP API's faster We thank bestonlinecasino.com for their support CasinoPilotti

Silver Sponsors

VeePN Chrome extension

Bronze Sponsors

You can sponsor us using any of the methods below:

1: Sponsor via Open Collective.
2: Email us at support@laradock.io.

Sponsors logos are displayed on the github repository page and the documentation website home page.

License

MIT © Mahmoud Zalt