---
title: Ampache
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, media-streaming, ampache, audio, subsonic, php]
confidence: high
contested: false
sources:
  - https://selfh.st/apps/?tag=Media+Streaming
  - https://github.com/ampache/ampache
  - https://ampache.org/
---

# 🎬 Ampache

> Serveur de streaming audio et vidéo en PHP, compatible Subsonic : bibliothèque perso accessible partout avec clients natifs.

## 📋 Informations Générales

| Attribut | Valeur |
|----------|--------|
| **Nom** | Ampache |
| **Slug** | app-ampache |
| **Description** | Plateforme de streaming audio/vidéo écrite en PHP, supportant le protocole Subsonic et des plugins multiples |
| **Site officiel** | https://ampache.org/ |
| **Repository** | https://github.com/ampache/ampache |
| **Stars** | 3 791 ⭐ |
| **Licence** | AGPL-3.0 |
| **Langage principal** | PHP |
| **Catégorie** | Media Streaming |
| **Tags** | [catalogue, media-streaming, ampache, audio, subsonic, php] |

## 📝 Description

Ampache est l'un des plus anciens projets de streaming média open-source (lancé en 2001). Écrit en PHP, il sert à constituer une bibliothèque musicale (ou vidéo) personnelle, l'enrichir automatiquement (pochettes, paroles, tags), et la streamer depuis n'importe où. L'interface web est sobre et fonctionnelle, et l'API Subsonic assure la compatibilité avec une multitude de clients : Substreamer, Symfonium, play:Sub, DSub, Sublime Music, Submariner, etc.

Au-delà du simple lecteur, Ampache propose un système de catalogues multiples (un par dossier), des permissions fines (utilisateur, admin, manager), du transcodage à la volée (MP3, Opus, OGG), des listes de lecture partagées, des podcasts, des webradios et même un module de recommandation. Les plugins étendent les sources (LastFM scrobbling, Mopidy, Discord Rich Presence, etc.).

Cas d'usage typique : on veut remplacer Spotify / Apple Music par sa propre bibliothèque FLAC accessible depuis son téléphone via l'app 4G, sans sacrifier l'UX des clients Subsonic. Limites : l'UI web n'est pas aussi moderne que Navidrome, l'installation PHP/MySQL est plus lourde qu'un binaire Go.

## 🚀 Installation

### Via Docker (recommandé)

```yaml
# docker-compose.yml
version: "3.8"

services:
  ampache:
    image: ampache/ampache:latest
    container_name: ampache
    restart: unless-stopped
    ports:
      - "80:80"
    environment:
      MYSQL_HOST: db
      MYSQL_USER: ampache
      MYSQL_PASSWORD: ChangeM3_AMPACHE
      MYSQL_DATABASE: ampache
      AMPACHE_VERSION: latest
    volumes:
      - ./config:/var/www/html/config
      - ./music:/music:ro
    depends_on:
      - db

  db:
    image: mariadb:11
    container_name: ampache-db
    restart: unless-stopped
    environment:
      MARIADB_USER: ampache
      MARIADB_PASSWORD: ChangeM3_AMPACHE
      MARIADB_DATABASE: ampache
      MARIADB_RANDOM_ROOT_PASSWORD: "yes"
    volumes:
      - ./db:/var/lib/mysql
```

### Installation manuelle

LAMP/WAMP classique : PHP 8.1+, MySQL/MariaDB, Apache/Nginx. Télécharger l'archive, extraire dans `/var/www/html/ampache`, suivre l'installateur web. Modules PHP requis : `curl`, pdo_mysql, intl, mbstring, gd, zip.

## ⚙️ Configuration

- **Catalogues** : ajouter un ou plusieurs dossiers (ex : `/music`), choisir le type (local, Beets, Mopidy, Subsonic distant), planifier les scans cron.
- **Transcodage** : définir les commandes ffmpeg pour limiter le bitrate selon l'utilisateur (utile en 4G).
- **Utilisateurs** : quotas, permissions d'upload, ACL par catalogue.
- **Authentification** : locale, LDAP, OAuth, ou header (reverse proxy SSO).
- **API Subsonic** : activable par utilisateur, base de l'ecosystème clients mobiles.

## 🔗 Alternatives

- **Navidrome** — Plus moderne, écrit en Go, consomme peu de RAM, compatible Subsonic aussi, mais audio uniquement.
- **Funkwhale** — Plateforme audio fédérée (ActivityPub), orientée podcasts et communautés.
- **Jellyfin** — Plus généraliste (vidéo + audio + Live TV), interface plus moderne.
- **Koel** — UI très soignée type Spotify, mais plus exigeant en ressources et moins riche fonctionnellement.

## 🔒 Sécurité

- Imposer HTTPS via [[app-traefik]] : le serveur expose des fichiers locaux, donc confidentiels.
- Activer le module `security_headers` (HSTS, CSP) côté reverse proxy.
- Limiter la taille d'upload, surveiller les scans cron (un dossier compromis reste lisible).
- Mettre à jour Ampache régulièrement (correctifs XSS / SQLi fréquents sur les apps PHP historiques).

## 📚 Ressources

- Site officiel : https://ampache.org/
- Repository : https://github.com/ampache/ampache
- Documentation : https://github.com/ampache/ampache/wiki
- Clients Subsonic compatibles : https://www.subsonic.org/pages/apps.jsp

## 🔗 Pages Liées

- [[cat-media-streaming]] (catégorie parente)
- [[app-jellyfin]] — Concurrent plus généraliste
- [[app-traefik]] — Reverse proxy HTTPS
- [[recettes-docker-compose]] — Templates
- [[securisation-home-lab]] — Bonnes pratiques
