DVinyl is a modern, self-hostable collection manager designed for physical media enthusiasts. From Vinyls and CDs to Books and Movies, catalog, value, and organize your entire physical library through a single, customizable interface.
Built in JavaScript.
DVinyl allows you to keep track of your physical music, books or even DVD collection. It uses the Discogs API, Hardcover API & TMDB API to retrieve important metadata and, for music, market valuations for your collection. This provides you with a convenient and full customizable dashboard for your home server.
- Multi-Format Support: Manage your Music (Vinyls, CDs, Cassettes), Books (Manga, Comics, Hardcover), and Movies (Blu-ray, 4K, VHS, LaserDisc) in one unified library.
- Smart Import: Add items instantly using Discogs Release IDs or import your entire existing Discogs collection in one click.
- Physical Scanner:* Scan your physical media to bridge the gap between your shelf and your digital database.
- Advanced Organization: Easily track the physical location of every item in your home.
- Tailored Interface: Customize your navigation bar with shortcuts that matter to you.
- Personalized Analytics: Build your dashboard with modular statistics widgets.
- Category Themes: Apply unique visual themes to differentiate your music, book, and movie libraries.
- Native Design: Optimized for mobile with seamless Dark & Light modes.
- Market Insights: Get real-time value estimates (Low/Median/High) for your music collection.
- Wishlist System: Keep track of your future finds.
- Secure Access: Integrated authentication system for private viewing or sharing your collection with others.
- Multilingual: Fully localized in English 🇬🇧 and French 🇫🇷.
*(may only work in France)
To keep things organized, I have split the documentation into specialized guides:
- 🏁 Getting Started - Manual installation and requirements.
- 🐳 Docker Deployment - Deploying via Docker Compose (Recommended).
- 🔑 API Configuration - How to obtain your Discogs, Hardcover and TMDB API keys.
The fastest way to run DVinyl is using the pre-built Docker image. You only need a docker-compose.yml and a .env file.
- Create a
docker-compose.yml(see Docker Deployment Guide for the full file). - Setup your environment variables in a
.envfile (go check how to get your api keys). - Run the application:
docker compose up -d
Access the application at http://localhost:3099.
| Component | Technology |
|---|---|
| Backend | Node.js / Express |
| Database | MongoDB |
| Frontend | EJS Templates |
| Styling | Tailwind CSS |
| Localization | i18next |
| API | Discogs / Hardcover / TMDB |
| 🖥️ Desktop View | 📱 Mobile View |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Honestly, this is my first app of this kind. I am open to any help and advice for this app and my future ones!
If you want to help, you can:
- Fork the project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
Important
Please note that parts of the frontend and docstrings were generated with the assistance of AI tools. While I reviewed and corrected the output where necessary, this project is not 100% human-made.
Your feedback is highly appreciated, even for the backend, where I may have made significant errors. I would be grateful for any suggestions or comments to improve the project.
Thank you for your understanding <3






