Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+115
View File
@@ -0,0 +1,115 @@
---
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]]