diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a6ce9076f02f9eb28b1609cd6c7aedcd1008151a..4dcbba1bbf8c2073a07749fc2fa5c198db4fd241 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,15 +3,16 @@ stages:
   - release
   - build
 
+image: griefed/gitlab-ci-cd:2.0.0
+services:
+  - name: docker:dind
+    alias: docker
+variables:
+  project_name: $CI_PROJECT_NAME
+  SEMANTIC_RELEASE_PACKAGE: $CI_PROJECT_NAME
+
 test docker:
   stage: test
-  image: griefed/gitlab-ci-cd:2.0.0
-  services:
-    - name: docker:dind
-      alias: docker
-  variables:
-    project_name: $CI_PROJECT_NAME
-    SEMANTIC_RELEASE_PACKAGE: $CI_PROJECT_NAME
   before_script:
     - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_TOKEN" docker.io
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
@@ -29,18 +30,11 @@ test docker:
     refs:
       - tags
     variables:
-      - $CI_COMMIT_TITLE =~ /^RELEASE:.+$/
+      - '$CI_COMMIT_TITLE =~ /^RELEASE:.+$/ || $CI_PIPELINE_SOURCE == "schedule"'
 
 release:
   needs: ['test docker']
   stage: release
-  image: griefed/gitlab-ci-cd:2.0.0
-  services:
-    - name: docker:dind
-      alias: docker
-  variables:
-    project_name: $CI_PROJECT_NAME
-    SEMANTIC_RELEASE_PACKAGE: $CI_PROJECT_NAME
   script:
     - npx semantic-release
   only:
@@ -49,17 +43,10 @@ release:
     refs:
       - tags
     variables:
-      - $CI_COMMIT_TITLE =~ /^RELEASE:.+$/
+      - '$CI_COMMIT_TITLE =~ /^RELEASE:.+$/ || $CI_PIPELINE_SOURCE == "schedule"'
 
 build:
   stage: build
-  image: griefed/gitlab-ci-cd:2.0.0
-  services:
-    - name: docker:dind
-      alias: docker
-  variables:
-    project_name: $CI_PROJECT_NAME
-    SEMANTIC_RELEASE_PACKAGE: $CI_PROJECT_NAME
   before_script:
     - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_TOKEN" docker.io
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
@@ -77,3 +64,79 @@ build:
       --tag "index.docker.io/$DOCKERHUB_USER/$DOCKERHUB_REPO:latest" .
   only:
     - tags
+
+Check Packages:on-schedule:
+  only:
+    - schedules
+  before_script:
+    - |-
+      # Check and, if necessary, update git user and mail
+      if [[ "$(git config --list | grep user.name)" != "user.name=$GIT_USER" ]];then
+        git config --global user.name $GIT_USER
+      fi
+      if [[ "$(git config --list | grep user.email)" != "user.email=$GIT_MAIL" ]];then
+        git config --global user.email $GIT_MAIL
+      fi
+      
+      # Clean system of potentially interrupting images
+      docker image rm -f $DOCKERHUB_USER/$DOCKERHUB_REPO:latest
+      docker image rm -f localbuild
+      rm -rf /tmp/$CI_PROJECT_PATH
+      rm -f /tmp/package_versions*
+      mkdir -p /tmp/$CI_PROJECT_PATH
+  script:
+    - |-
+      # Clone the repository
+      git clone $CI_PROJECT_URL.git /tmp/$CI_PROJECT_PATH && \
+      cd /tmp/$CI_PROJECT_PATH && \
+      
+      # Build local image for new package versions list
+      docker build --tag localbuild . && \
+      
+      # Get packages from newly build local image
+      docker run --rm --entrypoint /bin/sh -v /tmp:/tmp localbuild -c '\
+        apk info -v > /tmp/package_versions_new.txt && \
+        sort -o /tmp/package_versions_new.txt  /tmp/package_versions_new.txt && \
+        chmod 777 /tmp/package_versions_new.txt' && \
+      
+      # Gather package information from latest build
+      docker run --rm --entrypoint /bin/sh -v /tmp:/tmp $DOCKERHUB_USER/$DOCKERHUB_REPO:latest -c '\
+        apk info -v > /tmp/package_versions_old.txt && \
+        sort -o /tmp/package_versions_old.txt  /tmp/package_versions_old.txt && \
+        chmod 777 /tmp/package_versions_old.txt' && \
+
+      # Get checksum of old packages
+      OLD_CHECKSUM=$(md5sum /tmp/package_versions_old.txt | cut -f1 -d" ") && \
+      
+      # Get checksum of new packages
+      NEW_CHECKSUM=$(md5sum /tmp/package_versions_new.txt | cut -f1 -d" ") && \
+      
+      # If new checksum is not the same as old checksum, we have new versions
+      if [ "${OLD_CHECKSUM}" != "${NEW_CHECKSUM}" ]; then
+      
+        # Checkout our branch
+        git --git-dir /tmp/$CI_PROJECT_PATH.git checkout -f master && \
+      
+        # Copy the new package versions list to repository
+        cp -f /tmp/package_versions_new.txt /tmp/$CI_PROJECT_PATH/package_versions.txt && \
+        
+        wait && \
+      
+        # Add and commit new file to repository
+        git add package_versions.txt && \
+        git commit -m 'build: Update installed packages.' && \
+      
+        # Push the changes to the remote
+        git push "https://$GIT_USER:$GITLAB_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git" --all && \
+      
+        # Nice
+        echo "Packages updated."
+      else
+        echo "No package updates available."
+      fi
+  after_script:
+    - |-
+      docker image rm -f $DOCKERHUB_USER/$DOCKERHUB_REPO:latest
+      docker image rm -f localbuild
+      rm -rf /tmp/$CI_PROJECT_PATH
+      echo "Done."