You already have the files. The decision is which program serves them to a phone, and what else that program makes you run.
All four speak the Subsonic API, so a Subsonic app on a phone can play the library. They split on the install and on the tags. Navidrome is a packaged server that requires ffmpeg. Lightweight Music Server’s packaged paths are Docker and the Debian Trixie packages. ffmpeg 7.1 is libraries for a source build, and the ffmpeg command-line tool is not used. One is a PHP site with a database and Node. One is a federated site that wants PostgreSQL and its own domain.
| License | Extra pieces | Players the project names | |
|---|---|---|---|
| Lightweight Music Server | GPL-3.0 | Docker or a Debian package; ffmpeg 7.1 to build from source | Web, Subsonic |
| Navidrome | GPL-3.0 | ffmpeg | Web, iOS and Android Subsonic apps |
| Funkwhale | AGPL-3.0 | PostgreSQL 12+, its own domain | Web, Subsonic, podcast apps, a desktop app |
| Ampache | AGPL-3.0 | PHP 8.5, Node, MySQL or MariaDB, a web server | Subsonic, Jellyfin-style, DAAP, DLNA |
Lightweight Music Server is the one that treats composer, conductor, and a remaster as different facts. Navidrome is the one that stays a single program plus ffmpeg.
Scores
1–5 per criterion · select a score for its reasoning and sources| # | Product | Setup | Players | Catalog | Playback | Recent release | Overall |
|---|---|---|---|---|---|---|---|
| 1 | Lightweight Music Server | 4 | 3 | 5 | 4 | 5 | 4.2 |
| 2 | Navidrome | 4 | 4 | 4 | 4 | 4 | 4.0 |
| T3 | Funkwhale | 2 | 4 | 4 | 4 | 5 | 3.8 |
| T3 | Ampache | 1 | 5 | 4 | 4 | 5 | 3.8 |
How each criterion is scored
Setup
What a documented install asks you to run besides the music server itself.
- 5 One program and no extra service or tool
- 4 One packaged program, with ffmpeg or its libraries required for a full install or a source build
- 3 One program plus a database server
- 2 An application, a database server, and its own domain name
- 1 A web server, a language runtime, Node, and a database server
Players
Which listening protocols and apps the project documents, counted from its own pages.
- 5 Subsonic or OpenSubsonic plus at least two other protocols, such as DLNA, DAAP, or a Jellyfin-compatible API
- 4 The Subsonic or OpenSubsonic API, and the project names phone, desktop, or podcast apps
- 3 The Subsonic or OpenSubsonic API, without naming phone apps
- 2 A web page plus one named desktop player
- 1 A web page only
Catalog
How much of the library structure the project documents: separate libraries, podcasts or video, scrobbling, MusicBrainz identifiers, release groups, and artist roles such as composer or conductor.
- 5 MusicBrainz identifiers, release groups, and named artist roles
- 4 Several extras, such as separate libraries, podcasts, video, or scrobbling
- 3 One extra structure, such as podcasts or multi-artist tracks
- 2 Ordinary tags such as artist and album
- 1 File playback only
Playback
Whether the project documents on-the-fly transcoding, per-user transcoding, and scrobbling to Last.fm or ListenBrainz.
- 5 Transcoding, scrobbling, and offline sync documented by the project
- 4 Transcoding and one other listening feature, or scrobbling to two services
- 3 Either transcoding or scrobbling
- 2 Streams the original file
- 1 Plays in the browser only, with no transcoding or scrobbling documented
Recent release
How recent the latest listed release is, counted from 2026-11-08, the day the release pages were captured.
- 5 Within the last month
- 4 Within the last 3 months
- 3 Within the last 6 months
- 2 Within the last 12 months
- 1 No dated release, or older than 12 months
Lightweight Music Server is a web player for a library you already tagged with care. The README documents MusicBrainz identifiers, release groups for remasters and reissues, and artist roles that include composer, conductor, producer, and remixer.
We’d recommend it if those fields are why you tagged the files, because the other three don’t document that structure. Phone playback still goes through Subsonic. The project names the web UI and the API, and it does not name an iOS or Android app of its own.
Docker is the packaged path. Debian Trixie amd64 packages are the other. Building it yourself needs a C++20 compiler and ffmpeg 7.1 libraries. The releases page marks the latest tag and dates it 05 Nov, without a year, on a page we saved on 2026-11-08.
What it does
- Subsonic and OpenSubsonic API
- MusicBrainz identifiers and release groups
- Artist roles such as composer and conductor
- Last.fm and ListenBrainz scrobbling
- Web player on port 5082
Pros
- Docker images, and Debian Trixie packages for amd64
- Release groups for remasters and reissues
- v3.82.0 is the latest listed release, dated 05 Nov on a page captured 2026-11-08
Cons
- A source build needs a C++20 compiler and ffmpeg 7.1 libraries
- The README does not name a phone app
Who should skip:Anyone building from source without ffmpeg 7.1 libraries.
Navidrome is the server to put on a machine you don’t want to babysit. The homepage calls it self-contained and says it runs on a Raspberry Pi. Install ffmpeg. The docs call that a requirement for Navidrome to work properly. Builds cover Linux, Windows, macOS, and Docker, and the install page also has a FreeBSD section.
The same site says a wide range of third-party iOS and Android apps can connect, and that transcoding can be set per user, with Opus supported. Separate libraries can split music from audiobooks, or a family library from a personal one. The project says it has been tested with about 900,000 songs.
We’d recommend it over Lightweight Music Server if your tags are artist, album, and title and you want those phone apps named in the docs. You give up the composer and remaster fields that Lightweight Music Server documents. The linux package on that release is timestamped 2026-09-24.
What it does
- Web UI plus third-party iOS and Android apps
- Separate libraries with per-user access
- Per-user transcoding, including Opus
- A watch on the music folder
Pros
- One program the project calls self-contained, plus ffmpeg
- Builds for Linux, Windows, macOS, and Docker
- The project says it has been tested with about 900,000 songs
Cons
- ffmpeg is required
- The latest asset we found, v0.64.2, is timestamped 2026-09-24
Who should skip:Anyone who will not install ffmpeg.
Funkwhale
For a server other people can followFunkwhale is a publishing site as well as a library. The docs say it uses ActivityPub to talk to other apps on the Fediverse. A Subsonic app, a podcast app, the web player, and a Tauri desktop app are all named. Last.fm and ListenBrainz scrobbling are listed, and so is podcast RSS import.
The install is the cost. Version 2.0 requires PostgreSQL 12 or higher (the changelog spells it “postgre”). The install page says you cannot put it in a subdirectory: it wants a domain or a subdomain, and ports 80 and 443 for federation. Docker and Debian are the documented paths.
We’d recommend it if publishing to other servers is the point, because none of the others document ActivityPub. We’d skip it for a private library on a home machine. The license line we found is the repository’s label on the LICENSE file, “AGPL-3 licence”, and the homepage calls it free software.
What it does
- ActivityPub federation between servers
- Subsonic, OpenSubsonic, and podcast apps
- A desktop app built with Tauri
- Last.fm and ListenBrainz scrobbling
Pros
- Podcast RSS import and multi-artist tracks
- Changelog 2.0.13 is dated 2026-10-30
- Docker and Debian install paths
Cons
- PostgreSQL 12 or newer
- Needs its own domain, and ports 80 and 443 for federation
Who should skip:Anyone who cannot give the server its own domain name.
Ampache
For every kind of playerAmpache is the catalog you point every player at. The homepage says the same library is served over its own API, Subsonic, OpenSubsonic, a Jellyfin-compatible API, DAAP, and UPnP/DLNA. Video, scheduled podcasts, and live radio sit in that catalog. The docs say it can convert a file on the fly when the player cannot read the format.
The stack is why it comes out behind the two packaged servers. Ampache 8 supports PHP 8.5 or newer only. Node.js is required from Ampache 7 upward. The database is MySQL or MariaDB, and the web server can be Apache, lighttpd, nginx, or IIS. The README says Ampache is not a media organizer.
We’d recommend it if a television, an iTunes-style library, and a Subsonic phone app have to share one server. We’d recommend Navidrome or Lightweight Music Server if the only player is a phone.
What it does
- Subsonic, OpenSubsonic, and a Jellyfin-compatible API
- DAAP and UPnP/DLNA from the same catalog
- Video, podcasts, and live radio
- On-the-fly conversion when a player cannot read the file
Pros
- One catalog for phones, iTunes-style DAAP, and a TV's DLNA player
- Release 8.4.0 is timestamped 2026-11-06
- The project says those players are included, with no paid tier
Cons
- Ampache 8 needs PHP 8.5 or newer, plus Node.js and MySQL or MariaDB
- The README says it is not a media organizer and depends on tags
Who should skip:Anyone who will not run PHP 8.5, Node, and MySQL or MariaDB.
How to choose
- You tagged composers, conductors, and remasters on purpose: Lightweight Music Server.
- You want one program, ffmpeg, and a Subsonic app on a phone: Navidrome.
- Other servers should be able to follow yours: Funkwhale, and give it a domain.
- The television, DAAP, and a phone app share one catalog: Ampache, if you will run PHP and MySQL or MariaDB.
Our picks
Questions
Do I need ffmpeg?
Navidrome’s install page says yes. Lightweight Music Server’s install page requires ffmpeg 7.1 libraries for a source build, and documents Docker images and Debian packages as the other path. Funkwhale’s pages that we checked do not mention ffmpeg. Ampache says it can convert on the fly and does not name ffmpeg.
Can friends use a Subsonic app?
Navidrome, Funkwhale, Ampache, and Lightweight Music Server all document Subsonic or OpenSubsonic. Ampache also documents DAAP and UPnP/DLNA. Funkwhale also documents podcast apps and a desktop app.
Which of these publish to other servers?
Funkwhale. Its docs say it uses ActivityPub to talk to other apps on the Fediverse. The other three document a library you host, not federation.
How we scored
Every score cites quotes from each product's own documentation, website and release notes, or from trusted third parties, captured in November 2026. Each criterion counts the same, and a criterion the evidence doesn't cover is shown as "?" and left out of that product's overall score.
Release dates are taken from the release pages captured on 2026-11-08. Lightweight Music Server’s page dates v3.82.0 as 05 Nov and does not print a year. Funkwhale’s AGPL line is the repository’s label on the LICENSE file. Ampache’s PHP, Node, and database requirements are for the Ampache 8 line the README describes.



