From a586d60682b34fe574b22d636c92149b812ec2de Mon Sep 17 00:00:00 2001 From: sstent Date: Mon, 27 Apr 2026 08:11:24 -0700 Subject: [PATCH] debug: add verbose logging and error checks to setup_data_dir --- entrypoint.sh | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index ddff041..2a5181b 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -19,13 +19,24 @@ PRIMARY_TAGS='["navidrome","web","traefik.enable=true","urlprefix-/navidrome","t # Ensure Navidrome's data directory exists and has the database symlinked to LiteFS setup_data_dir() { echo "Setting up Navidrome data directory..." - mkdir -p /data + + # Ensure /data exists (should be a volume mount) + if [ ! -d "/data" ]; then + echo "Creating /data directory..." + mkdir -p /data || { echo "ERROR: Failed to create /data"; exit 1; } + fi + + # Check if we can write to /data + touch /data/.write_test && rm /data/.write_test || { echo "ERROR: /data is not writable!"; exit 1; } + # Symlink the database and its sidecar files to the LiteFS mount. - # This ensures SQLite writes go through LiteFS while Navidrome can still - # create subdirectories (like /data/artwork) on the persistent host volume. - ln -sf /litefs/navidrome.db /data/navidrome.db - ln -sf /litefs/navidrome.db-wal /data/navidrome.db-wal - ln -sf /litefs/navidrome.db-shm /data/navidrome.db-shm + # We use -f to overwrite any existing files. + echo "Creating symlinks to LiteFS..." + ln -sf /litefs/navidrome.db /data/navidrome.db || echo "Warning: Failed to symlink navidrome.db" + ln -sf /litefs/navidrome.db-wal /data/navidrome.db-wal || echo "Warning: Failed to symlink navidrome.db-wal" + ln -sf /litefs/navidrome.db-shm /data/navidrome.db-shm || echo "Warning: Failed to symlink navidrome.db-shm" + + echo "Data directory setup complete." } # Backup Database (Only on Primary)