From 5f9e4d23fbc6a10c5cfa4c03d384006f7b1338e7 Mon Sep 17 00:00:00 2001 From: sstent Date: Mon, 27 Apr 2026 08:57:19 -0700 Subject: [PATCH] fix: use --dbpath CLI flag to isolate database on LiteFS mount --- entrypoint.sh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index d66e6e7..daf7280 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -84,19 +84,22 @@ start_app() { # Ensure shared directories exist on persistent host volume mkdir -p /data/plugins /data/cache /data/backup - # Officially supported variables to split the database from the metadata - export ND_DATAFOLDER="/litefs" + # 1. Set the DataFolder to the host mount (supports mkdir) + export ND_DATAFOLDER="/data" + + # 2. Redirect other folders just in case export ND_CACHEFOLDER="/data/cache" export ND_BACKUP_PATH="/data/backup" export ND_PLUGINS_FOLDER="/data/plugins" - # We can still pass the SQLite optimization flags via ND_DBPATH - # but we'll use a relative path so it respects ND_DATAFOLDER - export ND_DBPATH="navidrome.db?cache=shared&_busy_timeout=15000&_journal_mode=WAL&_foreign_keys=on" + # 3. Start Navidrome with an explicit --dbpath flag. + # This is the most authoritative way to set the DB location. + # We include the SQLite connection string for WAL mode and performance. + local DB_STR="/litefs/navidrome.db?cache=shared&_busy_timeout=15000&_journal_mode=WAL&_foreign_keys=on" - /app/navidrome & + /app/navidrome --dbpath "$DB_STR" & NAVIDROME_PID=$! - echo "Navidrome running (PID: $NAVIDROME_PID)" + echo "Navidrome running (PID: $NAVIDROME_PID) with database at /litefs" } # Stop Navidrome