Main features
- Subsonic API server tested with many third-party clients
- Browsing by folder tree or by tags
- On-the-fly transcoding with a cache
- Subsonic jukebox mode for gapless playback on the server
- Podcasts with optional purge of old episodes
- Multiple users with their own transcoding settings and playlists
- Last.fm and ListenBrainz scrobbling
- Multi-valued genre and artist tags
- Several music folders with optional aliases
- Playlists stored as m3u files
- Web interface for users, scans and Last.fm setup
What gonic does
gonic is a music server that implements the Subsonic API and little else around it. It has no web player of its own: you listen through any Subsonic client, and the small web interface exists for administration, such as managing users, starting scans and connecting Last.fm. The README lists clients it is tested with, including airsonic-refix (a web player), Amperfy, Symfonium, DSub, Sublime Music, Strawberry, Ultrasonic and Music Assistant.
What sets gonic apart from tag-only servers is folder browsing. It keeps your directory tree intact, so a library organized by genre, decade or source folders appears in clients exactly as it is on disk. Browsing by tags is available too, using TagLib for MP3, Opus, FLAC, APE, M4A, WAV and other formats.
Library and listening features
Several music folders can be configured, each with an optional alias so clients show a friendly name. Since version 0.16 gonic can treat genres, artists and album artists as multi-valued, either from proper multi-value tags written by tools like MusicBrainz Picard or beets, or by splitting a field on a delimiter you choose. The album-artist tag is respected so compilation appearances do not crowd the artist list.
Transcoding happens on the fly with FFmpeg, and results are cached; each user sets their own transcoding preferences. gonic also downloads podcasts, can purge episodes nobody has played after a set number of days, and stores playlists as m3u files in a folder you choose. A jukebox mode plays music gaplessly on the server itself through mpv, controlled from a Subsonic client. Plays can be scrobbled to Last.fm and ListenBrainz, and artist biographies and similar artists come from the Last.fm API.
Self-hosting gonic
gonic is a single Go program with a SQLite database. The official Docker image sentriz/gonic is built for amd64, arm64 and 32-bit ARM, which covers Raspberry Pi boards; the wiki also covers building from source with Go 1.25 or later, running under systemd, and distribution packages. FFmpeg is optional and only needed for transcoding; mpv is only needed for jukebox mode. Every setting is available as a command-line flag, an environment variable or a config file entry.
The author reports that a library of about 50,000 tracks takes around ten minutes for the first scan and a few seconds for incremental scans. Automatic scanning is off by default: you enable a scan interval or a file-system watcher. The default login is admin/admin and should be changed right away.
When browsing by folder, gonic expects each album to sit in its own folder, with no other album’s files in it.
Hosted version
The developers do not run a hosted service, so using gonic means running it on your own server, NAS or computer.
Limitations
Without a built-in player, you need to install a Subsonic client on every device, or host a separate web client such as airsonic-refix. Documentation consists of the README and a short wiki. The one-album-per-folder rule may require reorganizing some collections.
Who it suits
gonic suits people who care about their folder structure, already use Subsonic apps, and want a server that runs comfortably on a Raspberry Pi or a small VPS. If you prefer a built-in web player and tag-based browsing, choose Navidrome. Both can stand in for Spotify when the music is your own.
Technical details
Self-hosting needs
- FFmpeg (optional
- for transcoding)
- mpv (optional
- for jukebox)
Built with
- Go
GitHub topics
- airsonic
- docker
- docker-compose
- dsub
- ffmpeg
- go
- golang
- internet-radio
- lastfm
- listenbrainz
- music
- music-server
- music-streaming
- musicbrainz
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.