About this project

gonic is a free-software implementation of the Subsonic server API, designed as a lightweight music streaming server written in Go. It serves your personal music collection to any Subsonic-compatible client (mobile, desktop, web) and runs efficiently on low-power hardware like a Raspberry Pi. Key capabilities include: - Browsing by folder (preserving your directory tree) or by tags (using taglib for MP3, Opus, FLAC, APE, M4A, WAV, etc.) - On-the-fly audio transcoding and caching via FFmpeg - Subsonic jukebox mode for gapless server-side playback - Podcast support with configurable episode purging - Fast scanning: initial scan of ~50k tracks in ~10 minutes, incremental scans in seconds - Multiple users, each with independent transcoding preferences, playlists, and statistics - Last.fm and ListenBrainz scrobbling - Artist similarities and biographies from Last.fm - Multi-valued tag support (genres, artists, album artists, ISRC) with flexible parsing modes - Web interface for configuration (Last.fm setup, user management, scan triggering) - Multiple music folder support with optional aliases - TLS/HTTPS, reverse proxy prefix, and extensive environment-variable configuration Default login is admin/admin (changeable via web UI). Installation options include Docker, systemd, or building from source. The project is tested against a wide range of Subsonic clients including Symfonium, DSub, Ultrasonic, Strawberry, and others.