Files
2026-06-09 18:40:21 +02:00

5.0 KiB

title, created, updated, type, tags, confidence, contested, sources
title created updated type tags confidence contested sources
Ampache 2026-06-07 2026-06-07 app
catalogue
media-streaming
ampache
audio
subsonic
php
high false
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é)

# 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

🔗 Pages Liées