A lightweight music streaming server built with Rust that allows you to host and stream your MP3 music collection through a web interface with user authentication and third-party music metadata integration.
-
Clone and setup:
git clone <repository-url> cd muse cp .env_example .env mkdir -p runtime/music runtime/cache
-
Configure environment in
.env
:SERVER_BIND="127.0.0.1:8000" CACHE_DIR="runtime/cache" CONTACT_EMAIL="contact@example.com"
-
Add MP3 files to
runtime/music
and run:cargo run --release
-
Access at
http://127.0.0.1:8000
- MP3 Streaming: Stream your local MP3 files with HTTP range requests
- Web Interface: Modern, responsive web interface for desktop and mobile
- User Authentication: Secure login and registration system
- Playlist Management: Create and manage personal playlists
- Music Metadata: Integration with Spotify and MusicBrainz for metadata
- Intelligent Caching: Optimized caching system for performance
📚 Complete documentation is available in the docs/
directory:
- Installation Guide - Detailed setup instructions
- Configuration Guide - Environment variables and settings
- API Reference - Complete API documentation
- Technical Overview - Architecture and features
- Usage Guide - How to use the application
- Cache Formats - Cache system documentation
- Backend: Rust with Axum web framework
- Database: SQLite with SQLx
- Frontend: HTML/CSS/JavaScript with responsive design
- Authentication: bcrypt with cookie-based sessions
- Caching: BSON format with zstd compression
This project is licensed under the GNU Lesser General Public License v3.0 - see the LICENSE file for details.