rekordbox-viewer/docker-compose.dev.yml
Geert Rademakes 7000e0c046 feat: Implement S3 music storage and playback functionality
- Add S3Service for file operations with MinIO/AWS S3 support
- Add AudioMetadataService for metadata extraction
- Add MusicFile model with MongoDB integration
- Add music API routes for upload, streaming, and management
- Add MusicUpload component with drag-and-drop functionality
- Add MusicPlayer component with custom audio controls
- Add MusicStorage page with complete music management interface
- Update Docker Compose with MinIO service
- Add comprehensive documentation and testing utilities

Features:
- S3-compatible storage (MinIO for local, AWS S3 for production)
- Audio file upload with metadata extraction
- Browser-based music streaming and playback
- File management (upload, delete, search, filter)
- Integration with existing Rekordbox functionality
- Security features (file validation, presigned URLs)
- Performance optimizations (indexing, pagination)

Supported formats: MP3, WAV, FLAC, AAC, OGG, WMA, Opus
2025-08-06 13:44:17 +02:00

56 lines
1.3 KiB
YAML

version: '3.8'
services:
mongo:
image: mongo:latest
ports:
- "27017:27017"
volumes:
- mongodb_dev_data:/data/db
environment:
- MONGO_INITDB_DATABASE=rekordbox
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
restart: unless-stopped
minio:
image: minio/minio:latest
ports:
- "9000:9000"
- "9001:9001"
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
volumes:
- minio_dev_data:/data
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
start_period: 30s
restart: unless-stopped
# MinIO client for initial setup
minio-client:
image: minio/mc:latest
depends_on:
- minio
command: >
sh -c "
sleep 10 &&
mc alias set myminio http://minio:9000 minioadmin minioadmin &&
mc mb myminio/music-files &&
mc policy set public myminio/music-files &&
echo 'MinIO setup complete'
"
restart: "no"
volumes:
mongodb_dev_data:
minio_dev_data: