Pony is an open source music streaming server written in Java.
This project was originally started as a playground for development of my skills in Java and modern web interfaces. Later it turned into something that I really like to use myself. If you have an MP3 collection that you want to listen in your web browser, then probably it's a project for you. This is the second version of Pony Music Streamer and I've finally decided to finish it as a ready-to-use application. I hope somebody else finds it useful ;-)
Status: version 0.1 is ready.
- Optimized for large music collections (tested on hundreds of gigabytes).
- Easy-to-use web GUI.
- MP3 audio library based on contents of ID3 tags.
- Display of music artworks - both MP3-embedded and file based.
- HTML5 audio player.
- Multi-user system with separation of roles.
- Installation GUI.
- Multimedia keys support in Google Chrome browser with the help of Media Keys by Sway.fm extension.
- RESTful API.
Library view with playing audio:
Integration with "Media Keys by Sway.fm" Chrome extension:
Library folders configuration with automatic scan scheduling:
Scan log and progress indicator:
Email and password based authentication:
List of users:
User edit:
System log:
Log message details to see what exactly went wrong:
Installation:
Online demo can be tested here: http://pony.dorokhov.net/demo
Please authenticate with "[email protected]" as email and "demo" as password.
Pony is still in development and if you want to install Pony there is no other way than build it. Ready-to-run distribution is still TODO.
- Clone the repository.
- Run Maven build on "server/pony.server" project.
- Get the WAR file from "server/pony.web/target" and deploy it into Tomcat or Jetty application server.
- Open your deployed application, fill the installation form and install Pony.
- Wait until your library is scanned.
- Enjoy your online MP3 collection :-)
- Currently only MP3 audio is supported.
- Needs more testing in different browsers. I test mostly in Google Chrome.
- Needs more testing on Windows. I test mostly on Mac OS X and Linux.
- Current web GUI is targeted at the latest versions of desktop browsers (Chrome, Firefox, Safari, Internet Explorer 11). Other browsers (including mobile ones) are currently not supported.
- Spring MVC
- RESTful JSON API
- Spring Data JPA
- JPA / Hibernate / H2
- Hibernate Search / Lucene
- Spring Security
- Token-based authentication system.
- JSR 303 Bean Validation (Hibernate Validator)
- Google Web Toolkit
- GWT-Platform
- RestyGWT
- GwtBootstrap3
- Maven
- Library statistics GUI (number of songs, total file size, etc.)
- Edit current user GUI.
- Export artist / album / song GUI.
- Search GUI.
- Edit audio tags GUI.
- Playback mode GUI: shuffle, repeat, repeat all, etc.
- Ready-to-run distrubution.
- REST API documentation.
- More tests.
- iOS application.
- Android application.