diff --git a/bin/release/aws-eb/.ebextensions/01_metabase.config b/bin/release/aws-eb/.ebextensions/01_metabase.config
new file mode 100644
index 0000000000000000000000000000000000000000..01b1b7dad053dd8a5fead6d617d85032b3b0c9f4
--- /dev/null
+++ b/bin/release/aws-eb/.ebextensions/01_metabase.config
@@ -0,0 +1,50 @@
+######
+# Metabase Report server Elastic Beanstalk configuration
+# Modify the environmental variables below to customize your installation
+# Comment out a variable to disable a feature
+#####
+container_commands:
+    #customize_env: 
+        #env:
+            #NGINX_SERVER_NAME: metabase.example.com
+            #NGINX_FORCE_SSL: 1
+            #PAPERTRAIL_HOSTNAME: $HOSTNAME
+            #PAPERTRAIL_HOST: foobar.papertrailapp.com
+            #PAPERTRAIL_PORT: 12345
+            #PAPERTRAIL_FILES: /var/log/nginx/access.log /var/log/nginx/error.log
+        #command: true
+        #ignoreErrors: false
+
+    01_server-name:
+        command: ".ebextensions/metabase_config/metabase-setup.sh server_name"
+        test: test $NGINX_SERVER_NAME
+        ignoreErrors: true
+
+    02_server_https:
+        command: ".ebextensions/metabase_config/metabase-setup.sh server_https"
+        test: test $NGINX_FORCE_SSL
+        ignoreErrors: true
+
+    03_log_x_real_ip:
+        command: ".ebextensions/metabase_config/metabase-setup.sh log_x_real_ip"
+        ignoreErrors: true
+
+    04_install_papertrail:
+        command: ".ebextensions/metabase_config/metabase-setup.sh install_papertrail"
+        test: test $PAPERTRAIL_HOST
+        ignoreErrors: true
+
+    05_try_papertrail:
+        command: "/sbin/service remote_syslog restart"
+        test: test -e /etc/log_files.yml
+        ignoreErrors: true
+
+    06_try_nginx:
+        command: "/sbin/service nginx restart"
+        test: nginx -t
+        ignoreErrors: false
+
+option_settings:
+  - namespace: aws:elasticbeanstalk:command
+    option_name: Timeout
+    value: 600
diff --git a/bin/release/aws-eb/.ebextensions/extend_timeout.config b/bin/release/aws-eb/.ebextensions/extend_timeout.config
deleted file mode 100644
index f81a14bf2db8ec8d8510555e9740e77132601388..0000000000000000000000000000000000000000
--- a/bin/release/aws-eb/.ebextensions/extend_timeout.config
+++ /dev/null
@@ -1,4 +0,0 @@
-option_settings:
-  - namespace: aws:elasticbeanstalk:command
-    option_name: Timeout
-    value: 600
diff --git a/bin/release/aws-eb/.ebextensions/metabase_config/metabase-setup.sh b/bin/release/aws-eb/.ebextensions/metabase_config/metabase-setup.sh
new file mode 100755
index 0000000000000000000000000000000000000000..2f6a9eb1f14a93491269cec9318f4c778f336b5f
--- /dev/null
+++ b/bin/release/aws-eb/.ebextensions/metabase_config/metabase-setup.sh
@@ -0,0 +1,103 @@
+#!/bin/bash
+####
+# Metabase Report server Elastic Beanstalk metabase-setup.sh
+# Modify the environmental variables to customize your installation
+# Unset a variable to disable a feature
+####
+
+# add files to papertrail
+pt_files () {
+    sed -i '/  - .*/d' /etc/log_files.yml
+    set -f
+    for file in $PAPERTRAIL_FILES; do
+        sed -i 's|files:|files:\n  - '$file'|' /etc/log_files.yml
+    done
+    set +f
+}
+
+# papertail remote host
+pt_remote_host () {
+    sed -i "s/.*host:.*/  host: $PAPERTRAIL_HOST/" /etc/log_files.yml
+}
+
+# papertail remote port
+pt_port () {
+    sed -i "s/.*port:.*/  port: $PAPERTRAIL_PORT/" /etc/log_files.yml
+}
+
+# papertail local host
+pt_local_host () {
+    eval export PAPERTRAIL_HOSTNAME=$PAPERTRAIL_HOSTNAME # expand vars like $HOSTNAME
+    sed -i "s/.*hostname:.*/hostname: $PAPERTRAIL_HOSTNAME/" /etc/log_files.yml
+}
+
+# nginx server name
+server_name () {
+    [[ "$NGINX_SERVER_NAME" ]] && cp_default_server
+    cd /etc/nginx/sites-available/
+    if [[ "$NGINX_SERVER_NAME" ]] ; then
+        if ! grep -q server_name elasticbeanstalk-nginx-docker-proxy.conf ; then
+            sed -i "s|listen 80\;|listen 80\;\n        server_name $NGINX_SERVER_NAME \*\.$NGINX_SERVER_NAME\;\n|" elasticbeanstalk-nginx-docker-proxy.conf
+        fi
+    else
+        # no hostname passed, disable default_server
+        sed -i '/server_name/d' elasticbeanstalk-nginx-docker-proxy.conf
+        [[ -e /etc/nginx/sites-enabled/default_server ]] && rm /etc/nginx/sites-enabled/default_server
+    fi
+}
+
+# enable https redirect
+server_https () {
+    cd /etc/nginx/sites-available/
+    if [[ "$NGINX_FORCE_SSL" ]] && ! grep -q https elasticbeanstalk-nginx-docker-proxy.conf ; then
+        sed -i 's|location \/ {|location \/ {\n\n        if ($http_x_forwarded_proto != "https") {\n                rewrite ^ https:\/\/$host$request_uri? permanent;\n        }\n|' elasticbeanstalk-nginx-docker-proxy.conf
+    fi
+}
+
+# download, install and configure papertrail
+install_papertrail () {
+    cp .ebextensions/metabase_config/papertrail/log_files.yml /etc/log_files.yml && chmod 644 /etc/log_files.yml
+    cp .ebextensions/metabase_config/papertrail/remote_syslog /etc/init.d/remote_syslog && chmod 555 /etc/init.d/remote_syslog
+    cd /tmp/
+    wget -q "https://github.com/papertrail/remote_syslog2/releases/download/v0.14/remote_syslog_linux_amd64.tar.gz" &&
+        tar xzf remote_syslog_linux_amd64.tar.gz
+    /sbin/service remote_syslog stop
+    mv /tmp/remote_syslog/remote_syslog /usr/local/bin/
+    rm -rf remote_syslog_linux_amd64.tar.gz remote_syslog
+    # Setup Papertrail
+    [[ "$PAPERTRAIL_HOST" ]] && pt_remote_host
+    [[ "$PAPERTRAIL_PORT" ]] && pt_port
+    [[ "$PAPERTRAIL_FILES" ]] && pt_files
+    [[ "$PAPERTRAIL_HOSTNAME" ]] && pt_local_host
+}
+
+# enable default_server to drop DNS poisoning
+cp_default_server () {
+    cp .ebextensions/metabase_config/nginx/default_server /etc/nginx/sites-available/default_server
+    [[ ! -e /etc/nginx/sites-enabled/default_server ]] &&
+        ln -s /etc/nginx/sites-available/default_server /etc/nginx/sites-enabled/default_server
+}
+
+# update nginx logging to include x_real_ip
+log_x_real_ip () {
+    cp .ebextensions/metabase_config/nginx/log_x_real_ip.conf /etc/nginx/conf.d/log_x_real_ip.conf
+    cd  /etc/nginx/sites-available
+    if ! grep -q access_log *-proxy.conf ; then 
+        sed -i 's|location \/ {|location \/ {\n\n        access_log \/var\/log\/nginx\/access.log log_x_real_ip;\n|' *-proxy.conf
+    fi
+}
+
+case $1 in
+server_name)
+    server_name
+    ;;
+server_https)
+    server_https
+    ;;
+install_papertrail)
+    install_papertrail
+    ;;
+log_x_real_ip)
+    log_x_real_ip
+    ;;
+esac
diff --git a/bin/release/aws-eb/.ebextensions/metabase_config/nginx/default_server b/bin/release/aws-eb/.ebextensions/metabase_config/nginx/default_server
new file mode 100644
index 0000000000000000000000000000000000000000..49d14b428c447151e9fd9600c4d1669ddf8a50d8
--- /dev/null
+++ b/bin/release/aws-eb/.ebextensions/metabase_config/nginx/default_server
@@ -0,0 +1,19 @@
+# /etc/nginx/sites-available/default_server
+server {
+    listen 80 default_server;
+
+    location /api/health {
+        access_log off;
+        proxy_pass            http://docker;
+        proxy_http_version    1.1;
+        proxy_set_header    Connection            $connection_upgrade;
+        proxy_set_header    Upgrade               $http_upgrade;
+        proxy_set_header    Host                  $host;
+        proxy_set_header    X-Real-IP             $remote_addr;
+        proxy_set_header    X-Forwarded-For       $proxy_add_x_forwarded_for;
+    }
+
+    location / {
+        return 444;
+    }
+}
diff --git a/bin/release/aws-eb/.ebextensions/metabase_config/nginx/log_x_real_ip.conf b/bin/release/aws-eb/.ebextensions/metabase_config/nginx/log_x_real_ip.conf
new file mode 100644
index 0000000000000000000000000000000000000000..a6cbe070a52ec63cb19d028d905a5b5d417252ae
--- /dev/null
+++ b/bin/release/aws-eb/.ebextensions/metabase_config/nginx/log_x_real_ip.conf
@@ -0,0 +1,4 @@
+# /etc/nginx/conf.d/log_x_real_ip.conf
+log_format log_x_real_ip '$proxy_add_x_forwarded_for - [$time_local] '
+                      '$request $status $body_bytes_sent '
+                      '$http_referer $http_user_agent';
diff --git a/bin/release/aws-eb/.ebextensions/metabase_config/papertrail/log_files.yml b/bin/release/aws-eb/.ebextensions/metabase_config/papertrail/log_files.yml
new file mode 100644
index 0000000000000000000000000000000000000000..519dbaa5255cae289bcb5771499120781f4ab075
--- /dev/null
+++ b/bin/release/aws-eb/.ebextensions/metabase_config/papertrail/log_files.yml
@@ -0,0 +1,9 @@
+# /etc/log_files.yml - Papertrail
+files:
+  - /var/log/nginx/access.log
+hostname:
+destination:
+  host:
+  port:
+  protocol: tls
+new_file_check_interval: "10" # Check every 10 seconds
diff --git a/bin/release/aws-eb/.ebextensions/metabase_config/papertrail/remote_syslog b/bin/release/aws-eb/.ebextensions/metabase_config/papertrail/remote_syslog
new file mode 100644
index 0000000000000000000000000000000000000000..e5ec6aa5ba7d23abb3b525f994a66ce74b65c166
--- /dev/null
+++ b/bin/release/aws-eb/.ebextensions/metabase_config/papertrail/remote_syslog
@@ -0,0 +1,127 @@
+#!/bin/bash
+# /etc/init.d/remote_syslog
+#
+# remote_syslog This shell script takes care of starting and stopping
+#               remote_syslog daemon
+#
+# chkconfig: - 58 74
+# description: papertrail/remote_syslog \
+#              https://github.com/papertrail/remote_syslog2/blob/master/examples/remote_syslog.init.d
+
+### BEGIN INIT INFO
+# Provides: remote_syslog
+# Required-Start: $network $local_fs $remote_fs
+# Required-Stop: $network $local_fs $remote_fs
+# Should-Start: $syslog $named ntpdate
+# Should-Stop: $syslog $named
+# Short-Description: start and stop remote_errolog
+# Description: papertrail/remote_syslog2
+#              https://github.com/papertrail/remote_syslog2/blob/master/examples/remote_syslog.init.d
+### END INIT INFO
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source networking configuration.
+. /etc/sysconfig/network
+ 
+prog="/usr/local/bin/remote_syslog"   
+config="/etc/log_files.yml"
+pid_dir="/var/run"
+
+EXTRAOPTIONS=""
+
+pid_file="$pid_dir/remote_syslog.pid"
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
+
+RETVAL=0
+
+is_running(){
+    # Do we have PID-file?
+    if [ -f "$pid_file" ]; then
+        # Check if proc is running
+        pid=`cat "$pid_file" 2> /dev/null`
+        if [[ $pid != "" ]]; then
+            exepath=`readlink /proc/"$pid"/exe 2> /dev/null`
+            exe=`basename "$exepath"`
+            if [[ $exe == "remote_syslog" ]]; then
+                # Process is running
+                return 0
+            fi
+        fi
+    fi
+    return 1
+}
+
+start(){
+    echo -n $"Starting $prog: "
+    unset HOME MAIL USER USERNAME
+    $prog -c $config --pid-file=$pid_file $EXTRAOPTIONS
+    RETVAL=$?
+    echo
+    return $RETVAL
+}
+
+stop(){
+    echo -n $"Stopping $prog: "
+    if (is_running); then
+      kill `cat $pid_file`
+      RETVAL=$?
+      echo
+      return $RETVAL
+    else
+      echo "$pid_file not found"
+    fi
+}
+
+status(){
+    echo -n $"Checking for $pid_file: "
+
+    if (is_running); then
+      echo "found"
+    else
+      echo "not found"
+    fi
+}
+
+reload(){
+    restart
+}
+
+restart(){
+    stop
+    start
+}
+
+condrestart(){
+    is_running && restart
+    return 0
+}
+
+# See how we were called.
+case "$1" in
+    start)
+  start
+  ;;
+    stop)
+  stop
+  ;;
+    status)
+  status
+  ;;
+    restart)
+  restart
+  ;;
+    reload)
+  reload
+  ;;
+    condrestart)
+  condrestart
+  ;;
+    *)
+  echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
+  RETVAL=1
+esac
+
+exit $RETVAL