Your Music. Your Cloud.
[ 🌍 Website | ⚙️ Installation Guide | 🎵 Usage Guide ]
Distribution | Download | Quick Installation |
---|---|---|
Arch Linux | 📦 musicdb-8.1.0-1-any.pkg.tar.zst | pacman -U ./musicdb-8.0.0-1-any.pkg.tar.zst |
Fedora 36 | 📦 musicdb-8.1.0-1.fc36.noarch.rpm | dnf install ./musicdb-8.0.0-1.fc36.noarch.rpm |
Ubuntu 22.04 | 📦 musicdb-8.1.0-1_all.deb | apt install ./musicdb-8.0.0-1_all.deb |
Source Code | 📦 musicdb-8.1.0-src.tar.zst | ⚙️ Install from Source Code |
Documentation | 📦 musicdb-8.1.0-doc.tar.zst | ⚙️ Install Documentation |
⚙️ Install, Setup and Run MusicDB with Apache and Icecast
MusicDB requires Python 3 version 3.9.0 or later.
MusicDB is hardware independent. It works with any Linux distribution installed on PC, ARM (like Raspberry Pi) or Mac.
Important: See Transition from 7.2.0 to 8.0.0 in case you already have MusicDB 7.2.0 installed.
Important: After updating MusicDB from 8.0.0 to 8.1.0 check if configuration file (/etc/musicdb.ini) has been updated as well.
Some new album cover scales (200 and 1000) need to be configured.
Then restart musicdb (systemctl restart musicdb
).
Otherwise artworks are missing in the web front-end on high resolution screens.
[ ⚙️ Installation Guide | 🎵 Usage Guide | ⚙️ Architecture ]
MusicDB is a music manager with focus on remote access to your music collection using a web-based user interface. It allows you to manage an audio stream based on a song-queue. The WebUI is focusing on being a presentation of your music rather than being a database front-end.
So, when you are listening to your music, you do not work with software. Instead you explore your music collection.
I started this project on 4th January 2014. Since I finished a first prototype within one weekend, I use MusicDB almost every day. Time to share it with the world. 😃
- Improved album filter for genres and sub genres
- Experimental support for the Chromium web browser
- Some annoying bugs fixed (Most important: Uploading albums can be continued after connection error)
- Artwork Oriented: Albums and songs are represented by their artwork.
- Clean Presentation: No meta data overloaded list-based UI.
- Fuzzy search: The search allows you to have typos and issues with foreign languages.
- Focus on a Genre: Hide all music not tagged with the genres you currently like to listen to.
- Annotate your Mood: Use flags to annotate songs with specific moods or themes.
- Queue Based: No playlist management distracts you from your music. Put a songs into the queue, then it will be played.
- Private: Your music is stored on your private server.
- Everywhere: Control via Web Application. Listen via Audio Stream.
- Single User: MusicDB is a Single-User Multi-Client application. Connect all your computers to MusicDB without messing around with user management.
- No Limits: Scales with music collections of hundreds of albums.
- Independence: Keeps your music directory clean to use it with other tools as well. The file system is ground truth, not the database.
[ 💬 GitHub Discussions | 🐦 Twitter | 🐞 GitHub Issues ]
Providing and maintaining open source software comes with some downsides and a lot of work. I'd like to know if anyone is using this software, and what you are doing with it. 😃
- Star: Hit the ☆ to make this repository a bit more relevant.
- Feedback: Provide some feedback on GitHub Discussions. Why do you like, don't like or don't care about MusicDB.
- Experience: Share some experience or screenshots on GitHub Discussions or Twitter.
- Bug Reports: Create an Issue if something does not work as you expect.
- Feature Request: Create an Issue if you like to see some feature in MusicDB.
- Contact Me: Write me an e-mail if you don't like to write something on the public channels.
[ ⚙️ Installation Guide | 🎵 Usage Guide | 📚 Code Documentation ]
The start page of 📓 MusicDB's Documentation should give you the help you need to start. The documentation is also made for developers, not only users. So there is much more information than you will need to use MusicDB. For the beginning, focus on the following chapters:
- 📓 Installation and Setup Manual
- 📓 Check the MusicDB Configuration
- 📓 Upload and Import Music to MusicDB
- 📓 WebUI Documentation
Some helpful hints:
- Don't be to specific with the genre tags. Define only one tag per genre like Metal, Pop, Classic, …
- Use sub-genre tags for a more detailed classification.
- Tag albums beforehand and songs only when they are currently playing.
- Set mood-flags only for the current playing song.
- Check the 📓 Configuration of Randy to make sure the random song selection can work with your music collection. When you have a small music collection, decrease the blacklist sizes.
- When defining the Album-View colors, pay attention to good contrast and follow the color scheme of the album cover.
If there are any problems setting up MusicDB, create an issue.
[ ⚙️ Architecture | 📚 Code Documentation ]
This section gives you a rough overview of some technical details you may want to know before installing MusicDB.
I test MusicDB only with the latest version of the requirements listed below. If MusicDB breaks when updating dependencies, it's a bug in MusicDB. Then please create an issue including the name and version of the dependency that causes issues. In case MusicDB does not run on outdated operating systems, update your system 😉
- A Linux operating system (Obviously 😃 )
- Python3 >= 3.9 for the back-end
- Icecast and GStreamer for streaming
- Apache for serving the Web User Interface
- A detailed list of all dependencies can be found in the Install from Source documentation
MusicDB is hardware independent. It works with any Linux distribution installed on PC, ARM (like Raspberry Pi) or Mac.
I develop and operate MusicDB on an Arch Linux for x86-64. So on this system it will run most reliable 😃.
I do not support Debian/Ubuntu distributions for lots of reasons.
Anyway, periodically I test MusicDB also on an Raspberry Pi 4 with Ubuntu or Raspberry PI OS which is Debian based. So, in principle it works. There may be a .deb package for the latest Ubuntu system, but again, expect some difficulties using MusicDB on Debian/Ubuntu. Some quirks with Debian/Ubuntu are documented in the installation documentation.
Sometime it happens that MusicDB does not run on certain distributions like Debian or Ubuntu LTS because the packages provided by those distributions are too old. I consider this as an issue of those distributions, not of MusicDB.
For best experience I recommend Arch Linux or Fedora to run MusicDB.
🟢 Test succeeded, 🔴 Test failed, 🟡 Not tested
The following list shows on which Linux distribution installing and running the MusicDB back-end succeeded:
The following list shows on which web browser running the MusicDB front-end succeeded:
1: Python too Old - Python 3.9+ is required;
MusicDB is under active development since 2014. Because I use this software every day, it will remain under active development for a long time. Beside maintaining this software, I also think about improving it or adding new features if necessary.
The following list contains all huge improvements I'm planning to add to MusicDB. The links are pointing to the corresponding GitHub Project page.
Integration of Music Videos (Alpha Stage)
Integrate music videos into the MusicDB infrastructure.
The UI should be switch to video-mode.
Then, instead of showing artists and their albums, artists and their videos will be shown.
The videos can then be put into a video-queue that get streamed.
Virtual Albums (Planning Phase)
Virtual albums are a collection of single songs that are not related to an album, or a collection of sym-links to (for example) remixes.
MusicAIv2 (Idea)
Next generation of MusicAI. I already miss the old one that was surprisingly helpful tagging songs. The next generation might base on TensorFlow 2.0 directly. I will have the same or similar architecture since it worked in the past.
More ideas in "brain-storming-phase" can be found on the Roadmap GitHub Project page