Download
Ampache is free software (AGPLv3) that you host yourself.
There is no signup and nothing to buy; pick the way of running it that suits your server and go.
Try it before you install anything
The demo servers run the stable and develop code with creative commons music, so you can click around a real Ampache without setting one up.
Log in with username demo, password demodemo, or point a client at the API with the apikey demodemo. See Demo Server for what the demo accounts are allowed to do.
Which install option?
| Option | Good for | Start here |
|---|---|---|
| Docker | The quickest working server, upgrades by pulling a new image | Docker |
| Release zip | A normal web server you already run, no build tools needed | Installing Ampache |
| Git checkout | Staying on the latest code, or contributing | Download Ampache |
| One-click hosting | Letting a platform manage the server for you | User Guides |
Whichever you pick, read the Prerequisites first. The short version: a web server (Apache gets the most testing, nginx, lighttpd, Caddy and IIS all work), PHP 8.5+ for Ampache8, and MySQL 8.x or MariaDB 10.x or later.
Docker
The prebuilt images bring their own web server, PHP and (optionally) MariaDB, so a single command gets you a running server.
docker run --name=ampache -d -v /path/to/your/music:/media:ro -p 80:80 ampache/ampache
docker-compose is the recommended way to run it, because it keeps your config, database and logs in persistent volumes. There is a starter docker-compose.yml in the ampache-docker repository.
Images are on Docker Hub and come in several variants:
ampache:<version>— pinned to a release, the recommended tagampache:latest— the current stable branchampache:develop— latest features, occasionally breaksampache:preview— unreleased Ampache8 code, expect it to breakampache:nosql*— the same images without a built-in MySQL server, for when you supply your ownampache:client*— Client Structure images that install a web client such as Ample or tinysub over the top of Ampache
The container can install itself without touching the web installer if you set DB_NAME, DB_HOST, AMPACHE_ADMIN_USER and AMPACHE_ADMIN_EMAIL. The full list of environment variables, the ARM builds, reverse proxy settings and theme mounting are all on the Docker page.
Release zips
Releases are published on GitHub:
Ampache ships more than one zip per release, so check Which zip? before you download. In short:
ampache-%VERSION%_%PHPVERSION%.zip(e.g.ampache-8.0.0_php8.5.zip) — the one most people want. It has the composer and npm packages already built in, so you unzip it and run the installerampache-%VERSION%.zip— the samepubliccode structure without dependencies. You runcomposer installandnpm install && npm run buildyourselfampache-%VERSION%_squashed.zip— everything in the project root, the pre-Ampache5 layout. Only use this if your hosting cannot serve from apublicsubfolderampache-%VERSION%_client.zip— the client structure, which puts an API client at the base URL and Ampache underneath it
Unzip it into your web root, point the web server at the right folder (public/ for the default structure) and open install.php in a browser. Installing Ampache walks through the whole thing, including working vhost samples for Apache, nginx, lighttpd and Caddy.
Streaming, the Subsonic API and the REST API all need URL rewriting enabled — see Rewrite Rules.
Git checkout
A checkout is easier to keep up to date than downloading a zip each time.
git clone -b develop https://github.com/ampache/ampache.git ampache
cd ampache
composer install
npm install
npm run build
The branch decides which Ampache you get:
develop— Ampache8, the current mainline (needs PHP 8.5 and Node.js^20.19.0or>=22.12.0)release7— Ampache7, if you can't move to PHP 8.5 yetrelease6— Ampache6
You can also grab a branch as a zip without git: master or develop.
NOTE develop used to be Ampache7. Ampache8 is now the mainline, and Ampache7 lives on release7/patch7.
Updating a checkout is git pull plus the composer and npm steps; update_from_git.sh wraps it up, and Upgrading covers the database and config updates that follow.
One-click and platform installs
- Cloudron — 1-click install, kept updated by the platform
- Ubuntu 26.04 LTS — step by step on a plain LAMP server, PHP 8.5 straight from the archive
- Ubuntu 22.04 — the same on the older LTS, with PHP from Sury
- Windows and IIS 7.5
- XAMPP — for a local test install
- More user guides
Already running Ampache?
Read Upgrading rather than the install guide. Back up your database first, then apply the updates:
php bin/cli admin:updateDatabase -e
php bin/cli admin:updateConfigFile -e
Ampache8 is not a drop-in replacement for Ampache7: it requires PHP 8.5, makes real database changes and changes some config defaults. Read Ampache8 for Admins before you start, and Ampache8 for Users for what changes in the interface.
After you install
- Add your music with a catalog, then verify and update it (a cron job keeps it current)
- Work through Basic Configuration —
config/ampache.cfg.phpcontrols almost every feature - Turn on the extras you want: transcoding, the Subsonic backend, the API, podcasts, LDAP or OIDC logins, ACLs and plugins
- Stuck? Try Troubleshooting and the FAQ
Ways to listen
You don't have to use the web interface, and Ampache doesn't lock you into one app.
- Web Interface and the built-in HTML5 Web Player — nothing to install
- Ampache API clients — native apps for Android, iOS, Linux, Windows and macOS, plus libraries and plugins
- Subsonic clients — Ampache serves the Subsonic API at
/rest, so any Subsonic app works. See Subsonic - Web clients — Ample and friends run in the browser against your server; the client images install one for you
- UPnP/DLNA and DAAP — both backends are built in, so iTunes and UPnP players can see your library (API configuration)
- Anything that plays an HTTP stream — VLC, foobar2000, Windows Media Player and the rest, via generated playlists (Clients)
- Localplay — drive MPD, VLC, Kodi or httpQ from Ampache instead of streaming to your browser
Building something yourself? The API documentation covers the XML and JSON methods, and the REST API has an OpenAPI spec and a Swagger browser.
Source and support
- Ampache on GitHub — source, issues and releases
- ampache-docker — the container images
- Contributing and Translations
- Links — Telegram, Reddit, Mastodon and the rest
- Donate if Ampache is useful to you