diff --git a/README.md b/README.md
index 8ce49b9f..d3c9deed 100644
--- a/README.md
+++ b/README.md
@@ -278,20 +278,29 @@ Additionally to the default stack, there are a variety of other services that ca
MailHog |
RabbitMQ |
+ Solr |
v1.0.0 |
3.6 |
+ 5 |
latest |
3.7 |
+ 6 |
|
latest |
+ 7 |
+
+
+ |
+ |
+ latest |
diff --git a/compose/docker-compose.override.yml-all b/compose/docker-compose.override.yml-all
index 1ac82c37..bd86027e 100644
--- a/compose/docker-compose.override.yml-all
+++ b/compose/docker-compose.override.yml-all
@@ -34,3 +34,25 @@ services:
- bind
- php
- httpd
+
+ solr:
+ image: solr:${SOLR_SERVER:-latest}
+ hostname: solr
+ ports:
+ - "${LOCAL_LISTEN_ADDR}${HOST_PORT_SOLR:-8983}:8983"
+ networks:
+ app_net:
+ ipv4_address: 172.16.238.220
+ volumes:
+ - data-solr:/opt/solr/server/solr/mycores
+ entrypoint:
+ - docker-entrypoint.sh
+ - solr-precreate
+ - ${SOLR_CORE_NAME:-devilbox}
+ depends_on:
+ - bind
+ - php
+ - httpd
+
+volumes:
+ data-solr:
diff --git a/compose/docker-compose.override.yml-solr b/compose/docker-compose.override.yml-solr
new file mode 100644
index 00000000..8f9d1c33
--- /dev/null
+++ b/compose/docker-compose.override.yml-solr
@@ -0,0 +1,24 @@
+version: '2.1'
+
+services:
+ solr:
+ image: solr:${SOLR_SERVER:-latest}
+ hostname: solr
+ ports:
+ - "${LOCAL_LISTEN_ADDR}${HOST_PORT_SOLR:-8983}:8983"
+ networks:
+ app_net:
+ ipv4_address: 172.16.238.220
+ volumes:
+ - data-solr:/opt/solr/server/solr/mycores
+ entrypoint:
+ - docker-entrypoint.sh
+ - solr-precreate
+ - ${SOLR_CORE_NAME:-devilbox}
+ depends_on:
+ - bind
+ - php
+ - httpd
+
+volumes:
+ data-solr:
diff --git a/docs/_includes/links/documentation.rst b/docs/_includes/links/documentation.rst
index 4f53401c..124bbf85 100644
--- a/docs/_includes/links/documentation.rst
+++ b/docs/_includes/links/documentation.rst
@@ -51,3 +51,15 @@
Dockerhub: RabbitMQ
+
+.. |ext_lnk_solr_github| raw:: html
+
+
+ Github: Solr
+
+
+.. |ext_lnk_solr_dockerhub| raw:: html
+
+
+ Dockerhub: Solr
+
diff --git a/docs/_includes/snippets/additional-container.rst b/docs/_includes/snippets/additional-container.rst
index 397e753b..0f83cf37 100644
--- a/docs/_includes/snippets/additional-container.rst
+++ b/docs/_includes/snippets/additional-container.rst
@@ -5,3 +5,5 @@
+---------------------------+----------+----------+----------------+
| RabbitMQ | rabbit | rabbit | 172.16.238.210 |
+---------------------------+----------+----------+----------------+
+| Solr | solr | solr | 172.16.238.220 |
++---------------------------+----------+----------+----------------+
diff --git a/docs/_includes/snippets/docker-compose-override-tree-view.rst b/docs/_includes/snippets/docker-compose-override-tree-view.rst
index f4412af8..d4a9b9c6 100644
--- a/docs/_includes/snippets/docker-compose-override-tree-view.rst
+++ b/docs/_includes/snippets/docker-compose-override-tree-view.rst
@@ -11,8 +11,9 @@ However, each example also exists in its standalone file as shown below:
├── docker-compose.override.yml-all
├── docker-compose.override.yml-mailhog
├── docker-compose.override.yml-rabbitmq
+ ├── docker-compose.override.yml-solr
└── README.md
- 0 directories, 4 files
+ 0 directories, 5 files
.. seealso:: :ref:`custom_container_enable_all_additional_container`
diff --git a/docs/custom-container/enable-all-container.rst b/docs/custom-container/enable-all-container.rst
index 4b1bdb83..1f55c010 100644
--- a/docs/custom-container/enable-all-container.rst
+++ b/docs/custom-container/enable-all-container.rst
@@ -55,3 +55,4 @@ In order to fully customize each container, refer to their own documentation sec
.. seealso::
* :ref:`custom_container_enable_mailhog`
* :ref:`custom_container_enable_rabbitmq`
+ * :ref:`custom_container_enable_solr`
diff --git a/docs/custom-container/enable-solr.rst b/docs/custom-container/enable-solr.rst
new file mode 100644
index 00000000..d03e2a11
--- /dev/null
+++ b/docs/custom-container/enable-solr.rst
@@ -0,0 +1,151 @@
+.. include:: /_includes/all.rst
+
+.. _custom_container_enable_solr:
+
+*************************
+Enable and configure Solr
+*************************
+
+This section will guide you through getting Solr integrated into the Devilbox.
+
+.. seealso::
+ * |ext_lnk_solr_github|
+ * |ext_lnk_solr_dockerhub|
+ * :ref:`custom_container_enable_all_additional_container`
+
+
+**Table of Contents**
+
+.. contents:: :local:
+
+
+Overview
+========
+
+Available overwrites
+--------------------
+
+.. include:: /_includes/snippets/docker-compose-override-tree-view.rst
+
+
+Solr settings
+-------------
+
+In case of Solr, the file is ``compose/docker-compose.override.yml-solr``. This file
+must be copied into the root of the Devilbox git directory.
+
++-----------------------+------------------------------------------------------------------------------------------------------+
+| What | How and where |
++=======================+======================================================================================================+
+| Example compose file | ``compose/docker-compose.override.yml-all`` or |br| ``compose/docker-compose.override.yml-solr`` |
++-----------------------+------------------------------------------------------------------------------------------------------+
+| Container IP address | ``172.16.238.220`` |
++-----------------------+------------------------------------------------------------------------------------------------------+
+| Container host name | ``solr`` |
++-----------------------+------------------------------------------------------------------------------------------------------+
+| Container name | ``solr`` |
++-----------------------+------------------------------------------------------------------------------------------------------+
+| Mount points | none |
++-----------------------+------------------------------------------------------------------------------------------------------+
+| Exposed port | ``8983`` (can be changed via ``.env``) |
++-----------------------+------------------------------------------------------------------------------------------------------+
+| Available at | ``http://localhost:8983`` (API and Admin WebUI) |
++-----------------------+------------------------------------------------------------------------------------------------------+
+| Further configuration | none |
++-----------------------+------------------------------------------------------------------------------------------------------+
+
+Solr env variables
+------------------
+
+Additionally the following ``.env`` variables can be created for easy configuration:
+
++------------------------------+-------------------+----------------------------------------------------------------------------+
+| Variable | Default value | Description |
++==============================+===================+============================================================================+
+| ``HOST_PORT_SOLR`` | ``8983`` | Controls the host port on which Solr API and WebUIwill be available at. |
++------------------------------+-------------------+----------------------------------------------------------------------------+
+| ``SOLR_SERVER`` | ``latest`` | Controls the Solr version to use. |
++------------------------------+-------------------+----------------------------------------------------------------------------+
+| ``SOLR_CORE_NAME`` | ``devilbox`` | Default Solr core name |
++------------------------------+-------------------+----------------------------------------------------------------------------+
+
+
+Instructions
+============
+
+1. Copy docker-compose.override.yml
+-----------------------------------
+
+Copy the Solr Docker Compose overwrite file into the root of the Devilbox git directory.
+(It must be at the same level as the default ``docker-compose.yml`` file).
+
+.. code-block:: bash
+
+ host> cp compose/docker-compose.override.yml-solr docker-compose.override.yml
+
+.. seealso::
+ * :ref:`docker_compose_override_yml`
+ * :ref:`add_your_own_docker_image`
+ * :ref:`overwrite_existing_docker_image`
+
+
+2. Adjust ``.env`` settings (optional)
+--------------------------------------
+
+Solr is using sane defaults, which can be changed by adding variables to the ``.env`` file
+and assigning custom values.
+
+Add the following variables to ``.env`` and adjust them to your needs:
+
+.. code-block:: bash
+ :caption: .env
+
+ # Solr version to choose
+ #SOLR_SERVER=5
+ #SOLR_SERVER=6
+ #SOLR_SERVER=7
+ SOLR_SERVER=latest
+
+ SOLR_CORE_NAME=devilbox
+ HOST_PORT_SOLR=8983
+
+.. seealso:: :ref:`env_file`
+
+
+4. Start the Devilbox
+---------------------
+
+The final step is to start the Devilbox with Solr.
+
+Let's assume you want to start ``php``, ``httpd``, ``bind``, ``solr``.
+
+.. code-block:: bash
+
+ host> docker-compose up -d php httpd bind solr
+
+.. seealso:: :ref:`start_the_devilbox`
+
+
+TL;DR
+=====
+
+For the lazy readers, here are all commands required to get you started.
+Simply copy and paste the following block into your terminal from the root of your Devilbox git
+directory:
+
+.. code-block:: bash
+
+ # Copy compose-override.yml into place
+ cp compose/docker-compose.override.yml-solr docker-compose.override.yml
+
+ # Create .env variable
+ echo "# Solr version to choose" >> .env
+ echo "#SOLR_SERVER=5" >> .env
+ echo "#SOLR_SERVER=6" >> .env
+ echo "#SOLR_SERVER=7" >> .env
+ echo "SOLR_SERVER=latest" >> .env
+ echo "SOLR_CORE_NAME=devilbox" >> .env
+ echo "HOST_PORT_SOLR=8983" >> .env
+
+ # Start container
+ docker-compose up -d php httpd bind solr
diff --git a/docs/index.rst b/docs/index.rst
index 6d0abfde..812ea5e1 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -96,6 +96,7 @@ host is ready to be served with your custom domain.
custom-container/enable-all-container
custom-container/enable-mailhog
custom-container/enable-rabbitmq
+ custom-container/enable-solr
.. toctree::