diff --git a/.gitlab/bin/gitlab_before_script.sh b/.gitlab/bin/gitlab_before_script.sh
old mode 100644
new mode 100755
index 49226b2137a758210065abbbc1cfec407a46cb16..86fa494906ac4cbf2813f8611f73fb55ffefb39b
--- a/.gitlab/bin/gitlab_before_script.sh
+++ b/.gitlab/bin/gitlab_before_script.sh
@@ -1,9 +1,17 @@
 #!/usr/bin/env bash
 set -eo pipefail
 
-dokku_version=${DOKKU_VERSION:-master}
-echo "Dokku client version: $dokku_version"
+export DOKKU_HOST=${DOKKU_HOST:=}
+export DOKKU_PORT=${DOKKU_PORT:=22}
+export DOKKU_VERSION=${DOKKU_VERSION:=master}
 
-git clone --single-branch --branch "$dokku_version" \
+[[ -z "$DOKKU_HOST" ]] && echo "DOKKU_HOST is required and must be set as an environment variable" >&2 && exit 1
+
+echo "Cloning Dokku client script (version $DOKKU_VERSION) into /opt/dokku ..."
+git clone --single-branch --branch "$DOKKU_VERSION" \
   https://github.com/dokku/dokku.git /opt/dokku
+
+echo "Setting 'dokku' as an alias for '/opt/dokku/contrib/dokku_client.sh' ..."
 alias dokku="/opt/dokku/contrib/dokku_client.sh"
+
+echo "Completed setting up Dokku client on the CI environment"
diff --git a/.gitlab/ci/dokku.gitlab-ci.yml b/.gitlab/ci/dokku.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7ebb7c5b572c747b976a196f1042e7821cff8f9e
--- /dev/null
+++ b/.gitlab/ci/dokku.gitlab-ci.yml
@@ -0,0 +1,13 @@
+---
+.dokku:
+  image: docker.io/bitnami/git:2.42.1
+  stage: deploy
+  variables:
+    DOKKU_HOST: ""
+    DOKKU_PORT: 22
+    DOKKU_VERSION: master
+    DOKKU_TRACE: ""
+  before_script:
+    - chmod +x .gitlab/bin/gitlab_before_script.sh && bash .gitlab/bin/gitlab_before_script.sh
+  script:
+    - echo "TODO"