Complete Guide to Self-Hosted Music Servers: A Cross-Platform Navidrome Alternative to Spotify

A complete guide to building a self-hosted music server with Navidrome as a cross-platform Spotify replacement.
This guide compares self-hosted music server options like Navidrome, Jellyfin, and Funkwhale for replacing Spotify. It covers server selection, cross-platform client choices, secure remote access via Tailscale or reverse proxies, and music library metadata management with beets—all optimized for running on older hardware like a repurposed ThinkPad.
From Spotify Subscriptions to a Self-Hosted Music Library
As streaming subscription costs continue to rise year after year, more and more music enthusiasts are reconsidering the value of actually "owning" their music. A Reddit user posted a highly representative use case: they had an idle old ThinkPad they planned to repurpose as a home server, and wanted to use the opportunity to ditch their Spotify subscription. Over the years, this user had been collecting and ripping CDs, accumulating a substantial local music library.
Their core requirements were crystal clear: a software solution that could connect to the ThinkPad server, supporting both LAN playback and remote internet access; clients needed to cover iPhone, Android, macOS, Windows, and Linux Mint. Ideally, the solution would offer excellent native apps across platforms, or a web application with near-native experience (with details like media key shortcuts working properly).
This use case actually represents the most typical scenario in the self-hosted music service space, and a challenge shared by many home media server users.
Comparison of Major Self-Hosted Music Server Solutions
For cross-platform self-hosted music streaming needs, the open-source community has developed several mature solutions, each with different strengths in functionality and user experience.
Navidrome: The Lightweight and Efficient Top Pick
For the type of use case described in this article, Navidrome is consistently one of the most recommended solutions in the community. Built on the Subsonic API standard and written in Go, it has extremely low resource consumption, making it ideal for running on older, resource-limited devices like a ThinkPad.
The Subsonic API is a set of RESTful interface specifications originally defined by the Subsonic media server, allowing third-party clients to interact with servers through standardized HTTP requests for music browsing, searching, streaming, playlist management, and more. Since Subsonic itself later moved to a closed-source paid model, the community forked several open-source alternatives, all maintaining compatibility with this API. In 2023, the community further introduced the OpenSubsonic specification, aiming to unify extended features and resolve some legacy issues in the original API. It's precisely this API ecosystem that allows users to freely choose their server software without worrying about client compatibility.
Navidrome's choice of Go wasn't accidental. Go compiles to a single static binary, requiring no additional runtime environment for deployment—extremely friendly for resource-constrained older hardware. Go's goroutine concurrency model makes it highly efficient at handling multiple concurrent streaming requests, while memory usage is far lower than JVM-based Java applications. By comparison, the traditional Airsonic built on Java/Spring requires the JVM alone to potentially consume hundreds of MB of memory, whereas Navidrome typically maintains 50-100MB of memory usage even when managing a library of tens of thousands of songs.
Navidrome's greatest advantage lies in its ecosystem compatibility. Thanks to Subsonic/OpenSubsonic API support, users can find corresponding third-party clients on virtually every platform—play:Sub and Amperfy on iOS, Symfonium, DSub, and Subtracks on Android, and desktop access through the web interface or clients like Sonixd and Feishin. This "unified server, diverse clients" architecture perfectly addresses the cross-platform requirement.
Jellyfin: The All-in-One Media Center Approach
If users want to manage not only music but potentially expand to video, photos, and other media content in the future, Jellyfin is a more comprehensive choice. As a completely open-source media server with no paywalls whatsoever, Jellyfin provides official multi-platform clients, including mobile apps, a web interface, and various smart TV applications.
Jellyfin's history is worth understanding: it was forked by the community from the last open-source version of the Emby media server after Emby moved to a closed-source/paid model in 2018. Unlike the commercial competitor Plex, Jellyfin has no paid features, requires no account registration, and doesn't depend on external servers for authentication. All data and processing happens entirely on the user's own hardware. This fully self-sovereign philosophy makes it one of the flagship projects in the self-hosting community, though it also means it lacks Plex's commercially polished clients and cloud services like CDN acceleration.
That said, it's worth noting that Jellyfin is positioned as a comprehensive media server, and its music playback experience feels somewhat bloated compared to music-focused Navidrome. For the pure "I just want to replace Spotify for listening to music" use case, there may be considerable feature redundancy.
Airsonic-Advanced and Funkwhale
Airsonic-Advanced is a continuation of the veteran Subsonic fork—feature-rich but Java-based, with relatively higher resource consumption. Funkwhale takes a social music-sharing approach, supporting federation (ActivityPub), suited for users with sharing and discovery needs, though with a higher configuration barrier.
The ActivityPub protocol used by Funkwhale is a W3C-standardized decentralized social networking protocol, most famously used by Mastodon (microblogging). In the music context, ActivityPub allows users across different Funkwhale instances to follow each other, share music libraries and playlists, forming a decentralized music social network. Each instance operates independently but interconnects through the protocol, similar to email systems—you don't need to use the same service provider as the other person to communicate. This architecture fundamentally avoids the problem of single-platform monopoly.
Remote Access and Security Configuration
A key requirement in the user's needs is "both LAN playback and internet access." This actually involves the most security-sensitive aspect of self-hosting—exposing a home server to the public internet.
Reverse Proxy and HTTPS Encryption
The most common approach is using a reverse proxy (such as Nginx, Caddy, or Traefik) combined with a domain name and HTTPS certificate. Caddy is particularly beginner-friendly thanks to its automatic Let's Encrypt certificate provisioning. Through a reverse proxy, Navidrome's web service can be securely exposed to the internet while enjoying encrypted transport protection.
Let's Encrypt is a free certificate authority operated by the Internet Security Research Group (ISRG). Since its launch in 2015, it has issued billions of certificates, dramatically lowering the barrier to HTTPS deployment. Its core mechanism, the ACME (Automatic Certificate Management Environment) protocol, allows server software to automatically complete domain validation and certificate issuance without human intervention. Certificates have a 90-day validity period, designed to encourage automated renewal. Caddy has an ACME client built in—upon first launch, it automatically requests a certificate and configures a renewal cron job. This is why it's considered the most beginner-friendly option: the entire HTTPS configuration process requires virtually zero manual effort.
Tunnel Alternatives for Remote Access
If your home network doesn't have a public IP, or you'd prefer not to open ports directly, tools like Tailscale and ZeroTier—WireGuard-based virtual networking solutions—are a more secure choice. They establish encrypted virtual LANs between devices, letting a remote phone access the ThinkPad server as if it were on the home network, with no port forwarding required and significantly improved security.
WireGuard, which underpins both Tailscale and ZeroTier, is a modern VPN protocol formally released by security researcher Jason Donenfeld in 2018 and merged into the Linux kernel. Compared to traditional OpenVPN or IPSec, WireGuard's codebase is only about 4,000 lines (OpenVPN exceeds 100,000), greatly reducing the difficulty of security auditing. It uses the Noise protocol framework for key exchange and ChaCha20 for data encryption, with connection establishment typically in the millisecond range. Tailscale adds NAT traversal, key distribution, and access control layers on top, eliminating the need for users to manually manage keys and routing configuration.
For scenarios where family members have limited technical ability, Tailscale is likely the best solution balancing security and ease of use.
The Hidden Challenge of Music Library Metadata Management
To unlock the full potential of a self-hosted solution with a CD-ripped music library, metadata normalization is a prerequisite that cannot be overlooked. Players rely on ID3 tag information—album, artist, cover art, year, etc.—to organize the music library. Poorly ripped files can result in a chaotic library structure.
ID3 tags are metadata containers embedded in MP3 files, with ID3v2.3 and ID3v2.4 being the most widely used versions today. For FLAC format, Vorbis Comments serve as the metadata container. These tags can store far more than basic artist/album/track name information—they also include lyrics, ReplayGain volume normalization data, MusicBrainz unique identifiers, multi-artist information, and more. When server software like Navidrome first scans a music library, it parses all files' metadata and builds a database index. All subsequent searching, browsing, and categorization is based on these tags rather than file paths. Therefore, tag quality directly determines how well the music library is organized.
The community widely recommends beets, a command-line tool for organizing music libraries. It can automatically match metadata from databases like MusicBrainz, fill in cover art, and standardize naming conventions. MusicBrainz is an open music encyclopedia database maintained by the MetaBrainz Foundation, containing structured metadata for over 2 million artists and 3 million albums. When importing music, beets calculates each file's acoustic fingerprint (AcoustID) and queries the MusicBrainz database—even if filenames are completely garbled or ID3 tags are missing, it can accurately match the correct album and track information through the audio content's inherent characteristics. After matching, beets automatically writes normalized tags, downloads album artwork, and renames and moves files according to user-defined templates. While the learning curve is somewhat steep, for users with large collections of ripped CDs, the one-time organization investment dramatically improves the subsequent usage experience.
Recommendations for Choosing a Self-Hosted Music Server
Overall, for the specific scenario of "replacing Spotify, cross-platform, older hardware, family use," a recommended tech stack is:
- Server: Navidrome (lightweight, Subsonic-compatible, rich cross-platform client ecosystem)
- Remote Access: Tailscale (secure and easy) or Caddy reverse proxy (requires a domain)
- Music Library Organization: beets (metadata normalization)
- Mobile Clients: Amperfy for iOS, Symfonium for Android (paid but excellent experience)
This combination makes full use of an old ThinkPad's limited resources while delivering a user experience approaching that of commercial streaming services. More importantly, once set up, users truly "own" their music library, completely free from subscription fees and platform catalog changes.
The significance of self-hosted music goes beyond saving monthly subscription fees—it's about maintaining control over your personal digital assets. In an era where streaming platforms can remove content or adjust algorithms at any time, a stable, fully self-controlled music library may be exactly the "digital freedom" that many old-school music lovers are seeking.
Related articles

Poison-Resistant Concept Anchoring: A New Approach to Defending Against AI Data Poisoning
Deep dive into Poison-Resistant Concept Anchoring, defending against data poisoning via signed anchors and bounded updates. Experiments show 62% poison isolation with 0% false rejection rate.

Hungarian Algorithm Explained: Principles, Complexity, and Engineering Implementation Guide
In-depth explanation of the Hungarian Algorithm: core principles, O(N³) time complexity advantages, and engineering implementation. Covers assignment problem definition, step-by-step algorithm walkthrough, Python/C++ libraries, and applications in multi-object tracking and resource scheduling.
OpenAI's First Enterprise AI Report: H…
OpenAI's First Enterprise AI Report: How ChatGPT Is Changing the Way Organizations Work
OpenAI's first enterprise AI report reveals three key traits of ChatGPT Enterprise adoption: the shift from novelty to necessity, writing and coding as top use cases, and data governance as a core prerequisite.