Funkwhale - Musik föderiert teilen und streamen
Funkwhale - Musik föderiert teilen und streamen
Funkwhale ist eine selbst gehostete Musikplattform, die über das ActivityPub-Protokoll mit anderen Instanzen föderiert und so eine dezentrale Alternative zu Spotify oder SoundCloud bildet.
Was ist Funkwhale?
Funkwhale kombiniert eine persönliche Musikbibliothek mit sozialen Funktionen: Tracks können in Channels veröffentlicht, kommentiert und über das Fediverse mit Nutzern anderer Instanzen geteilt werden. Die Plattform unterstützt Podcasts, Playlists, Favoriten und eine durchsuchbare Bibliothek mit automatischer Metadaten-Anreicherung aus MusicBrainz. Wer Musik selbst produziert oder teilt, bekommt mit Funkwhale eine vollständige Veröffentlichungsplattform ohne Abhängigkeit von kommerziellen Diensten.
Voraussetzungen
- Docker 20.10+ / Docker Compose
- PostgreSQL als Datenbankserver
- Redis für den Task-Queue
- Mindestens 1 GB RAM; Speicherplatz je nach Bibliotheksgröße
Compose-Beispiel
services:
funkwhale:
image: funkwhale/funkwhale:latest
container_name: funkwhale
restart: unless-stopped
ports:
- "5000:5000"
volumes:
- ./data/music:/music:ro
- ./data/media:/app/funkwhale_api/media
- ./data/static:/app/staticfiles
environment:
- DJANGO_SECRET_KEY=einLangerZufaelligerGeheimschluessel
- FUNKWHALE_HOSTNAME=musik.meinedomain.de
- PROTOCOLL=https
- DATABASE_URL=postgresql://funkwhale:passwort@funkwhale-db/funkwhale
- CACHE_URL=redis://funkwhale-redis:6379/0
depends_on:
- funkwhale-db
- funkwhale-redis
funkwhale-db:
image: postgres:15-alpine
container_name: funkwhale-db
restart: unless-stopped
volumes:
- ./data/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_DB=funkwhale
- POSTGRES_USER=funkwhale
- POSTGRES_PASSWORD=passwort
funkwhale-redis:
image: redis:7-alpine
container_name: funkwhale-redis
restart: unless-stopped
Hinweise
- Celery-Worker: Funkwhale benötigt mindestens einen Celery-Worker für Hintergrundaufgaben (Import, Transkodierung). Den
funkwhale/funkwhale-Container mit dem Befehlcelerystattserverals zweiten Service hinzufügen. - Musik importieren: Über Bibliothek → Importieren lassen sich lokale Verzeichnisse einlesen; das Musikverzeichnis dazu als Read-only-Volume einbinden.
- Federation aktivieren: Damit andere Funkwhale-Instanzen folgen können, muss die Instanz über eine öffentliche Domain mit gültigem TLS-Zertifikat erreichbar sein.
- Datensicherung: PostgreSQL-Dump,
media-Verzeichnis und denDJANGO_SECRET_KEYregelmäßig sichern.