diff --git a/docker/.env b/docker/.env
index 3d1de41d12aee5ed3ea75edb95367bb33211c4f5..40b752e095652f103dd2b49dc0611c85d9e60c69 100644
--- a/docker/.env
+++ b/docker/.env
@@ -1,6 +1,6 @@
 # ======================================================================
 #
-# GENERATED BY ./init.sh - template: ./templates/dot_env - e2cde05722688ff85d3a93e9cd55787e
+# GENERATED BY docker/init.sh - template: ./templates/dot_env - e2cde05722688ff85d3a93e9cd55787e
 # values to be used in docker-composer.yml
 #
 # ======================================================================
diff --git a/docker/containers/web-server/Dockerfile b/docker/containers/web-server/Dockerfile
index a4e71e7c4fdc6a5e5a398579dd6e890efb8cdbe1..9741db3ef038d3e8fe395406f3565100abb74d6b 100644
--- a/docker/containers/web-server/Dockerfile
+++ b/docker/containers/web-server/Dockerfile
@@ -1,10 +1,10 @@
 #
-# GENERATED BY ./init.sh - template: ./templates/web-server-Dockerfile - 42dce773c83597a7d05af398bdd66d15
+# GENERATED BY docker/init.sh - template: ./templates/web-server-Dockerfile - 42dce773c83597a7d05af398bdd66d15
 #
 FROM php:8.1-apache
 
 # install packages
-RUN apt-get update && apt-get install -y git unzip zip
+RUN apt-get update && apt-get install -y git unzip zip rsync
 
 # enable apache modules
 RUN a2enmod rewrite
diff --git a/docker/containers/web-server/apache/sites-enabled/vhost_app.conf b/docker/containers/web-server/apache/sites-enabled/vhost_app.conf
index bb0470db592ad9e0e110f89a4ba21ff42a2c9b5a..c223a7617906a709c511b1192b28d61fb0437c6c 100644
--- a/docker/containers/web-server/apache/sites-enabled/vhost_app.conf
+++ b/docker/containers/web-server/apache/sites-enabled/vhost_app.conf
@@ -1,5 +1,5 @@
 #
-# GENERATED BY ./init.sh - template: ./templates/vhost_app.conf - 9a9cf79de5a3584c0cef6cb79c339c25
+# GENERATED BY docker/init.sh - template: ./templates/vhost_app.conf - 9a9cf79de5a3584c0cef6cb79c339c25
 #
 
 
diff --git a/docker/containers/web-server/php/extra-php-config.ini b/docker/containers/web-server/php/extra-php-config.ini
index 44f13ba321f5a82594326077a3d7cc89caa3478e..674b4dd6106afe25c6fb1074b64d9b7d77e91256 100644
--- a/docker/containers/web-server/php/extra-php-config.ini
+++ b/docker/containers/web-server/php/extra-php-config.ini
@@ -1,5 +1,5 @@
 ;
-; GENERATED BY ./init.sh - template: ./templates/extra-php-config.ini - 80c23edaf568e2c36b9926fe2339e481
+; GENERATED BY docker/init.sh - template: ./templates/extra-php-config.ini - 80c23edaf568e2c36b9926fe2339e481
 ;
 [PHP]
 
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 797734a417291b696729ddfd17973cdffa0ce23a..2b983d57879e787de6170039f05c3bd7b3fee8db 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -1,5 +1,5 @@
 #
-# GENERATED BY ./init.sh - template: ./templates/docker-compose.yml - 482a0fd9745c482f4cc4b3871c3fa4b3
+# GENERATED BY docker/init.sh - template: ./templates/docker-compose.yml - 97c88229bd2b5099544c013052b8d9c3
 #
 # ======================================================================
 #
@@ -31,12 +31,18 @@ services:
     working_dir: ${WEBROOT}
     
     volumes:
-      - ../:/var/www/${APP_NAME}
-      - ../data/imldeployment:/var/imldeployment
-      - ../data/tmp:/var/tmp/imldeployment
+      # service config
       - ./containers/web-server/apache/sites-enabled:/etc/apache2/sites-enabled
       - ./containers/web-server/php/extra-php-config.ini:/usr/local/etc/php/conf.d/extra-php-config.ini
 
+      # data dirs
+      - ../data/.ssh:/var/www/.ssh
+      - ../data/imldeployment:/var/imldeployment
+      - ../data/tmp:/var/tmp/imldeployment
+
+      # app webroot
+      - ../:/var/www/${APP_NAME}
+
     healthcheck:
       test: ["CMD", "curl", "-f", "http://localhost"]
       interval: 10s
diff --git a/docker/init.sh b/docker/init.sh
index d89fe91c7af63f5094c1a96122579e0682d125a2..3a073229be39e2a0bff88983946ded8f0bfad1a6 100644
--- a/docker/init.sh
+++ b/docker/init.sh
@@ -282,7 +282,7 @@ while true; do
             _wait
             ;;
         u)
-            if docker-compose --verbose up -d --remove-orphans; then
+            if docker-compose --verbose up -d --remove-orphans --build; then
                 # test ! -z "${APP_ONSTARTUP}" && sleep 2 && docker exec -it appmonitor-server /bin/bash -c "${APP_ONSTARTUP}" 
                 echo "In a web browser:"
                 echo "  $frontendurl"
diff --git a/docker/templates/docker-compose.yml b/docker/templates/docker-compose.yml
index c426d167c11d91b213d6e950d5669075234f1948..0cdc088a13e05801f43a11cfab9881c8c3158075 100644
--- a/docker/templates/docker-compose.yml
+++ b/docker/templates/docker-compose.yml
@@ -32,12 +32,18 @@ services:
     working_dir: ${WEBROOT}
     
     volumes:
-      - ../:/var/www/${APP_NAME}
-      - ../data/imldeployment:/var/imldeployment
-      - ../data/tmp:/var/tmp/imldeployment
+      # service config
       - ./containers/web-server/apache/sites-enabled:/etc/apache2/sites-enabled
       - ./containers/web-server/php/extra-php-config.ini:/usr/local/etc/php/conf.d/extra-php-config.ini
 
+      # data dirs
+      - ../data/.ssh:/var/www/.ssh
+      - ../data/imldeployment:/var/imldeployment
+      - ../data/tmp:/var/tmp/imldeployment
+
+      # app webroot
+      - ../:/var/www/${APP_NAME}
+
     healthcheck:
       test: ["CMD", "curl", "-f", "http://localhost"]
       interval: 10s