diff --git a/README.md b/README.md
index 3f3ebcdd773bc1cb01765fa97636f11e5a648613..85976349076c0a65a20b1100c475fb609588ae78 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,9 @@ external_url: 'https://localhost'
 # external url for gitlab pages, set to Null to disable
 pages_external_url: ~
 
+# alternative storage path for registry, set to Null to disable
+registry_path: ~
+
 # external url for the container registry, set to Null to disable
 registry_external_url: ~
 
diff --git a/defaults/main.yml b/defaults/main.yml
index a7ef42ee3c73fc54206eb60df07a29fa8836a16f..07f9ac53a9896870e0dcd9f7620b5637252d5980 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -6,6 +6,7 @@ gitlab:
     external_url: 'https://localhost'
     path: '/var/opt/gitlab/backups'
   pages_external_url: ~
+  registry_path: ~
   registry_external_url: ~
   gitlab_ssh_host: 'localhost'
   gitlab_shell_ssh_port: 22
diff --git a/templates/gitlab.rb.j2 b/templates/gitlab.rb.j2
index cb14f3f48400f59fbf9ef931fa7e901e8b7466b5..e8e9cb104489c65a0be16802a7ab0de5b8e95ed6 100644
--- a/templates/gitlab.rb.j2
+++ b/templates/gitlab.rb.j2
@@ -651,6 +651,9 @@ gitlab_rails['registry_enabled'] = true
 # gitlab_rails['registry_port'] = "5000"
 # gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"
 
+{% if gitlab.registry_path %}
+gitlab_rails['registry_path'] = "{{ gitlab.registry_path }}"
+
 # Notification secret, it's used to authenticate notification requests to GitLab application
 # You only need to change this when you use external Registry service, otherwise
 # it will be taken directly from notification settings of your Registry