--- title: DVinyl created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, tracking, vinyles, medias, discogs, nodejs, mongodb] confidence: high contested: false sources: [https://selfh.st/apps/dvinyl, https://github.com/Kyonew/DVinyl] --- # DVinyl > Un gestionnaire moderne de collections de médias physiques (vinyles, CDs, livres, films, jeux vidéo) enrichi automatiquement via les APIs Discogs, Hardcover, TMDB et IGDB. | Métadonnée | Valeur | | :--- | :--- | | **Site web** | https://kyonew.me/dvinyl | | **GitHub** | https://github.com/Kyonew/DVinyl | | **License** | MIT | | **Langage principal** | JavaScript (Node.js / Express) | | **Étoiles GitHub** | ⭐119 | | **Dernière MAJ** | 2026-05-30 (v2.5.2) | | **Catégorie** | [[cat-tracking]] | ## Description DVinyl est un projet français (par Tiziano Senes / Kyonew) initialement conçu pour remplacer Discogs dans la gestion d'une collection de vinyles personnels, avant de s'étendre à tous les **médias physiques** : musique (vinyles, CDs, cassettes), livres (mangas, comics, hardcovers), films (Blu-ray, 4K, VHS, LaserDisc) et jeux vidéo. L'idée directrice est de **reprendre le contrôle de ses données** sans dépendre d'un service centralisé, tout en bénéficiant de la richesse des métadonnées déjà disponibles sur le web. L'**enrichissement automatique** est le cœur de l'expérience : un clic sur un album et DVinyl interroge **Discogs** pour récupérer pochette, titres, crédits, année de sortie, et **valeur de marché** (estimation basse / médiane / haute). Pour les livres c'est **Hardcover** qui est utilisé, **TMDB** pour les films, et **IGDB** pour les jeux vidéo. Il est également possible d'importer toute sa collection Discogs existante via un ID de release ou un export CSV. L'interface, basée sur **EJS + Tailwind CSS**, est entièrement personnalisable : barre de navigation, widgets statistiques du tableau de bord, thèmes de catégorie pour différencier visuellement ses différentes médiathèques. Le **scanner physique** intégré (limité à la France pour le moment) permet de relier un objet en rayon à son entrée en base en scannant un code-barres. L'authentification supporte aussi bien un usage strictement privé qu'un partage familial, et l'interface est disponible en français, anglais, espagnol, italien et allemand. ## Installation ### Via Docker (recommandé) ```yaml services: dvinyl: container_name: dvinyl image: ghcr.io/kyonew/dvinyl:latest restart: unless-stopped ports: - "3099:3099" volumes: - dvinyl-db:/data/db - dvinyl-uploads:/data/uploads environment: - BASE_URL=http://localhost:3099 - VINYL_PORT=3099 - DISCOGS_TOKEN=VotreTokenDiscogs - TMDB_API_KEY=VotreClefTMDB - IGDB_CLIENT_ID=VotreClientIdIGDB - IGDB_CLIENT_SECRET=VotreSecretIGDB - HARDCOVER_TOKEN=VotreTokenHardcover - MONGO_URL=mongodb://mongo:27017/dvinyl depends_on: - mongo mongo: image: mongo:7 restart: unless-stopped volumes: - dvinyl-mongo:/data/db volumes: dvinyl-db: dvinyl-uploads: dvinyl-mongo: ``` Se référer à `docs/api-keys.md` du dépôt pour obtenir les différentes clés d'API. ### Installation manuelle 1. Cloner : `git clone https://github.com/Kyonew/DVinyl.git` 2. Installer Node.js 20+ : `npm install` 3. Copier `.env.example` en `.env` et renseigner les clés d'API 4. Démarrer MongoDB (local ou conteneur) et configurer `MONGO_URL` 5. Lancer : `npm start`, accès sur `http://localhost:3099` ## Configuration - **Créer un compte** sur [Discogs](https://www.discogs.com/settings/developers) pour générer un token d'API, indispensable pour l'enrichissement musical. - Idem pour **TMDB** (films), **Hardcover** (livres) et **IGDB** (jeux vidéo) — toutes les clés sont facultatives mais enrichissent l'expérience si elles sont renseignées. - Définir `BASE_URL` correctement si vous déployez derrière un reverse proxy avec sous-chemin. - Choisir la langue d'interface par défaut (français, anglais, espagnol, italien, allemand). - Sauvegarder régulièrement le volume `dvinyl-mongo` (export `mongodump` recommandé). ## Alternatives ### Open source - [[app-koillection]] — équivalent français très mature, avec scrapers HTML/JSON personnalisés - **Beets** — gestionnaire de bibliothèque musicale (audio numérique principalement) - **Plex/Jellyfin** — pour les films/séries, mais orienté streaming - **Varken** — dashboard pour Sonarr/Radarr/Plex, pas une collection manager ### Propriétaires - **Discogs** — la référence mondiale pour les vinyles, mais base de données centralisée et freemium pour les fonctionnalités avancées - **Delicious Library** — app Mac/Windows pour cataloguer tous médias - **CLZ** — solutions connectées (mobile + cloud) avec scan de codes-barres ## Sécurité - **Authentification par login/password** avec sessions serveur, suffisamment sécurisée pour un usage privé ou familial. - **HTTPS obligatoire** en production : déployer derrière un reverse proxy (Traefik, Caddy, NPM). - Les **clés d'API tierces** sont sensibles : ne pas les exposer dans un dépôt Git public. - **Sauvegardes MongoDB** fréquentes (`mongodump` quotidien recommandé) — c'est votre seule source de vérité. - Si exposition publique, activer un **reverse proxy** avec rate limiting et fail2ban sur les ports exposés. ## Ressources - Site officiel : https://kyonew.me/dvinyl - Dépôt GitHub : https://github.com/Kyonew/DVinyl - Image GHCR : https://github.com/users/Kyonew/packages/container/package/dvinyl - Documentation : https://github.com/Kyonew/DVinyl/blob/main/docs/getting-started.md - Présentation XDA : https://www.xda-developers.com/self-hosted-app-let-me-ditch-discogs-catalog-record-collection/ ## Pages Liées - [[cat-tracking]] - [[recettes-docker-compose]]