Files
metadata-agregator/docs/research/gonic/README.md
T
Alexander a1f6701bac 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
2026-04-28 16:28:53 +02:00

66 lines
1.6 KiB
Markdown

# 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