diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 145de5eaeaa8ae0528efbd43bb6bd9b45d1287a7..f631e20802462af2b767b9f9e8b4466384c6f220 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,6 +9,7 @@ workflow:
     - if: $CI_PIPELINE_SOURCE == 'push'
 
 stages:
+    - tools
     - build
     - test
     - analyze
@@ -25,3 +26,4 @@ include:
     - local: "/.gitlab/ci/.integration-test-containerlab.yml"
     - local: "/.gitlab/ci/.integration-test.yml"
     - local: "/.gitlab/ci/.uml-autogen-ci.yml"
+    - local: "/.gitlab/ci/.renovate.yml"
diff --git a/.gitlab/ci/.renovate.yml b/.gitlab/ci/.renovate.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ba873230bcbfb4741a682a90caf8225b0e9e54ed
--- /dev/null
+++ b/.gitlab/ci/.renovate.yml
@@ -0,0 +1,12 @@
+renovate:
+    stage: tools
+
+    image: renovate/renovate:32.127.0-slim@sha256:30824333e0978851f96ac8e58e7afa39aaf996de243f8bfcb1d7d6906b46488d
+
+    variables:
+        LOG_LEVEL: debug
+
+    only:
+        - schedules
+    script:
+        - renovate $RENOVATE_EXTRA_FLAGS
diff --git a/config.js b/config.js
new file mode 100644
index 0000000000000000000000000000000000000000..466b8287b4148fcc4878a114b05966a6a57f1232
--- /dev/null
+++ b/config.js
@@ -0,0 +1,24 @@
+Object.assign(process.env, {
+  GIT_AUTHOR_NAME: 'Renovate Bot',
+  GIT_AUTHOR_EMAIL: 'renovate@danet.fbi.h-da.de',
+  GIT_COMMITTER_NAME: 'Renovate Bot',
+  GIT_COMMITTER_EMAIL: 'renovate@danet.fbi.h-da.de',
+});
+
+module.exports = {
+  endpoint: process.env.CI_API_V4_URL,
+  hostRules: [
+    {
+      baseUrl: 'https://registry.code.fbi.h-da.de',
+      username: '@project_10161_bot',
+      password: process.env.GITLAB_REGISTRY_TOKEN,
+    },
+  ],
+  platform: 'gitlab',
+  username: '@project_10161_bot',
+  gitAuthor: 'Renovate Bot <renovate@danet.fbi.h-da.de>',
+  autodiscover: true,
+  prConcurrentLimit: 10,
+  commitMessagePrefix: '[renovate]',
+  labels: ['renovate']
+};