All apps · 0 apps
DVinyl
Docker app from Kyonew's Repository
Overview
Readme
View on GitHub
DVinyl is a modern, self-hostable collection manager designed for physical media enthusiasts. From Vinyls and CDs to Books, Movies and Games, catalog, value, and organize your entire physical library through a single, customizable interface.
Built in JavaScript.
Overview
DVinyl allows you to keep track of your physical music, books or even DVD collection. It uses the Discogs API, Hardcover API, IGDB 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.
✨ Key Features
📚 Universal Collection Management
- Multi-Format Support: Manage your Music (Vinyls, CDs, Cassettes), Books (Manga, Comics, Hardcover), and Movies (Blu-ray, 4K, VHS, LaserDisc) and video games 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.
🎨 Fully Customizable Experience
- 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.
💎 Advanced Tools & Privacy
- 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)
Documentation
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.
Quick Start (Docker)
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.
Tech stack
| Component | Technology |
|---|---|
| Backend | Node.js / Express |
| Database | MongoDB |
| Frontend | EJS Templates |
| Styling | Tailwind CSS |
| Localization | i18next |
| API | Discogs / Hardcover / TMDB / IGDB |
Screenshots with Ocean theme
| 🖥️ Desktop View | 📱 Mobile View |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
🤝 Contributing
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.
📄 License
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
Install DVinyl on Unraid in a few clicks.
Find DVinyl in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
Download Statistics
Related apps
Explore more like this
Explore allDetails
kyonew/dvinyl:latestRuntime arguments
- Web UI
http://[IP]:[PORT:3099]- Network
bridge- Shell
sh- Privileged
- false
Template configuration
The port DVinyl will be accessible on.
- Target
- 3099
- Default
- 3099
- Value
- 3099
Directory to store uploaded files like covers.
- Target
- /app/public/uploads
- Default
- /mnt/user/appdata/dvinyl/uploads
- Value
- /mnt/user/appdata/dvinyl/uploads
Connection string for your MongoDB instance. Replace [IP_OF_MONGODB] with your MongoDB container IP or Unraid IP if hosted on the same custom network.
- Target
- MONGODB_URL
- Default
- mongodb://[IP_OF_MONGODB]:27017/dvinyl
- Value
- mongodb://[IP_OF_MONGODB]:27017/dvinyl
Password used for JWT token encryption.
- Target
- PASSJWT
- Default
- ChangeThisToAComplexPassword
- Value
- ChangeThisToAComplexPassword
Secret used for sessions.
- Target
- SESSION_SECRET
- Default
- ChangeThisToAComplexSecret
- Value
- ChangeThisToAComplexSecret
Change to true ONLY if you use HTTPS via a reverse proxy.
- Target
- PROD
- Default
- false
- Value
- false
Internal port variable required by the app.
- Target
- VINYL_PORT
- Default
- 3099
- Value
- 3099
Base URL for serving on a sub-path, leave empty to serve from root.
- Target
- BASE_URL
Your Discogs API Token for Vinyls/CDs.
- Target
- DISCOGS_TOKEN
Your Hardcover API Key for Books.
- Target
- HARDCOVER_API_KEY
Your TMDB API Key for DVDs.
- Target
- TMDB_API_KEY
Your Twitch Client ID for Games.
- Target
- TWITCH_CLIENT_ID
Your Twitch Client Secret for Games.
- Target
- TWITCH_CLIENT_SECRET





