Initial vault setup
This commit is contained in:
@@ -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]]
|
||||
Reference in New Issue
Block a user