--- title: Funkwhale created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, activitypub-fediverse, audio, musique, spotify, django, python, fediverse] confidence: high contested: false sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://funkwhale.audio/, https://github.com/funkwhale/funkwhale] --- # đŸŽ” Funkwhale > **Le serveur audio fediverse** : hĂ©bergez, streamez et partagez votre bibliothĂšque musicale (et vos podcasts) sur une plateforme compatible ActivityPub, alternative libre Ă  Spotify et SoundCloud. | MĂ©tadonnĂ©e | Valeur | | :--- | :--- | | **Site web** | [https://funkwhale.audio](https://funkwhale.audio) | | **GitHub** | [https://github.com/funkwhale/funkwhale](https://github.com/funkwhale/funkwhale) | | **License** | AGPL-3.0 | | **Langage principal** | Python (Django), PostgreSQL, Redis | | **Étoiles GitHub** | 46 ⭐ (monorepo) | | **DerniĂšre MAJ** | 2026-05 | | **CatĂ©gorie** | [[cat-activitypub-fediverse]] | ## Description Funkwhale est un **projet mature du Fediverse** : un serveur audio auto-hĂ©bergĂ©, capable de gĂ©rer des **bibliothĂšques musicales** (artistes, albums, pistes), des **podcasts** et de la **radio en direct** (channels, lives). Le projet est nĂ© en 2016 dans la communautĂ© dĂ©centralisĂ©e française et a depuis fĂ©dĂ©rĂ© sa propre communautĂ© multilingue. La grande force de Funkwhale est l'**interopĂ©rabilitĂ©** : depuis la version 1.0, Funkwhale parle **ActivityPub**, ce qui permet Ă  un compte Funkwhale de suivre un compte Castopod, PeerTube ou Mastodon. Le sous-projet **Funkwhale Audio Federation** pousse le concept plus loin : deux instances Funkwhale peuvent se fĂ©dĂ©rer et leurs utilisateurs dĂ©couvrir/Ă©couter les morceaux hĂ©bergĂ©s sur l'autre instance (Ă©quivalent de ce que propose PeerTube en vidĂ©o). FonctionnalitĂ©s principales : **uploads de masse**, transcodage via FFmpeg, import depuis Nextcloud Music, **Subsonic API** (compatibilitĂ© avec les clients classiques : DSub, Symfonium, play:Sub
), **playlists partagĂ©es**, **favoris**, **signets**, mode alĂ©atoire, radios automatiques, **podcasts RSS**, modĂ©ration complĂšte, multi-utilisateurs avec quotas. **Points forts** : mature (9 ans), Subsonic API = clients mobiles riches, transcodage, fĂ©dĂ©ration audio, bonne documentation. **Points faibles** : dĂ©veloppement ralenti depuis 2024, monorepo complexe (`funkwhale/funkwhale`), configuration Docker non triviale, pas de **algorithmes de recommandation** natifs. ## Installation ### Via Docker (recommandĂ©) L'image officielle est `funkwhale/funkwhale` sur Docker Hub et `funkwhale/front` pour le front-end. ```yaml # docker-compose.yml services: api: image: funkwhale/funkwhale:latest container_name: funkwhale-api restart: unless-stopped command: python /app/funkwhale_api/manage.py runserver 0.0.0.0:5000 environment: DATABASE_URL: "postgresql://funkwhale:change-me@db/funkwhale" REDIS_URL: "redis://redis:6379/0" FUNKWHALE_HOSTNAME: "music.example.com" FUNKWHALE_PROTOCOL: "https" DJANGO_SECRET_KEY: "change-me-with-django.utils.crypto.get_random_string" volumes: - music:/music - static_data:/static depends_on: - db - redis celeryworker: image: funkwhale/funkwhale:latest restart: unless-stopped command: celery -A funkwhale_api.taskapp worker -l info environment: DATABASE_URL: "postgresql://funkwhale:change-me@db/funkwhale" REDIS_URL: "redis://redis:6379/0" depends_on: - db - redis volumes: - music:/music - static_data:/static front: image: funkwhale/front:latest container_name: funkwhale-front restart: unless-stopped ports: - "80:80" db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: funkwhale POSTGRES_PASSWORD: change-me POSTGRES_DB: funkwhale volumes: - db:/var/lib/postgresql/data redis: image: redis:7-alpine restart: unless-stopped volumes: music: static_data: db: ``` ### Installation manuelle 1. Installer Python 3.11+, PostgreSQL, Redis, FFmpeg 2. Cloner le dĂ©pĂŽt et crĂ©er un virtualenv Python 3. Lancer `pip install -r api/requirements.txt` 4. Configurer `.env` (DATABASE_URL, REDIS_URL, etc.) 5. `python manage.py migrate` puis `python manage.py createsuperuser` 6. Servir le front (build statique) via Nginx ## Configuration 1. CrĂ©er l'utilisateur administrateur via `python manage.py createsuperuser` 2. Configurer le **reverse-proxy** (Nginx) avec HTTPS obligatoire 3. Brancher un **sous-domaine** (`music.example.com`) et configurer `FUNKWHALE_HOSTNAME` 4. Uploader des fichiers via l'interface web (`.flac`, `.mp3`, `.opus` supportĂ©s) 5. Activer les **imports Subsonic** si vous avez dĂ©jĂ  une bibliothĂšque (clients Subsonic = API activĂ©e) 6. Activer la **fĂ©dĂ©ration** (par dĂ©faut) et bloquer les instances indĂ©sirables via l'admin ## Alternatives ### Open source - [[app-castopod]] — pour le podcasting spĂ©cifiquement - [[app-bookwyrm]] — pour les livres, autre app fediverse Django - **Navidrome** — serveur Subsonic lĂ©ger, mais **pas** ActivityPub - **Jellyfin** — mĂ©dia center complet, pas fediverse - **Ampache** — serveur audio Subsonic, pas fediverse ### PropriĂ©taires - Spotify — streaming centralisĂ©, abonnement - SoundCloud — plateforme upload et partage - Apple Music / Google Play Music — fermĂ©s ## SĂ©curitĂ© - **HTTPS obligatoire** : Funkwhale expose des streams audio, le MITM est un risque - **Quotas utilisateurs** : limiter la taille des uploads par compte pour Ă©viter l'abus - **FĂ©dĂ©ration** : filtrer les instances suspectes via l'admin (rapports signalĂ©s) - **Mises Ă  jour** : suivre les tags `1.x` (le projet a un rythme de release lent mais rĂ©gulier) - **Sauvegardes** : BDD PostgreSQL (durĂ©e d'Ă©coute, favoris, comptes) ET `music/` (la vraie bibliothĂšque) ## Ressources - Site officiel : [funkwhale.audio](https://funkwhale.audio) - Documentation : [docs.funkwhale.audio](https://docs.funkwhale.audio/) - CommunautĂ© : Matrix `#funkwhale:matrix.org` - Code source : [github.com/funkwhale/funkwhale](https://github.com/funkwhale/funkwhale) ## Pages LiĂ©es - [[cat-activitypub-fediverse]] - [[recettes-docker-compose]] - [[app-castopod]]