// the find
sentriz/gonic
music streaming server / free-software subsonic server API implementation
gonic is a self-hosted music server that speaks the Subsonic/Airsonic API, meaning it works out of the box with the large ecosystem of existing Subsonic clients (DSub, Symfonium, Strawberry, etc.). Written in Go, it's genuinely lightweight — runs fine on a Raspberry Pi with a 50k-track library. The target user is someone who wants to own their music server without running a Java pile like the original Airsonic.
SQLite-backed, so no separate database process to babysit — the entire state is one file you can back up with cp. Multi-valued tag support (genres, album artists) is handled thoughtfully with three distinct modes rather than forcing a delimiter hack on everyone. The scanner is actually fast: 10 minutes initial scan for 50k tracks, 6 seconds incremental, which is competitive with anything in this space. Jukebox mode via mpv for gapless server-side playback is a feature most Subsonic implementations skip entirely.
The folder browsing constraint — all files in a folder must be from the same album — will quietly corrupt your browse view if your library doesn't follow that layout, and the error surface is basically nothing. CGo dependency on taglib means cross-compiling is painful and the static binary story falls apart unless you also ship taglib; the ffprobe fallback exists but isn't the default. The admin web UI looks like it hasn't changed since 2020 and does not support things like bulk user management or library health reports. No support for OpenSubsonic extensions beyond what was already in the Airsonic fork, so newer clients that rely on OS extensions may degrade silently.