Munic is a very simple web-based music server and player. The server is intended to run with minimal setup and consume minimal system resources (memory, disk space, CPU and network bandwidth). It runs very comfortably on a Raspberry Pi Zero alongside nginx, PiHole and several other applications, or on my very under-powered Buffalo Linkstation LS220D even transcoding for a single user.
It presents your music in the structure it is stored on disk. This makes it very fast to scan, but it relies on your music collection being organised nicely, for example named Artist/Album/01 First Song.mp3
.
It will transcode music (to ogg or mp3, using ffmpeg) if your browser does not support the format it is stored in.
It does not read ID3 tags or other metadata. Fuller-featured music servers/players are available if that is what you want: Jellyfin looks good, for example.
Munic is tested on Ubuntu 22.04 and Debian Buster, but should work on any Linux with python3. Let me know if you try it on other operating systems (Windows, Mac...).
- Ensure you have ffmpeg installed (
sudo apt install ffmpeg
) - Clone or download the respository (
git clone ...
etc.) cd Munic
./music.py \path\to\your\music\library [\another\path\] [\yet\another\music\path]
- Browse to
http://localhost:4444
- The rest should be pretty obvious
Munic is working and usable. There are a few more nice-to-have things I would like to do -- see the todo list below.
- Add command-line config options: port, user:pass, or config file
- Add command-line help
- Document nginx reverse proxy setup
- m3a playlist support (including generating custom playlists)
- Change the header graphic to that of the currently-playing song
I am happy to accept contributions if they meet the goals of what I am trying to do - send me a message if you're not sure. If they don't meet my goals, you are welcome to fork the project, of course.