DVinyl
Self-hosted collection manager for vinyl, CDs, books, movies, and games
Alternative to: collectorz, discogs
DVinyl is a self-hostable collection manager for physical media lovers, letting you catalog, value, and organize vinyl records, CDs, books, movies, games, and LEGO sets from one place. It's plugin-based, so each media type can be toggled on independently or extended with custom types, and it pulls rich metadata from Discogs, TMDB, IGDB, Hardcover, and Rebrickable. It supports barcode scanning, wishlists, multi-collection and multi-user access with optional SSO/OIDC, and shareable collection links.
DVinyl Docker Compose example
Self-host DVinyl on your own server, homelab, or VPS starting from this Docker Compose example.
It runs DVinyl in Docker containers using the official ghcr.io/kyonew/dvinyl:latest, mongo:latest images, with persistent volumes and automatic restarts preconfigured.
Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.
services:
dvinyl-app:
image: ghcr.io/kyonew/dvinyl:latest
restart: unless-stopped
depends_on:
- mongodb
environment:
# MongoDB connection string (points at the bundled mongodb service).
MONGODB_URL: "mongodb://mongodb:27017/dvinyl"
# Secret used to sign session tokens. Must differ from SESSION_SECRET; generate with: openssl rand -hex 32
PASSJWT: "4c6524bd32c20dbad852b8d2dea72167fb70df8498915f862dbee5666b5f99bb"
# Secret used to encrypt sessions. Must differ from PASSJWT; generate with: openssl rand -hex 32
SESSION_SECRET: "fbd506fa6b3f05657aeaa170ba498bf3327f65288a7a00fb0841306cfb3daeea"
# Set to "true" ONLY when the app itself serves over HTTPS. Behind a TLS-terminating reverse proxy, keep "false".
PROD: "false"
# Port DVinyl listens on inside the container.
VINYL_PORT: "3099"
# Sub-path prefix to serve from; leave empty to serve from the root.
BASE_URL: ""
# Discogs API token, enables music (vinyl/CD) metadata lookups.
DISCOGS_TOKEN: ""
# Hardcover API key, enables book metadata lookups.
HARDCOVER_API_KEY: ""
# TMDB API key, enables movie/DVD metadata lookups.
TMDB_API_KEY: ""
# Twitch client ID, enables game (IGDB) metadata lookups.
TWITCH_CLIENT_ID: ""
# Twitch client secret, enables game (IGDB) metadata lookups.
TWITCH_CLIENT_SECRET: ""
# Rebrickable API key, enables LEGO set metadata lookups.
REBRICKABLE_API_KEY: ""
volumes:
# Uploaded cover art and user files.
- uploads:/app/public/uploads
mongodb:
image: mongo:latest
restart: unless-stopped
volumes:
# MongoDB database files.
- mongo_data:/data/db
volumes:
uploads:
mongo_data: Prefer a managed setup? WinterFlow installs, configures, and updates DVinyl for you using this same Docker Compose configuration.