Important
This is a major release. The entire app was rebuilt from the ground up and your data will be automatically migrated on first launch. I'm a solo maintainer testing this alone, so please export a backup before updating. If something doesn't work right away on your setup, open an issue and I'll fix it fast. 🙏
This is the biggest release DVinyl has ever had. The app has been fully rewritten in TypeScript on a brand-new plugin architecture, opening the door to multi-collection support, single sign-on, custom item types, and a whole family of new and improved plugins.
👉 Want to see the new multi-collection experience before updating? Take a look at the live demo.
🧩 A Brand-New Foundation
- Full TypeScript Rewrite: The entire codebase has been migrated to TypeScript with modernized runtime dependencies for better stability, safety, and maintainability.
- Plugin Architecture: DVinyl is now built as a lean core + independent plugins. Every media type (vinyl, music, movies, books, games...) is a self-contained plugin, making the app far easier to extend and customize.
📚 Multi-Collection Support
- Multiple Collections: Create and manage several independent collections, each with its own settings and enabled plugins.
- Roles & Permissions (RBAC): Fine-grained per-collection access control so you can decide who sees and edits what.
- Instance Admin Panel: A new instance-level admin area to manage collections, users, and global settings from one place.
🔐 Authentication
- OIDC / SSO Login: Optional Single Sign-On with automatic account linking, compatible with Authentik, Keycloak, Authelia, and other identity providers. Keep just one login for all your self-hosted services.
Big thanks to @jhuesser for suggesting OIDC integration!
🔌 New & Improved Plugins
- LEGO Plugin: Track your LEGO sets with data pulled from the Rebrickable API. Thanks to @Gandalf-the-Blue for the idea!
- Music, Per-Track Details: Add per-track ratings, tags, notes, BPM and key, plus lyrics (via lyrics.ovh or entered manually). Suggested by @raorm88.
- Games, Favorite Console Widget: A new widget highlighting your favorite/most-owned console, along with a platform filter for the games collection. Thanks to @LordChabelo for the suggestion!
- New "Digital" Format: Added a
digitalformat for items you own digitally while hunting for the physical copy. Also suggested by @LordChabelo. - Synopsis on Detail Pages: Books, movies/TV shows and video games now show their summary right on the item detail page (book overview via Hardcover, movie overview via TMDB, game summary via IGDB).
🎨 Build Your Own
- Plugin Builder (No-Code): A new plugin editor hub lets you create your own manual-entry item types, no coding required.
- Per-Collection Customization: Customize plugin icons and badge colors on a per-collection basis.
👤 Profile & Personalization
- Gravatar Import: Import your avatar directly from Gravatar.
- Avatar Removal: Easily remove your avatar from settings.
🛠 Other Improvements
- Hardened Migration: Extensive work to make the 2.6.0 → 3.0.0 migration safe and idempotent, including handling of malformed theme presets, native-driver backfills, and duplicate-warning edge cases.
- Safer Deployment: Updated Docker Compose configuration, TypeScript type-safety improvements across route handlers, and various build and documentation updates.
- Makefile Shortcuts: A new Makefile wraps the common commands (
make setup,make dev,make docker-up,make docker-update,make docker-logs...) so you can spin up, update, and manage your instance without memorizing long commands. Runmake helpto see them all. - More Debug Logging: Added extra logging across authentication, database, and admin routes to make troubleshooting and bug reports easier.
📖 Documentation & Wiki
- Expanded Docs: More thorough documentation covering installation, Docker deployment, API keys, and plugin development.
- New Wiki: A brand-new Wiki full of friendly, no-jargon tutorials to help you get started, including getting around DVinyl, importing your collection, using it on your phone, customizing your instance, users & sharing, backups & restore, and building your own no-code plugin.
I hope you like this version. A big thank you to @jhuesser, @Gandalf-the-Blue, @raorm88 and @LordChabelo for the great suggestions in this release, and a big thank you to everyone who opens issues to suggest improvements or report bugs.
Love u all <3