From 6e00b78219653a6210ff7bea8a389e5c447433e8 Mon Sep 17 00:00:00 2001 From: Honey Date: Sat, 25 Apr 2026 17:37:30 +0200 Subject: [PATCH] Fix MUSIC_PATH direct mount + backend URL prefill - MUSIC_PATH is now used 1:1 inside the container (no /music remapping) - config.js 404-safe with inline fallback defaults - Prefill uses .trim() so empty strings don't overwrite fields Co-Authored-By: Claude Sonnet 4.6 --- .env.example | 5 +++-- app.js | 4 ++-- docker-compose.yml | 6 +++--- index.html | 3 ++- sw.js | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.env.example b/.env.example index 065200d..25a2550 100644 --- a/.env.example +++ b/.env.example @@ -4,8 +4,9 @@ NAVIDROME_URL=https://music.yourdomain.com BACKEND_URL=https://novasonic-api.yourdomain.com -# Path to your Navidrome music library on the host -MUSIC_PATH=/path/to/your/navidrome/music +# Absolute path to your Navidrome music library on the host +# This exact path is used inside the container — no subdirectory is added +MUSIC_PATH=/srv/navidrome/music AUDIO_FMT=mp3 # mp3 | flac | opus | best AUDIO_QUALITY=0 # 0 = best quality diff --git a/app.js b/app.js index 55a82d6..820c635 100644 --- a/app.js +++ b/app.js @@ -111,8 +111,8 @@ window.addEventListener('load',()=>{ const saved=localStorage.getItem('ns_cfg'); if(saved){cfg=JSON.parse(saved);startApp()} // Autofill URLs from Docker env (set via config.js) - if(window.NS_SERVER_URL){const el=document.getElementById('srv-url');if(el&&!el.value)el.value=window.NS_SERVER_URL;} - if(window.NS_BACKEND_URL){const el=document.getElementById('backend-url');if(el&&!el.value)el.value=window.NS_BACKEND_URL;} + if(window.NS_SERVER_URL?.trim()){const el=document.getElementById('srv-url');if(el&&!el.value)el.value=window.NS_SERVER_URL.trim();} + if(window.NS_BACKEND_URL?.trim()){const el=document.getElementById('backend-url');if(el&&!el.value)el.value=window.NS_BACKEND_URL.trim();} document.getElementById('srv-pass').addEventListener('keydown',e=>{if(e.key==='Enter')doConnect()}); audio.addEventListener('timeupdate',updateProgress); audio.addEventListener('ended',onEnded); diff --git a/docker-compose.yml b/docker-compose.yml index 48a1172..d0ab856 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,12 +19,12 @@ services: working_dir: /app volumes: - ./backend/novasonic-server.js:/app/novasonic-server.js:ro - - ${MUSIC_PATH:-/music}:/music # your Navidrome music library + - ${MUSIC_PATH}:${MUSIC_PATH} # exact path from .env, no remapping ports: - - "3700:3700" # route this port through your reverse proxy + - "3700:3700" # route this port through your reverse proxy environment: - PORT=3700 - - MUSIC_PATH=/music + - MUSIC_PATH=${MUSIC_PATH} # same path inside the container - AUDIO_FMT=${AUDIO_FMT:-mp3} - AUDIO_QUALITY=${AUDIO_QUALITY:-0} - MAX_PARALLEL=${MAX_PARALLEL:-2} diff --git a/index.html b/index.html index c641195..1e32cbc 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,8 @@ - + + diff --git a/sw.js b/sw.js index a9627b1..b3084e2 100644 --- a/sw.js +++ b/sw.js @@ -1,4 +1,4 @@ -const CACHE = 'ns-v17'; +const CACHE = 'ns-v18'; const PRECACHE = ['/', 'index.html', 'styles.css', 'app.js', 'sw.js', 'manifest.json', 'icon.svg']; const SKIP_URLS = ['/rest/stream', '/rest/download', '/config.js'];