diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index aa5552e707101636495e7dc7d23727def1c22a44..3882c1d6a5f7085b95224122a13c1f68cbf29cd1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -157,16 +157,17 @@ twine-job:
 pages:
   stage: deploy
   script:
-    - make docs
-    - curl -L --header "JOB-TOKEN:$CI_JOB_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/artifacts/devel/download?job=pages" -o devel.zip
-    - curl -L --header "JOB-TOKEN:$CI_JOB_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/artifacts/master/download?job=pages" -o master.zip
-    - unzip -n '*.zip' || true # Ignore not existing zipfiles
-    - mkdir -p public/"$CI_COMMIT_BRANCH"
-    - mkdir -p public/"$CI_COMMIT_BRANCH"/files
-    - cp -rf doc/_build/html public/"$CI_COMMIT_BRANCH"
-    - cp -rf dist/* public/"$CI_COMMIT_BRANCH"/files/.
+    - make docs # Create documentation
+    - curl -L --header "JOB-TOKEN:$CI_JOB_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/artifacts/devel/download?job=pages" -o devel.zip # Download docs and files from devel branch
+    - curl -L --header "JOB-TOKEN:$CI_JOB_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/artifacts/master/download?job=pages" -o master.zip # Download docs and files from master branch
+    - unzip -n '*.zip' || true # Unzip and ignore not existing zipfiles
+    - mkdir -p public/"$CI_COMMIT_BRANCH" # Create directory for docs if it doesn't exist
+    - mkdir -p public/"$CI_COMMIT_BRANCH"/files # Create directory for files if it doesn't exist
+    - cp -rf doc/_build/html public/"$CI_COMMIT_BRANCH" # Copy docs to shared folder
+    - cp -rf dist/* public/"$CI_COMMIT_BRANCH"/files/. # Copy files to shared folder
+    - 'if [ "$BACKUP_ZIPFILE_URL" != null ]; then curl "$BACKUP_ZIPFILE_URL" --output backup.zip; unzip -n backup.zip; fi' # Download backup files
     - cd public/"$CI_COMMIT_BRANCH"/files
-    - echo "<html><body><h1>Directory listing:</h1>" > ./index.html
+    - echo "<html><body><h1>Directory listing:</h1>" > ./index.html # Create directory listing
     - find -exec echo "<a href='{}'>{}</a><br/>" \; | sort >> ./index.html
     - echo "</body></html>" >> ./index.html
   artifacts:
diff --git a/README.rst b/README.rst
index bfae84ae1052d6b22d6e5d132bd4b9971446469c..f81d1ddc27342d02526b4c941527e1bbe40f5795 100644
--- a/README.rst
+++ b/README.rst
@@ -31,6 +31,13 @@ Changelog
 --------------------------------------------------------------------------------
 
 
+Version 0.1.12
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Released 2022-11-02
+
+-   Allowed adding files from previous versions using Gitlab CI/CD.
+
 Version 0.1.11
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/ipranges.py b/ipranges.py
index 4b341d78234e466e06f3659f0a5b611a8d7befa2..bcbef0a3b1c7172d393f0c57cd98567f8ec8b13d 100644
--- a/ipranges.py
+++ b/ipranges.py
@@ -4,7 +4,7 @@
 # Copyright (c) 2016, CESNET, z. s. p. o.
 # Use of this source is governed by an ISC license, see LICENSE file.
 
-__version__ = '0.1.11'
+__version__ = '0.1.12'
 __author__ = 'Pavel Kácha <pavel.kacha@cesnet.cz>'
 
 import socket