1616
1717---
1818
19- ## ✨ Features
20-
21- - 🎵 ** Discogs Integration** - Search and add albums using the Discogs database
22- - 📊 ** Smart Insights** - Collection statistics, format distribution, and top artists
23- - 🔍 ** Advanced Filtering** - Filter by format, decade, or date added
24- - 📱 ** Responsive Design** - Works on desktop, tablet, and mobile
25- - 🌓 ** Dark/Light Mode** - Toggle between themes
26- - 👥 ** Multi-user Support** - Each user has their own private collection
27- - 🔐 ** Admin Dashboard** - Manage users with an intuitive admin panel
28- - 📦 ** CSV Import** - Import from Discogs exports
29- - 🐳 ** Docker Ready** - Easy deployment with Docker Compose
30-
31- ## 📸 Screenshots
19+ ## Features
20+
21+ - ** Discogs Integration** - Search and add albums using the Discogs database.
22+ - ** OIDC SSO Support** - Enterprise-ready authentication with OpenID Connect (e.g., Authentik, Keycloak).
23+ - ** PWA Ready** - Installable on mobile and desktop devices with offline capabilities.
24+ - ** Multi-user Support** - Secure private collections for multiple users.
25+ - ** Collection Sharing** - Share your collection via public links with optional password protection.
26+ - ** Smart Insights** - View collection statistics, format distribution, and top artists.
27+ - ** Advanced Filtering** - Sort and filter by format, decade, date added, and more.
28+ - ** Condition Grading** - Track the media and sleeve condition of your albums.
29+ - ** Random Picker** - Shuffle your collection to help decide what to listen to next.
30+ - ** ID Lookup** - Quickly find releases by Discogs ID or Barcode.
31+ - ** Responsive Design** - Optimized for desktop, tablet, and mobile usage.
32+ - ** Dark/Light Mode** - Toggle between aesthetic themes.
33+ - ** Admin Dashboard** - Manage users and settings.
34+ - ** Docker Ready** - Simple deployment using Docker Compose.
35+
36+ ## Screenshots
3237
3338<p align =" center " >
3439 <img src =" docs/screenshots/collection-dashboard.png " alt =" Collection Dashboard " width =" 800 " >
6570 <br ><em >Public Collection - Share your collection with others</em >
6671</p >
6772
68- ## 🚀 Quick Start
73+ ## Quick Start
6974
7075### Prerequisites
7176
@@ -81,7 +86,7 @@ cd musivault
8186
8287# Configure environment
8388cp .env.example .env
84- # Edit .env with your SESSION_SECRET, DISCOGS_KEY, and DISCOGS_SECRET
89+ # Edit .env with your configuration
8590
8691# Start the application
8792docker compose pull
@@ -92,20 +97,29 @@ Access the app at [http://localhost:3000](http://localhost:3000)
9297
9398### Environment Variables
9499
95- | Variable | Description | Required |
96- | ----------| -------------| ----------|
97- | ` SESSION_SECRET ` | Session encryption key | ✅ |
98- | ` DISCOGS_KEY ` | Discogs API consumer key | ✅ |
99- | ` DISCOGS_SECRET ` | Discogs API consumer secret | ✅ |
100- | ` PORT ` | Application port (default: 3000) | ❌ |
101- | ` MONGO_URI ` | MongoDB connection string | ❌ |
102- | ` ADMIN_EMAIL/USERNAME/PASSWORD ` | Initial admin user | ❌ |
103- | ` BACKEND_HOST ` | Backend hostname for nginx proxy (default: musivault-backend) | ❌ |
104- | ` BACKEND_PORT ` | Backend port for nginx proxy (default: 5000) | ❌ |
105-
106- Generate a session secret: ` openssl rand -base64 32 `
107-
108- ## 🛠️ Tech Stack
100+ | Variable | Description | Default | Required |
101+ | ----------| -------------| ---------| ----------|
102+ | ` SESSION_SECRET ` | Session encryption key | - | Yes |
103+ | ` DISCOGS_KEY ` | Discogs API consumer key | - | Yes |
104+ | ` DISCOGS_SECRET ` | Discogs API consumer secret | - | Yes |
105+ | ` MONGO_URI ` | MongoDB connection string | mongodb://mongodb:27017/musivault | No |
106+ | ` PORT ` | Application port | 3000 | No |
107+ | ` JWT_SECRET ` | JWT signing secret | ${SESSION_SECRET} | No |
108+ | ` ADMIN_EMAIL ` | Initial admin email | - | No |
109+ | ` ADMIN_USERNAME ` | Initial admin username | - | No |
110+ | ` ADMIN_PASSWORD ` | Initial admin password | - | No |
111+ | ` OIDC_ISSUER ` | OIDC Issuer URL | - | No |
112+ | ` OIDC_CLIENT_ID ` | OIDC Client ID | - | No |
113+ | ` OIDC_CLIENT_SECRET ` | OIDC Client Secret | - | No |
114+ | ` OIDC_REDIRECT_URI ` | OIDC Redirect URI | - | No |
115+ | ` OIDC_PROVIDER_NAME ` | Name of the SSO provider | SSO | No |
116+ | ` FRONTEND_URL ` | URL of the frontend (for CORS/Auth) | - | No |
117+ | ` IMAGE_TAG ` | Docker image tag to use | latest | No |
118+ | ` ENABLE_BACKGROUND_MIGRATION ` | Run heavy DB migrations in background | false | No |
119+ | ` BACKEND_HOST ` | Backend hostname for Nginx | musivault-backend | No |
120+ | ` BACKEND_PORT ` | Backend port for Nginx | 5000 | No |
121+
122+ ## Tech Stack
109123
110124| Frontend | Backend | Infrastructure |
111125| ----------| ---------| ----------------|
@@ -114,7 +128,7 @@ Generate a session secret: `openssl rand -base64 32`
114128| Vite | JWT Authentication | GitHub Actions |
115129| TailwindCSS + DaisyUI | | |
116130
117- ## 💻 Development
131+ ## Development
118132
119133``` bash
120134# Install dependencies
@@ -131,7 +145,7 @@ Or with Docker:
131145docker compose -f docker-compose.dev.yml up --build
132146```
133147
134- ## 📦 Docker Images
148+ ## Docker Images
135149
136150Pre-built images are available on GitHub Container Registry:
137151
@@ -140,7 +154,7 @@ ghcr.io/jeanball/musivault/backend:latest
140154ghcr.io/jeanball/musivault/frontend:latest
141155```
142156
143- ## 🔧 Management
157+ ## Management
144158
145159``` bash
146160docker compose logs -f # View logs
@@ -149,18 +163,14 @@ docker compose down # Stop application
149163docker compose pull && up -d # Update to latest
150164```
151165
152- ## 🤝 Contributing
166+ ## Contributing
153167
1541681 . Fork the repository
1551692 . Create your feature branch (` git checkout -b feature/amazing-feature ` )
1561703 . Commit your changes (` git commit -m 'Add amazing feature' ` )
1571714 . Push to the branch (` git push origin feature/amazing-feature ` )
1581725 . Open a Pull Request
159173
160- ## 📄 License
174+ ## License
161175
162176MIT License - see [ LICENSE] ( LICENSE ) for details.
163-
164- ---
165-
166- <p align =" center " >Made with ❤️ for music collectors</p >
0 commit comments