🎧 What is Navidrome?
Navidrome is an open source music streaming server that allows you to build your personal music library in the cloud.
- ✅ Pros: Lightweight, mobile-friendly UI, Subsonic API compatible
- 🌟 Features: Real-time transcoding, playlist management, multi-user support
- � vs Plex: Lighter, optimized for music only
—.
🛠 Prerequisites
- install Docker & Docker Compose.
# Ubuntu Example sudo apt update && sudo apt install docker.io docker-compose ```bash # Ubuntu example
- Prepare your music files
- Organize your music folders locally or on your NAS (MP3, FLAC, etc. supported)
—]
📂 Set up project structure
mkdir ~/navidrome && cd ~/navidrome
mkdir data music # Data storage & music directory
touch docker-compose.yml # Create configuration file
—]
🐋 Create Docker Compose file
Example docker-compose.yml
(★explaining required settings★):
version: "3.8"
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
restart: unless-stopped
ports:
- "4533:4533" # Web access ports (host:container)
environment:
- ND_SCANSCHEDULE=1h # scan libraries every hour
- ND_LOGLEVEL=info # Log level setting
- ND_BASEURL=/ # Set path when using proxy
volumes:
- ./data:/data # settings/DB storage location.
- /path/to/your/music:/music:ro # Music folder (read-only)
🔍 Environment variable details
Variable name | Example value | Description |
---|---|---|
ND_PORT |
4533 |
Service port |
ND_ENABLETRANSCODING |
true |
Enable transcoding |
ND_DEFAULTENCODING |
mp3 |
Default encoding format |
ND_SESSIONTIMEOUT |
24h |
Session duration |
—]
🚀 Running & Managing Services
# Run in the background
docker-compose up -d
# Check the logs
docker-compose logs -f
# Stop the service
docker-compose down
Test accessing ####
Access http://서버IP:4533
in a browser
➡️ initial login: admin
/ admin
(⚠️반드시 Change your password!)
—]
🔒 Increase Security (Reverse Proxy)
Example Nginx proxy setup (/etc/nginx/sites-available/navidrome
):
server {
listen 80;
server_name music.yourdomain.com;
location / {
proxy_pass http://localhost:4533;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
# force HTTPS redirect (Let's Encrypt recommended)
return 301 https://$host$request_uri;
}
—]
⚙️ Advanced Setup Tips
-
**Automatically update Add a
watchtower
container:services: watchtower: image: containrrr/watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock
-
backup script
#!/bin/bash tar -czvf navidrome-backup-$(date +%Y%m%d).tar.gz ~/navidrome/data
-
Improve transcoding performance. Add to
docker-compose.yml
:environment: - ND_TRANSCODINGCACHESIZE=1000MB # Increase cache size.
—]
❓ Frequently Asked Questions
**Q1. How do I mount an external music folder?
volumes:
- /mnt/nas/music:/music:ro
**Q2. My playlists are disappearing!
Mapping the ./data
volume is required! Preserve DB and cache storage locations
Q3. Mobile app recommendation? Use Subsonic API compatible apps (e.g. Symfonium Android, play:Sub** iOS)
—.
💡 Conclusion: Why Navidrome?
- Complete autonomy of your personal music library ☁️🔒
- Easy deployment/management based on Docker** ⚡📦
- Cross-platform support** (Web/iOS/Android/Smart TV) 📱💻📺
> “Navadrome is the perfect open source solution for users who want to move their personal music collection to the cloud. Build it in 5 minutes with Docker Compose!” ✨
Check out the official GitHub for the latest version of the configuration files! D