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
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
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