diff --git a/manifests/init.pp b/manifests/init.pp
index 7a38b2eabfaba1d6a08772852b822a768869e3da..f73e76ad63a28e5f07f96bf7f906e56951b751ef 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -25,6 +25,7 @@ class schleuder(
   $web_api_key            = undef,
   $export_web_api_key     = false,
   $gpg_use_tor            = false,
+  $gpg_keyserver          = undef,
 ) {
   case $facts['operatingsystem'] {
     'CentOS': { include ::schleuder::centos }
diff --git a/templates/schleuder.yml.erb b/templates/schleuder.yml.erb
index 367789e670030a7234bdcbbba304c615c80afdba..dfc52e8bd4dceedc9accd7bbec8940306cf4894a 100644
--- a/templates/schleuder.yml.erb
+++ b/templates/schleuder.yml.erb
@@ -17,7 +17,14 @@ log_level: warn
 # If you have gnupg 2.1 and TOR running locally, use a onion-keyserver:
 #keyserver: hkp://jirk5u4osbsr34t5.onion
 # The default works for all supported versions of gnupg:
-keyserver: pool.sks-keyservers.net
+#keyserver: pool.sks-keyservers.net
+keyserver: <%= if scope['schleuder::gpg_keyserver']
+     scope['schleuder::gpg_keyserver']
+   elsif scope['schleuder::gpg_use_tor']
+     'hkp://jirk5u4osbsr34t5.onion'
+   else
+     'pool.sks-keyservers.net'
+   end %>
 
 # who receives global schleuder notifications
 superadmin: <%= scope['schleuder::superadmin'] %>