diff --git a/defaults/main.yml b/defaults/main.yml
index 4619417bce44b41a7927626e56c0d8111b8c1f61..2a1f3e74a394aab202623011a8c8787183b2f86b 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -8,6 +8,7 @@ funkwhale_config_path: /srv/funkwhale/config
 funkwhale_external_storage_enabled: false
 funkwhale_username: funkwhale
 funkwhale_database_managed: true
+funkwhale_frontend_managed: true
 funkwhale_database_name: funkwhale
 funkwhale_database_user: funkwhale
 funkwhale_nginx_managed: true
diff --git a/tasks/funkwhale.yml b/tasks/funkwhale.yml
index 01d9f44232afa9b2a72134f6d4993e86696450d2..9e6a0f990cc1435c8aae5b199e23589f9c80cce4 100644
--- a/tasks/funkwhale.yml
+++ b/tasks/funkwhale.yml
@@ -70,6 +70,7 @@
 - name: Download front-end files
   become: true
   become_user: "{{ funkwhale_username }}"
+  when: funkwhale_frontend_managed
   unarchive:
     src: https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/{{ funkwhale_version }}/download?job=build_front
     dest: "{{ funkwhale_install_path }}"
diff --git a/tasks/main.yml b/tasks/main.yml
index 6bafe0b0cc91a47543db99ce2482280b2bf00259..867ccc68e32bd53d798372c7fece79c433ccf7ea 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,4 +1,9 @@
 ---
+- name: "Set frontend path"
+  when: funkwhale_frontend_managed
+  set_fact:
+    funkwhale_frontend_path: "{{ funkwhale_install_path }}/front/dist"
+
 - include: packages.yml
   tags: [packages]
 - include: db.yml
diff --git a/templates/env.j2 b/templates/env.j2
index 587e63be80aacb473ab414c1f6bf57a363bab02c..b3654f9e4177313bef339558b52ceafb5a816be9 100644
--- a/templates/env.j2
+++ b/templates/env.j2
@@ -24,8 +24,8 @@ MEDIA_ROOT={{ funkwhale_media_path }}
 STATIC_ROOT={{ funkwhale_static_path }}
 MUSIC_DIRECTORY_PATH={{ funkwhale_music_path }}
 MUSIC_DIRECTORY_SERVE_PATH={{ funkwhale_music_path }}
-FUNKWHALE_FRONTEND_PATH={{ funkwhale_install_path }}/front/dist
-FUNKWHALE_SPA_HTML_ROOT={{ funkwhale_install_path }}/front/dist/index.html
+FUNKWHALE_FRONTEND_PATH={{ funkwhale_frontend_path }}
+FUNKWHALE_SPA_HTML_ROOT={{ funkwhale_frontend_path }}/index.html
 {% if funkwhale_nginx_managed %}
 NGINX_MAX_BODY_SIZE={{ funkwhale_nginx_max_body_size }}
 {% endif %}
diff --git a/templates/nginx.conf.j2 b/templates/nginx.conf.j2
index d917820f625b18fa7ec81a693b9f8fd679168a0f..f1a4cdaa67f18ee7914d3bb512133165fc4e0f5e 100644
--- a/templates/nginx.conf.j2
+++ b/templates/nginx.conf.j2
@@ -38,7 +38,8 @@ server {
     add_header Strict-Transport-Security "max-age=63072000; preload";
     {% endif -%}
 
-    root {{ funkwhale_install_path }}/front/dist;
+
+    root {{ funkwhale_frontend_path }};
 
     # compression settings
     gzip on;
@@ -75,7 +76,7 @@ server {
     }
 
     location /front/ {
-        alias {{ funkwhale_install_path }}/front/dist/;
+        alias {{ funkwhale_frontend_path }}/;
         expires 30d;
         add_header Pragma public;
         add_header Cache-Control "public, must-revalidate, proxy-revalidate";