diff --git a/sbin/dm_deploy_web_portal.sh b/sbin/dm_deploy_web_portal.sh
new file mode 100755
index 0000000000000000000000000000000000000000..bb8ff61c01afa9c5b19f13807d8a87288b04a3a9
--- /dev/null
+++ b/sbin/dm_deploy_web_portal.sh
@@ -0,0 +1,104 @@
+#!/bin/sh
+
+#
+# Script used for deploying DM webapp
+# Deployment configuration can be set in etc/$DM_DB_NAME.deploy.conf file
+#
+# Usage:
+#
+# $0 [DM_DB_NAME]
+#
+
+MY_DIR=`dirname $0` && cd $MY_DIR && MY_DIR=`pwd`
+if [ -z "${DM_ROOT_DIR}" ]; then
+    DM_ROOT_DIR=$MY_DIR/..
+fi
+DM_ENV_FILE=${DM_ROOT_DIR}/setup.sh
+if [ ! -f ${DM_ENV_FILE} ]; then
+    echo "Environment file ${DM_ENV_FILE} does not exist." 
+    exit 2
+fi
+. ${DM_ENV_FILE} > /dev/null
+
+# Use first argument as db name, if provided
+DM_DB_NAME=${DM_DB_NAME:=dm}
+if [ ! -z "$1" ]; then
+    DM_DB_NAME=$1
+fi
+echo "Using DB name: $DM_DB_NAME"
+
+# Look for deployment file in etc directory, and use it to override
+# default entries
+deployConfigFile=$DM_ROOT_DIR/etc/${DM_DB_NAME}.deploy.conf
+if [ -f $deployConfigFile ]; then
+    echo "Using deployment config file: $deployConfigFile"
+    . $deployConfigFile
+else
+    echo "Deployment config file $deployConfigFile not found, using defaults"
+fi
+
+DM_HOST_ARCH=`uname | tr [A-Z] [a-z]`-`uname -m`
+DM_CONTEXT_ROOT=${DM_CONTEXT_ROOT:=dm}
+GLASSFISH_DIR=$DM_SUPPORT_DIR/glassfish/$DM_HOST_ARCH
+DM_DEPLOY_DIR=$GLASSFISH_DIR/glassfish/domains/domain1/autodeploy
+DM_DIST_DIR=$DM_ROOT_DIR/src/java/DmWebPortal/dist
+DM_BUILD_WAR_FILE=DmWebPortal.war
+DM_WAR_FILE=$DM_CONTEXT_ROOT.war
+JAVA_HOME=$DM_SUPPORT_DIR/java/$DM_HOST_ARCH
+
+if [ ! -f $DM_DIST_DIR/$DM_BUILD_WAR_FILE ]; then
+    echo "$DM_BUILD_WAR_FILE not found in $DM_DIST_DIR."
+    exit 1
+fi
+
+# Modify war file for proper context/persistence settings and
+# repackage it into new war 
+echo "Repackaging war file for context root $DM_CONTEXT_ROOT"
+cd $DM_DIST_DIR
+rm -rf $DM_CONTEXT_ROOT
+mkdir -p $DM_CONTEXT_ROOT
+cd $DM_CONTEXT_ROOT
+jar xf ../$DM_BUILD_WAR_FILE
+
+configFile=WEB-INF/glassfish-web.xml
+cmd="cat $configFile | sed 's?<context-root.*?<context-root>${DM_CONTEXT_ROOT}</context-root>?g' > $configFile.2 && mv $configFile.2 $configFile"
+eval $cmd
+
+configFile=WEB-INF/classes/META-INF/persistence.xml
+cmd="cat $configFile | sed 's?<jta-data-source.*?<jta-data-source>${DM_DB_NAME}_DataSource</jta-data-source>?g' > $configFile.2 && mv $configFile.2 $configFile"
+eval $cmd
+
+configFile=WEB-INF/classes/dm.portal.properties
+cmd="cat $configFile | sed 's?dm.dsWebService.url=.*?dm.dsWebService.url=https://${DM_DS_WEB_SERVICE_HOST}:${DM_DS_WEB_SERVICE_PORT}/dm?g' > $configFile.2 && mv $configFile.2 $configFile"
+eval $cmd
+> 
+configFile=WEB-INF/classes/resources.properties
+cmd="cat $configFile | sed 's?DmSoftwareVersion=.*?DmSoftwareVersion=${DM_SOFTWARE_VERSION}?g' | sed 's?DM_DATE?$DM_DATE?g' > $configFile.2 && mv $configFile.2 $configFile"
+eval $cmd
+
+jar cf ../$DM_WAR_FILE *
+
+export AS_JAVA=$JAVA_HOME
+ASADMIN_CMD=$GLASSFISH_DIR/bin/asadmin
+
+# copy war file
+echo "Copying war file $DM_DIST_DIR/$DM_WAR_FILE to $DM_DEPLOY_DIR"
+rm -f $DM_DEPLOY_DIR/${DM_WAR_FILE}_*
+cp $DM_DIST_DIR/$DM_WAR_FILE $DM_DEPLOY_DIR
+
+# wait on deployment
+echo "Waiting on war deployment..."
+WAIT_TIME=60
+cd $DM_DEPLOY_DIR
+t=0
+while [ $t -lt $WAIT_TIME ]; do
+    sleep 1
+    deploymentStatus=`ls -c1 ${DM_WAR_FILE}_* 2> /dev/null | sed 's?.*war_??g'`
+    if [ ! -z "$deploymentStatus" ]; then
+        break
+    fi
+    t=`expr $t + 1`
+done
+echo "Deployment Status: $deploymentStatus"
+
+
diff --git a/sbin/dm_undeploy_web_portal.sh b/sbin/dm_undeploy_web_portal.sh
new file mode 100755
index 0000000000000000000000000000000000000000..88cd23d305b6c56420883dd6fd144300d2388589
--- /dev/null
+++ b/sbin/dm_undeploy_web_portal.sh
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+#
+# Script used for undeploying DM webapp
+# Deployment configuration can be set in etc/$DM_DB_NAME.deploy.conf file
+#
+# Usage:
+#
+# $0 [DM_DB_NAME]
+#
+
+MY_DIR=`dirname $0` && cd $MY_DIR && MY_DIR=`pwd`
+if [ -z "${DM_ROOT_DIR}" ]; then
+    DM_ROOT_DIR=$MY_DIR/..
+fi
+DM_ENV_FILE=${DM_ROOT_DIR}/setup.sh
+if [ ! -f ${DM_ENV_FILE} ]; then
+    echo "Environment file ${DM_ENV_FILE} does not exist." 
+    exit 2
+fi
+. ${DM_ENV_FILE} > /dev/null
+
+# Use first argument as db name, if provided
+DM_DB_NAME=${DM_DB_NAME:=dm}
+if [ ! -z "$1" ]; then
+    DM_DB_NAME=$1
+fi
+echo "Using DB name: $DM_DB_NAME"
+
+# Look for deployment file in etc directory, and use it to override
+# default entries
+deployConfigFile=$DM_ROOT_DIR/etc/${DM_DB_NAME}.deploy.conf
+if [ -f $deployConfigFile ]; then
+    echo "Using deployment config file: $deployConfigFile"
+    . $deployConfigFile
+else
+    echo "Deployment config file $deployConfigFile not found, using defaults"
+fi
+
+DM_HOST_ARCH=`uname | tr [A-Z] [a-z]`-`uname -m`
+DM_CONTEXT_ROOT=${DM_CONTEXT_ROOT:=dm}
+GLASSFISH_DIR=$DM_SUPPORT_DIR/glassfish/$DM_HOST_ARCH
+DM_DEPLOY_DIR=$GLASSFISH_DIR/glassfish/domains/domain1/autodeploy
+DM_APP_DIR=$GLASSFISH_DIR/glassfish/domains/domain1/applications/$DM_CONTEXT_ROOT
+DM_DIST_DIR=$DM_ROOT_DIR/src/java/DmWebPortal/dist
+DM_WAR_FILE=$DM_CONTEXT_ROOT.war
+JAVA_HOME=$DM_SUPPORT_DIR/java/$DM_HOST_ARCH
+
+export AS_JAVA=$JAVA_HOME
+ASADMIN_CMD=$GLASSFISH_DIR/bin/asadmin
+
+# remove war file from autodeploy directory
+echo "Removing war file $DM_DEPLOY_DIR/$DM_WAR_FILE"
+rm -f $DM_DEPLOY_DIR/${DM_WAR_FILE}*
+
+# remove war file from autodeploy directory
+if [ -d $DM_APP_DIR ]; then
+    echo "Removing application directory $DM_APP_DIR"
+    rm -rf $DM_APP_DIR
+else
+    echo "Application directory $DM_APP_DIR not found"
+fi
+
+# restart server
+echo "Restarting glassfish"
+$ASADMIN_CMD stop-domain ${DM_DOMAIN}
+$ASADMIN_CMD start-domain ${DM_DOMAIN}
+
+
+
+