diff --git a/dev/docker/Dockerfile b/dev/docker/Dockerfile
index f0e4a75302ab6f5199d50ec6bb1373794b694171..998a1cdb355d190d97a73be5fe9c4001bd40e5f5 100644
--- a/dev/docker/Dockerfile
+++ b/dev/docker/Dockerfile
@@ -35,13 +35,15 @@ RUN apk --no-cache add linux-pam musl
 # make tempdir in case filestore is used
 ADD tmp.tar /
 
-USER 1001
+COPY --chown=0 rdpgw-pam /etc/pam.d/rdpgw
 
+USER 1001
 COPY --chown=1001 run.sh run.sh
 COPY --chown=1001 --from=builder /opt/rdpgw /opt/rdpgw
 COPY --chown=1001 --from=builder /etc/passwd /etc/passwd
 COPY --chown=1001 --from=builder /etc/ssl/certs /etc/ssl/certs
-#COPY --chown=1001 rdpgw.yaml /opt/rdpgw/rdpgw.yaml
+
+USER 0
 
 WORKDIR /opt/rdpgw
 ENTRYPOINT ["/bin/sh", "/run.sh"]
diff --git a/dev/docker/rdpgw-pam b/dev/docker/rdpgw-pam
new file mode 100644
index 0000000000000000000000000000000000000000..8ed41ab6600e9346f3440314968e4030a1388a11
--- /dev/null
+++ b/dev/docker/rdpgw-pam
@@ -0,0 +1,3 @@
+# basic PAM configuration for rdpgw on Alpine
+auth include base-auth
+auth include base-account
diff --git a/dev/docker/run.sh b/dev/docker/run.sh
index 49c6a9ecbecb6ef7c403cad881d479f6284e10c8..c8d4c3f7f7b077ce54b392f805685a2c390f0013 100755
--- a/dev/docker/run.sh
+++ b/dev/docker/run.sh
@@ -1,11 +1,34 @@
 #!/bin/sh
+
+USER=rdpgw
+
+file="/root/createusers.txt"
+if [ -f $file ]
+  then
+    while IFS=: read -r username password is_sudo
+        do
+            echo "Username: $username, Password: **** , Sudo: $is_sudo"
+
+            if getent passwd "$username" > /dev/null 2>&1
+              then
+                echo "User Exists"
+              else
+                adduser -s /sbin/nologin "$username"
+                echo "$username:$password" | chpasswd
+            fi
+    done <"$file"
+fi
+
 cd /opt/rdpgw || exit 1
 
-if ! [ -e /opt/rdpgw/rdpgw.yaml ]; then
-  cp /opt/rdpgw/rdpgw.yaml.default /opt/rdpgw/rdpgw.yaml
+if [ -n "${RDPGW_SERVER__AUTHENTICATION}" ]; then
+  if [ "${RDPGW_SERVER__AUTHENTICATION}" = "local" ]; then
+    echo "Starting rdpgw-auth"
+    /opt/rdpgw/rdpgw-auth &
+  fi
 fi
 
-/opt/rdpgw/rdpgw-auth &
-/opt/rdpgw/rdpgw &
+# drop privileges and run the application
+su -c /opt/rdpgw/rdpgw ${USER} &
 wait
 exit $?