x-arcane:
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/navidrome.svg
urls:
- https://www.navidrome.org/docs/installation/docker/
services:
navidrome:
image: deluan/navidrome:latest
restart: unless-stopped
ports:
- "${APP_PORT:-4533}:4533"
user: "${PUID:-1000}:${PGID:-1000}"
environment:
TZ: ${TZ:-Etc/UTC}
volumes:
- ${BASE_PATH}/data:/data
- ${MUSIC_PATH}:/music:ro
labels:
com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/navidrome.svg
APP_PORT=4533
BASE_PATH=/data/compose/navidrome
MUSIC_PATH=/data/media/music
PUID=1000
PGID=1000
TZ=Etc/UTC
README
Personal music streaming server with Subsonic-compatible clients.
Deployment
Copy .env.example to .env (or enter its values in Arcane), set paths and credentials, and deploy compose.yaml. Open http://HOST:APP_PORT (default 4533). Use reachable hostnames or host IPs for services in other Compose projects; localhost inside a container refers to that container.
Create the administrator account on first access. MUSIC_PATH is mounted read-only at /music. Create ${BASE_PATH}/data and make it writable by PUID:PGID before deployment; this image uses Compose user, not LinuxServer environment variables.