diff --git a/README.md b/README.md
index 14589c9..77ddf5e 100644
--- a/README.md
+++ b/README.md
@@ -107,20 +107,28 @@
 #### Seed ldap database with ldif
 
 This image can load ldif files at startup with either `ldapadd` or `ldapmodify`.
-Mount `.ldif` in `/container/service/slapd/assets/config/bootstrap/ldif/`
-directory. Files containing `changeType:` attributes will be loaded with `ldapmodify`.
+Mount `.ldif` in `/container/service/slapd/assets/config/bootstrap/ldif` directory if you want to overwrite image default boostrap ldif files or in `/container/service/slapd/assets/config/bootstrap/ldif/custom` (recommended) to extend image config.
 
-The startup script provide some substitution in bootstrap ldif files: `{{
-LDAP_BASE_DN }}` and `{{ LDAP_BACKEND }}` values are supported. Other `{{ * }}`
+Files containing `changeType:` attributes will be loaded with `ldapmodify`.
+
+The startup script provide some substitution in bootstrap ldif files:
+`{{LDAP_BASE_DN }}` and `{{ LDAP_BACKEND }}` values are supported. Other `{{ * }}`
 substitution are left as is.
 
 Since startup script modifies `ldif` files, you **must** add `--copy-service`
-argument to entrypoint.
+argument to entrypoint if you don't want to overwrite them.
 
-    docker run \
+
+		# single file example:
+		docker run \
       --volume ./bootstrap.ldif:/container/service/slapd/assets/config/bootstrap/ldif/50-bootstrap.ldif \
       osixia/openldap:1.1.9 --copy-service
 
+		#directory example:
+		docker run \
+	     --volume ./lidf:/container/service/slapd/assets/config/bootstrap/ldif/custom \
+	     osixia/openldap:1.1.9 --copy-service
+
 ### Use an existing ldap database
 
 This can be achieved by mounting host directories as volume.
diff --git a/image/service/slapd/assets/config/bootstrap/ldif/custom/README.md b/image/service/slapd/assets/config/bootstrap/ldif/custom/README.md
new file mode 100644
index 0000000..d47a1d5
--- /dev/null
+++ b/image/service/slapd/assets/config/bootstrap/ldif/custom/README.md
@@ -0,0 +1,9 @@
+Add your custom ldif files here if you don't want to overwrite image default boostrap ldif.
+at run time you can also mount a data volume with your ldif files to /container/service/slapd/assets/config/bootstrap/ldif/custom
+
+The startup script provide some substitution in bootstrap ldif files:
+`{{LDAP_BASE_DN }}` and `{{ LDAP_BACKEND }}` values are supported.
+Other `{{ * }}` substitution are left as is.
+
+Since startup script modifies `ldif` files,
+you **must** add `--copy-service` argument to entrypoint if you don't want to overwrite them.
diff --git a/image/service/slapd/startup.sh b/image/service/slapd/startup.sh
index 5ac279e..bc11f44 100755
--- a/image/service/slapd/startup.sh
+++ b/image/service/slapd/startup.sh
@@ -62,6 +62,17 @@
     fi
   }
 
+  function ldap_add_or_modify (){
+    local LDIF_FILE=$1
+    sed -i "s|{{ LDAP_BASE_DN }}|${LDAP_BASE_DN}|g" $LDIF_FILE
+    sed -i "s|{{ LDAP_BACKEND }}|${LDAP_BACKEND}|g" $LDIF_FILE
+    if grep -iq changetype $LDIF_FILE ; then
+        ldapmodify -Y EXTERNAL -Q -H ldapi:/// -f $LDIF_FILE 2>&1 | log-helper debug || ldapmodify -h localhost -p 389 -D cn=admin,$LDAP_BASE_DN -w $LDAP_ADMIN_PASSWORD -f $LDIF_FILE 2>&1 | log-helper debug
+    else
+        ldapadd -Y EXTERNAL -Q -H ldapi:/// -f $LDIF_FILE |& log-helper debug
+    fi
+  }
+
   #
   # Global variables
   #
@@ -224,16 +235,16 @@
       sed -i "s|{{ LDAP_BASE_DN }}|${LDAP_BASE_DN}|g" ${CONTAINER_SERVICE_DIR}/slapd/assets/config/bootstrap/ldif/02-security.ldif
 
       # process config files (*.ldif) in bootstrap directory (do no process files in subdirectories)
-      log-helper info "Add bootstrap ldif..."
+      log-helper info "Add image bootstrap ldif..."
       for f in $(find ${CONTAINER_SERVICE_DIR}/slapd/assets/config/bootstrap/ldif -mindepth 1 -maxdepth 1 -type f -name \*.ldif  | sort); do
         log-helper debug "Processing file ${f}"
-        sed -i "s|{{ LDAP_BASE_DN }}|${LDAP_BASE_DN}|g" $f
-        sed -i "s|{{ LDAP_BACKEND }}|${LDAP_BACKEND}|g" $f
-        if grep -iq changetype $f ; then
-            ldapmodify -Y EXTERNAL -Q -H ldapi:/// -f $f 2>&1 | log-helper debug || ldapmodify -h localhost -p 389 -D cn=admin,$LDAP_BASE_DN -w $LDAP_ADMIN_PASSWORD -f $f 2>&1 | log-helper debug
-        else
-            ldapadd -Y EXTERNAL -Q -H ldapi:/// -f $f |& log-helper debug
-        fi
+        ldap_add_or_modify "$f"
+      done
+
+      log-helper info "Add custom bootstrap ldif..."
+      for f in $(find ${CONTAINER_SERVICE_DIR}/slapd/assets/config/bootstrap/ldif/custom -type f -name \*.ldif  | sort); do
+        log-helper debug "Processing file ${f}"
+        ldap_add_or_modify "$f"
       done
 
       # read only user
