diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f70043acdc60dcedb8a39eb633fc5675ed41ede4..cb33217312165864bd919a287847bfd9cda398be 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -30,8 +30,20 @@ update:
 
 .target:
   stage: build
+  before_script:
+    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
+    - eval $(ssh-agent -s)
+    - ssh-add <(echo "$GIT_SSH_PRIV_KEY")
+    - git config --global user.email "firmware@freifunk-stuttgart.de"
+    - git config --global user.name "FFS Buildbot"
+    - mkdir -p ~/.ssh
+    - cat gitlab-known-hosts >> ~/.ssh/known_hosts
+    - test -d ffs-openwrt-dl-cache || git clone ssh://git@gitlab.freifunk-stuttgart.de:22220/firmware/ffs-openwrt-dl-cache.git
+    - git -C ffs-openwrt-dl-cache pull
+    - rm -rf gluon/openwrt/dl && mkdir -p gluon/openwrt && ln -s ../../ffs-openwrt-dl-cache gluon/openwrt/dl
   script:
     - make -C gluon GLUON_SITEDIR="$CI_PROJECT_DIR" GLUON_TARGET="$GLUON_TARGET" GLUON_BRANCH=stable FFS_BUILD_DATE=$(cat build.date) V=1 -j`nproc`
+    - cd gluon/openwrt/dl && git add . && git commit -m "update DL cache" && git push || true
   except:
     - tags
   artifacts: 
@@ -40,7 +52,7 @@ update:
     expire_in: 1 day
   cache:
     paths:
-      - gluon/openwrt/dl
+      - ffs-openwrt-dl-cache
       - gluon/openwrt/staging_dir
     key: "build-$CI_COMMIT_REF_SLUG"
  
diff --git a/gitlab-known-hosts b/gitlab-known-hosts
new file mode 100644
index 0000000000000000000000000000000000000000..d0a535826b458e3aeb90778a62aa2fefc30a2b8e
--- /dev/null
+++ b/gitlab-known-hosts
@@ -0,0 +1,3 @@
+[gitlab.freifunk-stuttgart.de]:22220 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNCe5DNM3hGY+oEy5JeGjCDg68YrpjFivgxIAuFvhJkRdPPQpnOURuXFt/wQ0PCF/MZHVLPKwSLEfI3pkQRAg2bLyXFnLMlaaC2Q+9eZoQ6K2+NFWlKiVd3EmYGMt2USFfgFiHKeA4NNhvqtINj5pk1usFRCuUYfAegIVQl+vIvW7rpdK68Y33MGPrP81XD0E7TpasQnqnxVIaTe+QG3oNlPCToE6e8sZij3lwKGmR0gopbvUjXjuY7SCIbzEwzNET+olVfVHWMlDwuzM8tUOSbOSg6mX+I1gTJXndxdGl/dSsI9HXAe1HAa3B7zN+SDwcz+ySxsAgS8loyJMT2SD
+[gitlab.freifunk-stuttgart.de]:22220 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJPXKTRXP1BULVuiWD92F3VdNDLkNV3B7Dv7hb9/PVsCVZnH+s6lsdqYZZL/7QvzyqB/eOlXRs5PE/opGkS84Qw=
+[gitlab.freifunk-stuttgart.de]:22220 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKCt1kYnQIF17lAw7kRBAZOJFOS67ZQpBPsq79srBpwu