diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6daa3261e68a461e98784f8c09d479d8148f55af..2be181a9767921c6fe4753dbeabfdb76fd98b5dd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,7 +9,7 @@ variables:
 default:
   # built via:
   #     docker load < $(nix-build nix/docker-image.nix)
-  image: registry.k0.hswaw.net/q3k/flow3r-build:v4ljgs5czzm6j79m7r30vw6xz6990kkv
+  image: registry.k0.hswaw.net/q3k/flow3r-build:krgzk4xwf485pi8xn6g12vfccvyc38aj
 
 clang-tidy:
   stage: check
@@ -80,4 +80,4 @@ dist:
   script:
     - bash tools/dist.sh
   artifacts:
-    paths: ['dist']
\ No newline at end of file
+    paths: ['dist']
diff --git a/nix/docker-image.nix b/nix/docker-image.nix
index 4e08274202e299711028abd357768a55ef1ae885..0c227bedf1f314170ab5bae4a63977df65d73f5a 100644
--- a/nix/docker-image.nix
+++ b/nix/docker-image.nix
@@ -31,6 +31,7 @@ pkgs.dockerTools.buildImage {
       gcc gnused findutils gnugrep
       git wget gnumake
       cmake ninja pkgconfig
+      gnutar curl
     ];
     pathsToLink = [ "/bin" ];
   };
diff --git a/tools/dist.sh b/tools/dist.sh
index 240c86375f43fff0db191d9e1e19fbc1ba91fa07..08f92f738368ef2d62e8a1a88aafe538c8cd6afb 100755
--- a/tools/dist.sh
+++ b/tools/dist.sh
@@ -77,4 +77,11 @@ Then, run esptool.py with the following arguments:
 EOF
 
 mkdir -p dist
-tar -cjf "dist/${name}.tar.bz2" -C "${tmpdir}" "${name}"
+tar="dist/${name}.tar.bz2"
+tar -cjf "${tar}" -C "${tmpdir}" "${name}"
+
+if [ ! -z "$CI_JOB_TOKEN" ]; then
+    curl --header "JOB-TOKEN: $CI_JOB_TOKEN" \
+         --upload-file "${tar}" \
+         "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/flow3r-firmware/${version}/${name}.tar.bz2"
+fi