AM

Ampache

Web-based audio and video streaming application

Media Servers ★ 3.8k stars Medium setup AGPL-3.0

Ampache is a web-based audio and video streaming application and file manager that lets you access your music from anywhere. It supports the Subsonic API, sharing, and a wide range of clients.

Key features

  • Subsonic API support
  • Audio and video streaming
  • Sharing and playlists
  • Many client apps

Pros & cons

Strengths

  • Long-established project
  • Flexible catalog options

Trade-offs

  • Configuration can be complex
  • Dated areas of the UI

Ampache replaces

Last reviewed Sep 13, 2026 · 840 words

Most people asking about Ampache should run Navidrome instead. That is the honest summary of a project I like: Navidrome installs in one container with no database, scans a library faster, and does the single job of streaming a music folder to Subsonic clients with less to configure. Ampache is the pick when you have outgrown that job, specifically when you need multiple catalogs from different sources, video as well as audio, per-user catalog permissions, shares, podcasts and live radio in one place, and a first-class API of its own. It is a 25-year-old PHP application with the flexibility and the rough edges that implies.

What Ampache does that the simple tools do not

Catalogs are the core idea. One Ampache instance can index a local folder, a second folder with different permissions, a remote Ampache server, a Subsonic server, and a Beets database, and present them to users as one library or as separate ones by access level. A household where the kids should not see the explicit crate, or a shared instance for a small group where each person brings a folder, is exactly the case. Add video catalogs for concert films and personal clips, podcast subscriptions that download on a schedule, and democratic playlists where users vote on what plays next, and you have a feature set that no single-purpose server matches.

Two costs come with that. Configuration lives in config/ampache.cfg.php, a large annotated file where most options are commented out, and it is where people get lost. And the built-in web player, while functional, shows its age; the community's Ample web client is what I put in front of guests.

The Subsonic API compatibility is broad but not perfect

Ampache implements the Subsonic API, so Symfonium, DSub, play:Sub and the rest connect with an Ampache URL and password. Expect small oddities compared with Navidrome, which was built around that API from the start: occasional client features that fall back to defaults, and playlist behaviours that differ. Ampache's own API is richer and versioned, and the native clients (Power Ampache 2 on Android, for example) get access to catalogs and features the Subsonic path cannot express. If your only clients are Subsonic apps, this is another vote for Navidrome; if you want the extra features in a client, use a native one.

Docker install and the database question

services:
  ampache:
    image: ampache/ampache:latest
    ports:
      - "8081:80"
    volumes:
      - ./config:/var/www/config
      - /srv/music:/media:ro
      - ./data:/data
    restart: unless-stopped

The image bundles MySQL, which is the quick start. For anything you plan to keep, point the installer at an external MariaDB so backups and upgrades are separate concerns. Give it 512 MB of RAM as the floor; a large library scan with tag reading will use it. Mount the music read-only unless you specifically want Ampache to write tags or move files, which it can do and which is easy to trigger by accident.

Transcoding is the config that trips people

Ampache transcodes with ffmpeg by calling a command line you define per format in ampache.cfg.php, under the transcode_ keys. The defaults work for MP3 output once ffmpeg is present, and the Docker image includes it. What breaks is the interaction between per-user bitrate settings, per-client transcoding preferences and the format rules; a FLAC library that streams as raw FLAC to a phone on mobile data is the classic symptom, and the fix is setting a maximum bitrate in the user's preferences rather than hunting in the global config. Video transcoding follows the same pattern with a separate command. Test on one client before rolling out to the household.

Maintenance is heavier than the alternatives

Major releases can require a database update step run from the admin page or the CLI, and the config file gains new keys that you need to merge from the shipped example. Neither is hard, but it is the kind of thing Navidrome or Gonic simply never ask of you. On the other side of the ledger, the project has survived every fashion cycle since 2001, releases regularly, and is unlikely to disappear the way several prettier music servers have. The media server category and the Jellyfin versus Navidrome comparison cover the simpler tools; the Spotify alternatives page covers the migration mindset.

What I'd do

One music folder, Subsonic clients, no video: Navidrome, without hesitation. Several sources with different audiences, video in the mix, podcasts and radio, or a small group sharing an instance: Ampache, with an external MariaDB, the Ample web client in front, per-user bitrate limits set on day one, and a note in your calendar to read the release notes before each upgrade. Do not run both expecting to consolidate later; pick based on whether the catalog model is something you need, because that is the only thing Ampache offers that the smaller tools cannot.

Compare Ampache

21 head-to-head comparisons.

Similar media servers apps