diff --git a/deploy/Caddyfile.template b/deploy/Caddyfile.template
new file mode 100644
index 0000000000000000000000000000000000000000..55c675620b842562609adf81cea619ac68fd6bc9
--- /dev/null
+++ b/deploy/Caddyfile.template
@@ -0,0 +1,57 @@
+# This template makes the funkwhale web-interface accessible
+# Music-streaming is still broken
+yourdomain.funkwhale {
+  log {
+    output file /var/log/caddy/funkwhale.json
+  }
+
+  encode gzip
+
+  # Not quite sure on this
+  rewrite /rest/* /api/subsonic/{path}
+
+  route /front/* {
+    uri strip_prefix /front
+    root * {$FUNKWHALE_FRONTEND_PATH:/srv/funkwhale/front/dist}
+    file_server
+  }
+
+  route /staticfiles/* {
+    # django static files
+    uri strip_prefix /staticfiles
+    root * {$STATIC_ROOT:/srv/funkwhale/data/static}
+    file_server
+  }
+
+  ## location /media/ {
+  ##   alias ${MEDIA_ROOT}/;
+  ## }
+
+  ## location /_protected/media {
+  ##   # this is an internal location that is used to serve
+  ##   # audio files once correct permission / authentication
+  ##   # has been checked on API side
+  ##   internal;
+  ##   alias   ${MEDIA_ROOT};
+  ## }
+
+  ## # Comment the previous location and uncomment this one if you're storing
+  ## # media files in a S3 bucket
+  ## # location ~ /_protected/media/(.+) {
+  ## #   internal;
+  ## #   # Needed to ensure DSub auth isn't forwarded to S3/Minio, see #932
+  ## #   proxy_set_header Authorization "";
+  ## #   proxy_pass $1;
+  ## # }
+
+  ## location /_protected/music {
+  ##   # this is an internal location that is used to serve
+  ##   # audio files once correct permission / authentication
+  ##   # has been checked on API side
+  ##   # Set this to the same value as your MUSIC_DIRECTORY_PATH setting
+  ##   internal;
+  ##   alias   ${MUSIC_DIRECTORY_SERVE_PATH};
+  ## }
+
+  reverse_proxy 127.0.0.1:5000
+}