Navidrome + OneDrive Music on Ubuntu (Bare Metal) — Complete Setup Guide
This guide assumes you have Navidrome installed as a systemd service under the user navidrome, and you want to index music synced via the OneDrive client in your home directory.
Problem Context
-
You want Navidrome to read music stored in OneDrive, which is synced under your home folder:
~/OneDriveAlbums/MAIN/Public/Music/Albums -
You tried creating a symlink to
/music:ln -s ~/OneDriveAlbums/MAIN/Public/Music/Albums /music -
Navidrome failed to index the files:
permission denied -
Logs showed:
Error resolving path: lstat /home/ubuntu/OneDriveAlbums: permission denied
Key Causes
-
Navidrome runs as user
navidrome, not your main Ubuntu user. -
Linux requires execute (
x) permission on every parent directory for traversal. -
OneDrive only syncs inside your home directory (
~), so moving files elsewhere prevents syncing. -
ACL tools (
setfacl) were missing initially. -
lstests may appear “denied” at/home/ubuntu, but traversal can still work if properly configured.
Step 1 — Ensure OneDrive Sync Works
-
OneDrive music must remain inside your home directory, e.g.:
/home/ubuntu/OneDriveAlbums/MAIN/Public/Music/Albums -
Ensure files are fully downloaded (not cloud-only placeholders).
-
Verify:
ls ~/OneDriveAlbums/MAIN/Public/Music/Albums
Step 2 — Install ACL support
-
Navidrome requires ACLs to grant access to
navidromewithout opening your whole home directory. -
Install ACL tools:
sudo apt update
sudo apt install acl- Verify:
setfacl --versionStep 3 — Create a symlink for Navidrome
- Keep music in OneDrive, expose it to Navidrome via
/music:
sudo mkdir -p /music
ln -s /home/ubuntu/OneDriveAlbums/MAIN/Public/Music/Albums /music/AlbumsStep 4 — Fix permissions
a) Grant navidrome traversal on home
- Navidrome must be able to enter
/home/ubuntu:
sudo setfacl -m u:navidrome:x /home/ubuntub) Grant navidrome read + traverse on OneDriveAlbums
sudo setfacl -R -m u:navidrome:rx /home/ubuntu/OneDriveAlbums
sudo setfacl -R -d -m u:navidrome:rx /home/ubuntu/OneDriveAlbums-
-R→ recursive -
-d→ default ACL for new files
c) Ensure /music is accessible
sudo chmod 755 /musicStep 5 — Verify permissions
Run these commands as navidrome:
sudo -u navidrome ls /music/Albums
sudo -u navidrome ls "/music/Albums/Frank Ocean - Blonde (FLAC)"✅ If files list properly, Navidrome can read them.
Note:
ls /home/ubuntuwill likely still say “Permission denied”. This is normal; Navidrome only needs traversal, not directory listing.
Step 6 — Configure Navidrome
- Ensure
MusicFolderin Navidrome points to/music:
MusicFolder = "/music"- Restart Navidrome:
sudo systemctl restart navidrome- Trigger a full scan from the web UI.
Step 7 — Confirm logs & streaming
- Monitor logs:
sudo journalctl -u navidrome -f-
Expected: No
permission deniederrors. -
Play a track to verify streaming works.
Summary of Problems & Fixes
| Problem | Cause | Fix |
|---|---|---|
Navidrome cannot read /music/Albums | Navidrome user lacked access to home directories | setfacl -m u:navidrome:x /home/ubuntu |
| Navidrome cannot read OneDrive files | Permissions on OneDrive folder | setfacl -R -m u:navidrome:rx ~/OneDriveAlbums and default ACLs for new files |
setfacl: command not found | ACL tools not installed | sudo apt install acl |
Moving OneDrive folder outside ~ breaks sync | OneDrive client only syncs inside home | Keep folder in ~/OneDriveAlbums |
ls /home/ubuntu still fails as navidrome | Home dir read not granted (only traversal needed) | This is fine; only traversal required |
Best Practices
-
Keep OneDrive music inside
$HOMEto allow syncing. -
Use ACLs to give minimal permissions rather than opening your home directory globally.
-
Use symlinks to expose multiple music sources to
/music. -
For new files added by OneDrive, default ACLs ensure Navidrome can see them automatically.
-
Restart Navidrome after permission changes.
Back References: