 
A music system designed to manage and stream music libraries with tens of millions of songs
Features β’ Quick Start β’ Documentation β’ Contributing β’ Support
Melodee is a comprehensive music management and streaming system built with .NET 9 and Blazor. It provides a complete solution for processing, organizing, and serving large music libraries through both restful and OpenSubsonic-compatible APIs.
- π Smart Media Processing: Automatically converts, cleans, and validates inbound media
- ποΈ Staging Workflow: Manual editing capabilities before adding to production libraries
- π Automated Jobs: Cron-like scheduling for library scanning and updates
- π΅ OpenSubsonic API: Compatible with popular Subsonic and OpenSubsonic clients
- π Melodee API: Fast restful API
- π Modern Web UI: Blazor Server interface with Radzen UI components
- π³ Container Ready: Full Docker/Podman support with PostgreSQL
- Podman or Docker
- Podman Compose (for Podman users)
- 
Clone the repository git clone https://github.com/sphildreth/melodee.git cd melodee
- 
Configure environment variables # Copy and edit the example environment file cp example.env .env nano .envUpdate the following variables in .env:# Database password (change this!) DB_PASSWORD=your_secure_password_here # Port configuration MELODEE_PORT=8080 
- 
Deploy the application # Using Podman Compose podman-compose up -d # Or using Docker Compose docker compose up -d 
- 
Access the application - π Read the documentation on how to get started
- Web Interface: http://localhost:8080
- Register as a new user, the first user will be setup as administrator
- Configure clients to connect to your server
- Enjoy an ad-free and self-hosted music streaming service π
 
To update to the latest version:
# Stop the current deployment
podman-compose down
# Pull the latest changes
git pull origin main
# Rebuild and restart
podman-compose up -d --buildNote: Database migrations are handled automatically during container startup.
Melodee uses several persistent volumes for data storage:
| Volume | Purpose | Description | 
|---|---|---|
| melodee_storage | Music Library | Processed and organized music files | 
| melodee_inbound | Incoming Media | New media files to be processed | 
| melodee_staging | Staging Area | Media ready for manual review | 
| melodee_user_images | User Content | User-uploaded avatars | 
| melodee_playlists | Playlists | Admin defined (json base) dynamic playlists | 
| melodee_db_data | Database | PostgreSQL data | 
To backup your data:
# Backup volumes
podman volume export melodee_storage > melodee_storage_backup.tar
podman volume export melodee_db_data > melodee_db_backup.tar
# Restore volumes
podman volume import melodee_storage melodee_storage_backup.tar
podman volume import melodee_db_data melodee_db_backup.tar- 
Inbound Processing - Converts media to standard formats
- Applies regex-based metadata rules
- Validates file integrity and metadata
 
- 
Staging Management - Manual editing of metadata before production
- Album art management
- Quality control workflow
 
- 
Production Libraries - Automated scanning and indexing
- Multiple storage library support
- Real-time updates
 
- Media Format Support: AAC, AC3, M4A, FLAC, OGG, APE, MP3, WAV, WMA, and more
- Metadata Sources: iTunes, Last.FM, MusicBrainz, Spotify
- File Parsers: NFO, M3U, SFV metadata files
Full compatibility with Subsonic 1.16.1 and OpenSubsonic specifications:
- Real-time transcoding (including OGG and Opus)
- Playlist management
- User authentication and permissions
- Album art and metadata serving
- MeloAmp (desktop)
- Melodee Player (Android Auto)
- Airsonic (refix)
- Dsub
- Feishin
- Symphonium
- Sublime Music
- Supersonic
- Ultrasonic
- Cron-like scheduling system
- Configurable scan intervals
- Background processing
- Progress monitoring
| Component | Description | Technology | 
|---|---|---|
| Melodee.Blazor | Web UI and OpenSubsonic API server | Blazor Server, Radzen UI | 
| Melodee.Cli | Command-line interface | .NET Console App | 
| Melodee.Common | Shared libraries and services | .NET Class Library | 
- .NET 9.0 or later
- PostgreSQL 17 (included in container deployment)
- 2GB RAM minimum (4GB recommended)
- Storage: Varies based on music library size
We welcome contributions! Please see our Contributing Guide for details.
- 
Clone the repository git clone https://github.com/sphildreth/melodee.git cd melodee
- 
Install .NET 9 SDK # Follow instructions at https://dotnet.microsoft.com/download
- 
Run locally dotnet run --project src/Melodee.Blazor 
This project adheres to the Contributor Covenant Code of Conduct.
This project is licensed under the MIT License - see the LICENSE file for details.
- Melodee Music System: Home
- Discord: Join our community
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Built with .NET 9
- UI powered by Radzen Blazor Components
- Compatible with OpenSubsonic specification
- Music metadata from MusicBrainz, Last.FM, and Spotify
