a1f6701bac
- gRPC service with MusicBrainz provider - PostgreSQL schema with migrations - Service layer with database-first caching - Repository pattern for data access - YAML configuration support - Research documentation for 17 music metadata projects
65 lines
1.5 KiB
Markdown
65 lines
1.5 KiB
Markdown
# Navidrome
|
|
|
|
## Overview
|
|
|
|
Modern music server and streamer compatible with Subsonic/Airsonic clients. Lightweight, fast, and self-contained with web-based UI.
|
|
|
|
## Key Features
|
|
|
|
- **Popularity**: Very high (one of the most popular self-hosted music servers)
|
|
- **API**: OpenSubsonic v1.16.1
|
|
- **Metadata**: Library scans + Last.fm integration
|
|
- **Language**: Go
|
|
- **License**: GPL-3.0
|
|
|
|
## Source
|
|
|
|
| Resource | URL |
|
|
|----------|-----|
|
|
| **Repository** | https://github.com/navidrome/navidrome |
|
|
| **Website** | https://navidrome.org |
|
|
| **Documentation** | https://www.navidrome.org/docs |
|
|
|
|
## Key Features
|
|
|
|
- Very low resource usage (Go binary)
|
|
- Handles large libraries (tested with 900K+ songs)
|
|
- Multi-user support with individual settings
|
|
- Transcoding on-the-fly
|
|
- Last.fm scrobbling
|
|
- Lyrics support (embedded and `.lrc` files)
|
|
- Multiple themes
|
|
|
|
## API Endpoints
|
|
|
|
```bash
|
|
# Subsonic API
|
|
GET /rest/getArtists
|
|
GET /rest/getArtist?id={artistId}
|
|
GET /rest/getAlbum?id={albumId}
|
|
GET /rest/getSong?id={songId}
|
|
GET /rest/search3?query={query}
|
|
```
|
|
|
|
## Self-Hosting
|
|
|
|
```bash
|
|
# Docker
|
|
docker run -d \
|
|
--name navidrome \
|
|
-p 4533:4533 \
|
|
-v /path/to/music:/music:ro \
|
|
-v /path/to/data:/data \
|
|
deluan/navidrome
|
|
|
|
# Or download binary
|
|
# https://github.com/navidrome/navidrome/releases
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Compatible with many Subsonic clients (DSub, Symfonium, Ultrasonic, etc.)
|
|
- Very lightweight (suitable for Raspberry Pi)
|
|
- Web UI included
|
|
- Primary focus is streaming, but provides comprehensive metadata API
|