diff --git a/changes/notes.rst b/changes/notes.rst
index 3ffbcfd25c864c095e5f12215b260574ec22dd44..754d60f30f0a1f6d1efd7fe9255aa0985ee6dc63 100644
--- a/changes/notes.rst
+++ b/changes/notes.rst
@@ -13,6 +13,21 @@ This release includes a full redesign of our navigation, player and queue. Overa
 a better, less confusing experience, especially on mobile devices. This redesign was suggested
 14 months ago, and took a while, but thanks to the involvement and feedback of many people, we got it done!
 
+Progressive web app [Manual change suggested, non-docker only]
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+We've made Funkwhale's Web UI a Progressive Web Application (PWA), in order to improve the user experience
+during offline use, and on mobile devices.
+
+In order to fully benefit from this change, if your pod isn't deployed using Docker, ensure
+the following instruction is present in your nginx configuration::
+
+    location /front/ {
+        # Add the following line in the /front/ location
+        add_header Service-Worker-Allowed "/";
+    }
+
+
 Improved search performance
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/deploy/docker.nginx.template b/deploy/docker.nginx.template
index ced42201a076645831a70d1037c23ba53a2c9641..b5f01eaec2d15ce481228e51d685320ace84b8c5 100644
--- a/deploy/docker.nginx.template
+++ b/deploy/docker.nginx.template
@@ -40,7 +40,7 @@ server {
     location /front/ {
         add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; object-src 'none'; media-src 'self' data:";
         add_header Referrer-Policy "strict-origin-when-cross-origin";
-
+        add_header Service-Worker-Allowed "/";
         add_header X-Frame-Options "ALLOW";
         alias /frontend/;
         expires 30d;
diff --git a/deploy/nginx.template b/deploy/nginx.template
index 3dc6ccf8aa49fdd123cf0df109f7fc833aa1b38c..aaa3cec7dc1af8dce7270ba2aeb8c3e900243732 100644
--- a/deploy/nginx.template
+++ b/deploy/nginx.template
@@ -86,7 +86,7 @@ server {
     location /front/ {
         add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; object-src 'none'; media-src 'self' data:";
         add_header Referrer-Policy "strict-origin-when-cross-origin";
-
+        add_header Service-Worker-Allowed "/";
         add_header X-Frame-Options "SAMEORIGIN";
         alias ${FUNKWHALE_FRONTEND_PATH}/;
         expires 30d;
diff --git a/docker/nginx/conf.dev b/docker/nginx/conf.dev
index 1807dc08827d043335bbe881c354cbeb655e4727..cb22ec56801f26e46ab7edb2788cf56df169fc4f 100644
--- a/docker/nginx/conf.dev
+++ b/docker/nginx/conf.dev
@@ -76,6 +76,7 @@ http {
             add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; object-src 'none'; media-src 'self' data:";
             add_header Referrer-Policy "strict-origin-when-cross-origin";
             add_header X-Frame-Options "SAMEORIGIN";
+            add_header Service-Worker-Allowed "/";
             # uncomment the following line and comment the proxy-pass one
             # to use the frontend build with "yarn build"
             #alias /frontend/dist/;
diff --git a/front/src/registerServiceWorker.js b/front/src/registerServiceWorker.js
index 9e689f5b85d068093e807a89a3380238b4292807..9d76479f7a6e65783bf56626a80513eaa091b2f9 100644
--- a/front/src/registerServiceWorker.js
+++ b/front/src/registerServiceWorker.js
@@ -6,6 +6,7 @@ import store from './store'
 
 if (process.env.NODE_ENV === 'production') {
   register(`${process.env.BASE_URL}service-worker.js`, {
+    registrationOptions: { scope: '/' },
     ready () {
       console.log(
         'App is being served from cache by a service worker.'