---
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]]
