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
66 lines
1.6 KiB
Markdown
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
|