feat: initial implementation of metadata aggregator
- 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
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# gonic
|
||||
|
||||
## Overview
|
||||
|
||||
Free-software Subsonic server API implementation. Music streaming server written in Go, lightweight and suitable for Raspberry Pi.
|
||||
|
||||
## Key Features
|
||||
|
||||
- **API**: Subsonic/OpenSubsonic
|
||||
- **Language**: Go
|
||||
- **Metadata**: Embedded tags, Last.fm, ListenBrainz
|
||||
- **Transcoding**: On-the-fly with ffmpeg
|
||||
- **License**: GPL-3.0
|
||||
|
||||
## Source
|
||||
|
||||
| Resource | URL |
|
||||
|----------|-----|
|
||||
| **Repository** | https://github.com/sentriz/gonic |
|
||||
| **Docker Hub** | https://hub.docker.com/r/sentriz/gonic |
|
||||
|
||||
## Key Features
|
||||
|
||||
- Browsing by folder (keeps tree intact) or by tags
|
||||
- Multi-valued tags support (genres, album artists)
|
||||
- On-the-fly transcoding and caching (requires ffmpeg)
|
||||
- Jukebox mode (server-side playback)
|
||||
- Podcast support
|
||||
- Last.fm and ListenBrainz scrobbling
|
||||
- Artist similarities and biographies from Last.fm
|
||||
- Web interface for configuration
|
||||
|
||||
## Tag Support
|
||||
|
||||
```
|
||||
# Multi-value tag modes
|
||||
GONIC_MULTI_VALUE_MODE=multi # Explicit multi-value fields (genres, album_artists)
|
||||
GONIC_MULTI_VALUE_MODE=delim # Delimiter-separated values
|
||||
```
|
||||
|
||||
## Self-Hosting
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
-p 4747:80 \
|
||||
-v /path/to/music:/music:ro \
|
||||
-v /path/to/data:/data \
|
||||
-v /path/to/podcasts:/podcasts \
|
||||
-v /path/to/cache:/cache \
|
||||
sentriz/gonic
|
||||
```
|
||||
|
||||
## Tested Clients
|
||||
|
||||
- airsonic-refix, amperfy, symfonium, dsub
|
||||
- jamstash, music-assistant, subsonic.el
|
||||
- sublime music, soundwaves, stmp, termsonic
|
||||
- tempus, strawberry, ultrasonic
|
||||
|
||||
## Notes
|
||||
|
||||
- Lightweight Go implementation
|
||||
- MusicBrainz Picard / Beets / wrtag compatible tags
|
||||
- ARM images available for Raspberry Pi
|
||||
- Active development
|
||||
Reference in New Issue
Block a user