6.6 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Vocard | 2026-06-07 | 2026-06-07 | app |
|
medium | false |
|
🎤 Vocard
Serveur de streaming musical moderne écrit en Python (FastAPI) et Vue.js, avec interface soignée, recherche IA, dossiers intelligents et compatibilité Subsonic.
📋 Informations Générales
| Métadonnée | Valeur |
|---|---|
| Site web | https://vocard-project.github.io/ |
| GitHub | https://github.com/vocard-project/vocard |
| License | AGPL-3.0 |
| Langage | Python (FastAPI) / Vue.js |
| Étoiles | ⭐ 132 |
| Dernière MAJ | 2026-05 (dernière release) |
| Catégorie | cat-music |
📝 Description
Vocard est un serveur de streaming musical récent (lancé en 2023) qui se positionne comme une alternative moderne à app-navidrome et app-koel. Construit sur FastAPI (backend Python asynchrone) et Vue 3 (frontend SPA), il mise sur une UI très soignée (mode sombre élégant, transitions fluides, vue « coverflow » façon Apple Music) et sur un ensemble de features originales que l'on ne trouve pas ailleurs :
- Recherche intelligente : résultats qui combinent titre, artiste, album, paroles, et même similarité audio (via l'embedding Chromaprint/AcoustID).
- Dossiers intelligents (« Smart folders ») : règles automatiques type « albums ajoutés ce mois-ci », « genres Metal progressif », « morceaux < 3 min » — similaire à iTunes.
- Visualisation audio : spectre temps réel, vu-mètre, options d'égaliseur.
- Lyrics synchronisés : récupération automatique (sources Musixmatch / LyricFind via plugin), avec timeline karaoké.
- Multi-utilisateurs : comptes isolés, playlists partagées, historique d'écoute personnel.
- Compatibilité Subsonic : partielle, couvre les endpoints principaux (playlists, search, streaming, scrobble).
- Recherche vocale : à venir selon la roadmap.
Le projet est en pleine croissance, avec une communauté Discord active, des releases fréquentes, et un focus sur l'expérience utilisateur. Idéal pour qui veut une UI moderne type « Apple Music / Spotify » mais 100 % auto-hébergée.
🚀 Installation
Option 1 : Docker Compose (recommandé)
# docker-compose.yml
version: "3.8"
services:
vocard:
image: ghcr.io/vocard-project/vocard:latest
container_name: vocard
restart: unless-stopped
ports:
- "3010:3000"
environment:
SECRET_KEY: ChangeM3_VOCARD_SECRET
DEFAULT_USER: admin
DEFAULT_PASSWORD: ChangeM3_VOCARD_ADMIN
DB_TYPE: sqlite
MUSIC_PATH: /music
volumes:
- ./data:/data
- ./music:/music:ro
depends_on:
- db
db:
image: postgres:16-alpine
container_name: vocard-db
restart: unless-stopped
environment:
POSTGRES_USER: vocard
POSTGRES_PASSWORD: ChangeM3_VOCARD_PG
POSTGRES_DB: vocard
volumes:
- ./pgdata:/var/lib/postgresql/data
Premier lancement : visiter http://localhost:3010/, login admin / ChangeM3_VOCARD_ADMIN, puis Settings → Library pour pointer vers /music.
Option 2 : Installation manuelle
Prérequis : Python 3.11+, Node 20+, PostgreSQL 14+ (ou SQLite par défaut). Cloner le repo, cd backend && pip install -r requirements.txt, cd frontend && npm ci && npm run build, configurer backend/.env, lancer python main.py côté backend et servir le dist/ côté frontend.
⚙️ Configuration
- SECRET_KEY : 64+ caractères aléatoires, critique pour la sécurité des sessions JWT.
- Base de données : SQLite par défaut (simple, mais moins performant sur grosses biblios), PostgreSQL recommandé.
- Bibliothèque :
MUSIC_PATHpointe vers le dossier musiques, scan incrémental toutes les 6h par défaut. - Recherche : Chromaprint/AcoustID pour la similarité audio, nécessite clé API AcoustID.
- Auth : locale, header
X-Forwarded-Userpour SSO reverse-proxy. - Lyrics : Musixmatch (gratuit) ou LyricFind (payant).
- Subsonic : activable dans Settings, génère une API key par utilisateur.
- Métadonnées : extraction via mutagen, pochettes, normalisation ReplayGain.
🔄 Alternatives
Open Source
- app-koel — PHP/Vue, UI très soignée aussi, plus mature.
- app-navidrome — Go, ultra léger, UI plus basique.
- app-ampache — PHP historique, plus riche fonctionnellement.
- app-funkwhale — Fédéré (ActivityPub), orienté podcasts.
- app-polaris — TypeScript/Svelte, discovery-focused, voir fiche dédiée.
- app-gonic — Go, minimaliste Subsonic.
- app-music-assistant — Agrégateur multi-source (complémentaire).
Propriétaires (ce que cette app remplace)
- Spotify — Streaming freemium.
- Apple Music — Streaming avec UI coverflow.
- YouTube Music — Streaming avec vidéo.
- Tidal — Streaming HiFi/FLAC.
- Plexamp — Player Plex.
🔒 Sécurité
- SECRET_KEY : variable critique, doit être unique et longue, rotation invalide tous les JWT en cours.
- HTTPS obligatoire via Traefik/Caddy : le frontend est une SPA qui parle au backend JSON.
- PostgreSQL password : stocker dans un fichier
.envnon versionné, ne pas mettreChangeM3_*en production. - Trusted proxies : configurer
TRUSTED_HOSTSetTRUSTED_PROXIEScôté FastAPI si reverse proxy. - Volumes :
./datacontient la base SQLite/Postgres + cache pochettes, à backuper../musicen:ro(lecture seule). - CORS : restreindre
CORS_ORIGINSà votre domaine (https://vocard.example.com) en production. - Mises à jour : suivre les releases GitHub, projet jeune donc rythme rapide.
- Rate limiting : FastAPI a des add-ons (
slowapi), à activer contre le brute-force login.
📚 Ressources
- Site officiel : https://vocard-project.github.io/
- Documentation : https://github.com/vocard-project/vocard/wiki
- Repository : https://github.com/vocard-project/vocard
- Démo : https://vocard-project.github.io/demo (lorsque disponible)
- Discord : https://discord.gg/vocard
🔗 Pages Liées
- cat-music — Catégorie parente
- app-koel — Concurrent PHP/Vue, plus mature
- app-navidrome — Concurrent Go, plus léger
- app-polaris — Autre alternative moderne (TS/Svelte)
- app-funkwhale — Fédéré
- app-music-assistant — Agrégateur complémentaire
- app-traefik — Reverse proxy HTTPS
- recettes-docker-compose — Templates Docker
- securisation-home-lab — Bonnes pratiques