diff --git a/defaults/main.yml b/defaults/main.yml
index 26d690939613ebc078b868996bdda715990bb4ee..7748243cc79286ef832ba63c4a3d8d736ecdf646 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -5,7 +5,6 @@ funkwhale_media_path: /srv/funkwhale/data/media
 funkwhale_static_path: /srv/funkwhale/data/static
 funkwhale_music_path: /srv/funkwhale/data/music
 funkwhale_config_path: /srv/funkwhale/config
-funkwhale_frontend_path: /srv/funkwhale/frontend/dist
 funkwhale_username: funkwhale
 funkwhale_database_managed: true
 funkwhale_database_name: funkwhale
diff --git a/molecule/default/playbook.yml b/molecule/default/playbook.yml
index 09a690e664f3e5098f0e054a18738e9214337e83..99584c430249354d312ca78401164ee65bc3e199 100644
--- a/molecule/default/playbook.yml
+++ b/molecule/default/playbook.yml
@@ -8,6 +8,7 @@
       vars:
         funkwhale_hostname: yourdomain.funkwhale
         funkwhale_protocol: https
+        funkwhale_version: 0.19.0-rc2
         funkwhale_env_vars:
           - EMAIL_CONFIG=smtp+tls://user@:password@youremail.host:587
           - DEFAULT_FROM_EMAIL=noreply@yourdomain
diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py
index f918a94318da0a5022ef44fbb014cb1951646407..0f4439cd344264f1e71f13d81ec3c186056f0167 100644
--- a/molecule/default/tests/test_default.py
+++ b/molecule/default/tests/test_default.py
@@ -73,9 +73,9 @@ def test_funkwhale_env_file(host):
         f.contains("EMAIL_CONFIG=smtp+tls://user@:password@youremail.host:587") is True
     )
     assert f.contains("DEFAULT_FROM_EMAIL=noreply@yourdomain") is True
-    assert f.contains("FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/frontend/dist") is True
+    assert f.contains("FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/front/dist") is True
     assert (
-        f.contains("FUNKWHALE_SPA_HTML_ROOT=/srv/funkwhale/frontend/dist/index.html")
+        f.contains("FUNKWHALE_SPA_HTML_ROOT=/srv/funkwhale/front/dist/index.html")
         is True
     )
     assert f.contains("NGINX_MAX_BODY_SIZE=100M") is True
@@ -84,3 +84,16 @@ def test_funkwhale_env_file(host):
     # additional vars
     assert f.contains("ADDITIONAL_VAR=1") is True
     assert f.contains("ADDITIONAL_VAR=2") is True
+
+
+def test_frontend_download(host):
+    f = host.file("/srv/funkwhale/front/dist/index.html")
+
+    assert f.exists is True
+
+
+def test_api_download(host):
+    f = host.file("/srv/funkwhale/api/funkwhale_api/__init__.py")
+
+    assert f.exists is True
+    assert f.contains('__version__ = "0.19.0-rc2"') is True
diff --git a/tasks/funkwhale.yml b/tasks/funkwhale.yml
index 8cd5dc19f88df317095f186596f963b965594ae3..43276152afd83f9070e11262b7c93fe5c412489d 100644
--- a/tasks/funkwhale.yml
+++ b/tasks/funkwhale.yml
@@ -24,9 +24,27 @@
 
 - name: "Create funkwhale configuration file"
   become: true
+  become_user: "{{ funkwhale_username }}"
   template:
     src: env.j2
     dest: "{{ funkwhale_config_path }}/.env"
     owner: "{{ funkwhale_username }}"
   vars:
     secret_key: secret_key
+
+- name: Download front-end files
+  become: true
+  become_user: "{{ funkwhale_username }}"
+  unarchive:
+    src: https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/{{ funkwhale_version }}/download?job=build_front
+    dest: "{{ funkwhale_install_path }}"
+    remote_src: true
+
+
+- name: Download api files
+  become: true
+  become_user: "{{ funkwhale_username }}"
+  unarchive:
+    src: https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/{{ funkwhale_version }}/download?job=build_api
+    dest: "{{ funkwhale_install_path }}"
+    remote_src: true
diff --git a/templates/env.j2 b/templates/env.j2
index 848ccfbc470eb9267c22ed0cc5fa4ac13f5000ef..3e2e587fed4a78076b9aa0178fdd0dee0cc2e6ff 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_frontend_path }}
-FUNKWHALE_SPA_HTML_ROOT={{ funkwhale_frontend_path }}/index.html
+FUNKWHALE_FRONTEND_PATH={{ funkwhale_install_path }}/front/dist
+FUNKWHALE_SPA_HTML_ROOT={{ funkwhale_install_path }}/front/dist/index.html
 {% if funkwhale_nginx_managed %}
 NGINX_MAX_BODY_SIZE={{ funkwhale_nginx_max_body_size }}
 {% endif %}