Gonic
Lightweight Subsonic-compatible music streaming server
Gonic is a fast, lightweight music streaming server compatible with the Subsonic API. Written in Go, it works well on low-power hardware and supports podcasts and multiple music folders.
Key features
- Subsonic API compatible
- Very low resource use
- Podcast support
- Multiple music folders
Pros & cons
Strengths
- Runs on Raspberry Pi easily
- Works with many Subsonic clients
Trade-offs
- No built-in web player polish
- Minimal admin UI
Gonic replaces
Last reviewed Sep 13, 2026 · 901 words
On a Raspberry Pi Zero 2 with 512 MB of RAM, Gonic serves a 15,000-track FLAC library to a phone over the Subsonic API and leaves 400 MB free. That is the pitch. It is a single Go binary with a SQLite database, no web player worth mentioning, a two-page admin panel, and a strict opinion about how your music folders must be laid out. It has 2,541 stars, is GPL-3.0, and is the tool I recommend to people who already own a good Subsonic client and want the smallest possible thing behind it.
Subsonic is the interface, so choose the client first
Gonic has no listening UI of its own. It implements the Subsonic API, the de facto standard for self-hosted music, and every listening feature you see comes from the app you connect. The good ones on Android are Symfonium and Tempo; on desktop, Feishin is a Spotify-like client that pairs well; on iOS, play:Sub and Amperfy. Pick the client by which platform you listen on, then install Gonic to feed it. Scrobbling to Last.fm and ListenBrainz is built into the server, so listens count regardless of client.
This is also where Gonic diverges from Navidrome, the far larger project in the same space. Navidrome ships a full web player and per-user libraries and is the safer default for most people; the Navidrome walkthrough covers that path. Gonic is for the subset who never open a browser to listen and want the lightest possible daemon.
Folder layout is the rule that trips everyone
Gonic browses by folder, not by tag, and it expects exactly artist/album/tracks. A library organised as one flat folder, or as genre/artist/album, will show up wrong or not at all. Compilations belong under an artist folder named for the compilation or under "Various Artists"; multi-disc albums go in one album folder with disc numbers in the tags. This is a deliberate design that makes scans fast and predictable, and it is the number one reason people conclude Gonic is broken. Spend an hour with a tagger and a rename script before the first scan and the rest of the setup is trivial.
Multiple music folders are supported, so a "lossless" and a "lossy" tree can be served side by side, and podcasts get their own path with RSS subscriptions managed from a client.
The whole deployment is five environment variables
services:
gonic:
image: sentriz/gonic:latest
ports:
- "4747:80"
environment:
- TZ=Europe/London
- GONIC_MUSIC_PATH=/music
- GONIC_PODCAST_PATH=/podcasts
- GONIC_PLAYLISTS_PATH=/playlists
- GONIC_CACHE_PATH=/cache
volumes:
- ./gonic-data:/data
- /srv/music:/music:ro
- ./podcasts:/podcasts
- ./playlists:/playlists
- ./cache:/cache
restart: unless-stopped
Browse to port 4747, log in as admin/admin, change the password, trigger a scan, and it is running. Scans are incremental after the first one, and a scan of 15,000 tracks finishes in a few minutes on a Pi 4. There is a scan-on-interval setting and a watch mode for libraries that change often. Everything Gonic knows lives in one SQLite file under /data; back that up and the music directory and you can rebuild the server in 1 minute.
Transcoding profiles are per user and per client
The feature that quietly makes Gonic excellent on a cellular connection is per-client transcoding. In the admin panel you create a profile: Opus at 128 kbps for the phone, no transcoding for the desktop, and Gonic serves the right stream depending on which client is asking. Encodes are cached at GONIC_CACHE_PATH, so a frequently played album is transcoded once. Give the cache 5 to 10 GB and it saves a lot of ffmpeg on a low-power box. Jukebox mode, playing through the server's own audio output via mpv, exists for people who want a headless player in a room; it is a bonus, not the main event.
Playlists are M3U files on disk, editable from clients or from a text editor, which suits the same crowd that likes folder-based browsing.
What it gives up
No web player to speak of, no user-facing library management, no artwork fetching beyond what is embedded or sitting in the folder, no smart playlists, and a bare admin UI. Multi-user exists, with per-user scrobbling and playlists, but there is no per-user library isolation. Navidrome does all of those, and Airsonic Advanced does most of them at a higher resource cost. If any of them are requirements, Gonic is not your server. The trade is deliberate: it is about 30 MB of RAM at idle, roughly a fifth of Navidrome's, and has almost nothing to go wrong.
What I'd do
Tidy the library to artist/album, run the compose file above, and set two transcoding profiles: Opus 128 for mobile, raw for everything else. Put Symfonium on the phone and Feishin on the desktop, and let scrobbling run to ListenBrainz. If after a month you catch yourself wanting a web player or a partner wants their own library view, move to Navidrome; the clients and playlists carry over because both speak Subsonic. For a solo listener on a small box, Gonic is the one I would leave running, and the one that will still be running when you have forgotten it is there.
Compare Gonic
40 head-to-head comparisons.
- Gonic vs Jellyfin
- Gonic vs Navidrome
- Gonic vs Kodi
- Gonic vs Koel
- Gonic vs Stremio Web
- Gonic vs Stash
- Gonic vs Feishin
- Gonic vs Streama
- Gonic vs Mopidy
- Gonic vs Tautulli
- Gonic vs Lidarr
- Gonic vs Emby
- Gonic vs Black Candy
- Gonic vs Finamp
- Gonic vs Dim
- Gonic vs Ombi
- Gonic vs Ampache
- Gonic vs Polaris
- Gonic vs Funkwhale
- Gonic vs Universal Media Server
- Gonic vs Fladder
- Gonic vs OwnTone
- Gonic vs Kyoo
- Gonic vs mStream
- Gonic vs Reiverr
- Gonic vs Tempo
- Gonic vs Swing Music
- Gonic vs Airsonic
- Gonic vs Sonixd
- Gonic vs Lyrion Music Server
- Gonic vs Musicn
- Gonic vs Amperfy
- Gonic vs LMS
- Gonic vs Airsonic-Advanced
- Gonic vs Gerbera
- Gonic vs Stremio Server
- Gonic vs Olaris
- Gonic vs MiniDLNA
- Gonic vs Rygel
- Gonic vs tinyMediaManager
Similar media servers apps
Jellyfin
Media ServersFree software media system for streaming your library
Replaces Plex, Emby
qBittorrent
Media ServersBittorrent client that aims to be a good alternative to all other
Replaces µTorrent
SRS
Media ServersA simple, high efficiency and real-time video server, supports RTMP,
Navidrome
Media ServersModern music streaming server for your collection
Replaces Spotify
Kodi
Media ServersOpen-source home theater and media center
Replaces Plex
Koel
Media ServersPersonal music streaming server with an elegant interface
Replaces Spotify