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.'