diff --git a/software/caddy-frontend/buildout.hash.cfg b/software/caddy-frontend/buildout.hash.cfg
index f6b780dfc8cb288772972606b904f6137e059322..9c5d5f600aa95e9123e89fc06a86f39d672ac2a3 100644
--- a/software/caddy-frontend/buildout.hash.cfg
+++ b/software/caddy-frontend/buildout.hash.cfg
@@ -18,7 +18,7 @@ md5sum = 906e5bd66b1265b8109a86b6ab46e91f
 
 [template-apache-frontend]
 filename = instance-apache-frontend.cfg
-md5sum = 3490155542f31cefd5c3f5aea8767586
+md5sum = 2db996d2c48c0fe03c05f051e7a914bc
 
 [template-apache-replicate]
 filename = instance-apache-replicate.cfg.in
@@ -82,7 +82,7 @@ md5sum = 117238225b3fc3c5b5be381815f44c67
 
 [template-nginx-configuration]
 filename = templates/nginx.cfg.in
-md5sum = eae367cbf665816fbfe274026c848075
+md5sum = 314a55a75b80009123df310b313a5483
 
 [template-nginx-eventsource-slave-virtualhost]
 filename = templates/nginx-eventsource-slave.conf.in
diff --git a/software/caddy-frontend/instance-apache-frontend.cfg b/software/caddy-frontend/instance-apache-frontend.cfg
index 06af82ba06ffb749806a3107e2c4d4938db8b30b..5e7a487a5f3c7243006d0a9162a22e032ed7cfcf 100644
--- a/software/caddy-frontend/instance-apache-frontend.cfg
+++ b/software/caddy-frontend/instance-apache-frontend.cfg
@@ -683,7 +683,7 @@ rendered = $${directory:bin}/nginx-wrapper
 mode = 0700
 extra-context =
     raw caddy ${caddy:output}
-    key conf nginx-configuration:output
+    key conf dynamic-nginx-frontend-template:rendered
     key log nginx-configuration:error_log
     key grace instance-parameter:configuration.mpm-graceful-shutdown-timeout
 
@@ -692,11 +692,20 @@ recipe = slapos.cookbook:wrapper
 command-line = $${nginx-wrapper:rendered} -pidfile $${nginx-configuration:pid-file}
 wrapper-path = $${directory:service}/frontend_nginx
 
-[nginx-configuration]
-recipe = slapos.recipe.template
-url = ${template-nginx-configuration:output}
-output = $${directory:etc}/nginx.cfg
+[dynamic-nginx-frontend-template]
+< = jinja2-template-base
+template = ${template-nginx-configuration:output}
+rendered = $${directory:etc}/nginx.cfg
 mode = 0600
+extra-context =
+  key port nginx-configuration:port
+  key ssl_certificate nginx-configuration:ssl_certificate
+  key ssl_key nginx-configuration:ssl_key
+  key local_ip nginx-configuration:local_ip
+  key plain_port nginx-configuration:plain_port
+  key slave_configuration_directory nginx-configuration:slave-configuration-directory
+
+[nginx-configuration]
 access_log = $${directory:log}/nginx-access.log
 error_log = $${directory:log}/nginx-error.log
 ip = $${slap-network-information:global-ipv6}
diff --git a/software/caddy-frontend/templates/nginx.cfg.in b/software/caddy-frontend/templates/nginx.cfg.in
index 4890f04e206da7f1b652c1c440fb2006adb0f0c7..499eac526dd2744ac5634d424404d15eb96af975 100644
--- a/software/caddy-frontend/templates/nginx.cfg.in
+++ b/software/caddy-frontend/templates/nginx.cfg.in
@@ -1,14 +1,14 @@
 # Dummy site for starting Caddy correctly
-https://www.example.org:$${nginx-configuration:port} {
-  tls $${nginx-configuration:ssl_certificate} $${nginx-configuration:ssl_key}
-  bind $${nginx-configuration:local_ip}
+https://www.example.org:{{ port }} {
+  tls {{ ssl_certificate }} {{ ssl_key }}
+  bind {{ local_ip }}
 # Serve an error 204 (No Content) for favicon.ico
 status 204 /favicon.ico
 status 404 /
 }
 
-http://www.example.org:$${nginx-configuration:plain_port} {
-  bind $${nginx-configuration:local_ip}
+http://www.example.org:{{ plain_port }} {
+  bind {{ local_ip }}
 # Serve an error 204 (No Content) for favicon.ico
 status 204 /favicon.ico
 status 404 /
@@ -70,4 +70,4 @@ status 404 /
 # TODO-Caddy   proxy_temp_path $${directory:varnginx} 1 2;
 # TODO-Caddy }
 
-import $${nginx-configuration:slave-configuration-directory}/*.conf
+import {{ slave_configuration_directory }}/*.conf