diff --git a/software/drupal/software.cfg b/software/drupal/software.cfg
index f4e04cd85d6bb4269c0b750e6b757c101d968f53..84a55832c8196de23ef0801311134876f7391cd9 100644
--- a/software/drupal/software.cfg
+++ b/software/drupal/software.cfg
@@ -19,3 +19,8 @@ location = ${buildout:parts-directory}/${:_buildout_section_name_}
 
 [application-configuration]
 location = sites/default/default.settings.php
+
+[custom-application-deployment]
+path = {:_profile_base_location_}/instance.cfg
+part-list =
+  setup-database
diff --git a/stack/lamp/apache/instance-apache-php.cfg b/stack/lamp/apache/instance-apache-php.cfg
index f349cbd6946671827c44f1093079aea7a3727420..df86922976173580127692bbba7a630eb00df01e 100644
--- a/stack/lamp/apache/instance-apache-php.cfg
+++ b/stack/lamp/apache/instance-apache-php.cfg
@@ -1,4 +1,5 @@
 [buildout]
+extends = ${custom-php-part:path}
 
 parts =
   certificate-authority
@@ -14,6 +15,7 @@ parts =
   frontend-promise
   content-promise
   publish-connection-informations
+  ${custom-php-part:part-list}
 
 eggs-directory = ${buildout:eggs-directory}
 develop-eggs-directory = ${buildout:develop-eggs-directory}
diff --git a/stack/lamp/buildout.cfg b/stack/lamp/buildout.cfg
index 612d6712208b748fc67bb8ffec6f558ebbf6fb6f..6f6ebd4cbbb441a6e9eec0c210bb4e3967bb6795 100644
--- a/stack/lamp/buildout.cfg
+++ b/stack/lamp/buildout.cfg
@@ -61,6 +61,18 @@ recipe = hexagonit.recipe.download
 #If provided tarball does not containt top directory this option shall be changed to false
 strip-top-level-dir = true
 
+[custom-application-deployment]
+# Optional part allowing applications using this stack to run a custom
+# instance.cfg at the end of Apache/PHP instance deployment.
+# To use it in your application, just override those two parameters, like:
+# path = /path/to/instance-custom.cfg
+# part-list =
+#  part1
+#  part2
+# See software/drupal/software.cfg for an example.
+path =
+part-list =
+
 [template]
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance.cfg