diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 737dfc073f0b1adae83bb4d160aeb84d2955f3fb..cc4c0bdcee6f9e9b9a6125a0d4736c48e1611b0f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,7 +3,7 @@ variables:
 
 stages:
   - update_deployment
-  - update
+  - update_tilserver_data
   - transfer
 
 update_deployment:
@@ -16,17 +16,17 @@ update_deployment:
     - cd ${CODE_DIR}/tileserver
     - chown -R 1000:1000 ${CODE_DIR}
   script:
-    - docker compose down
-    - docker compose up -d
+    - docker compose up -d --force-recreate
   rules:
-    - if: $UPDATE_MBTILES
+    - if: $UPDATE_MBTILES && $UPDATE_JOB != "true"
       when: never
     - if: $CI_PIPELINE_SOURCE == "push"
+    - if: $UPDATE_JOB
   tags:
     - tileserver
 
 update_mbtiles:
-  stage: update
+  stage: update_tilserver_data
   variables:
     STORAGE_PATH: "/home/mgmaps/mbtiles/${PLANETILER_VERSION}"
     OSM_FILE: /home/mgmaps/osmdata/planet.osm.pbf
@@ -45,7 +45,7 @@ update_mbtiles:
     - prepare
 
 transfer_mbtiles:
-  stage: transfer
+  stage: update_tilserver_data
   image: 
     name: eeacms/rsync
     entrypoint: [""]
@@ -57,5 +57,21 @@ transfer_mbtiles:
     - chown -R 1000:1000 /home/mgmaps/mbtiles/${PLANETILER_VERSION}
   rules:
     - if: $UPDATE_MBTILES
+  needs:
+    - update_mbtiles
   tags:
     - tileserver
+
+restart_service:
+  stage: update_tilserver_data
+  variables:
+    UPDATE_JOB: "true"
+  rules:
+    - if: $UPDATE_MBTILES
+  needs:
+    - transfer_mbtiles
+  trigger: 
+    project: metagermaps/tileserver
+    forward:
+      yaml_variables: true
+