UniRhy is a self-hosted music streaming platform organized as a monorepo with separated backend, frontend, and website projects. It aims to provide deployable and extensible music library management, playback, and synchronization capabilities.
English | 简体中文
Note
This project is still in a very early stage. Feedback and contributions of all kinds are welcome, and existing features may still change significantly.
![]() |
![]() |
All album covers shown are public domain (CC0 / Public Domain Mark) artworks from The Met Open Access and Internet Archive netlabels. Album, artist, and track names are fictional demo data.
- Self-hosted deployment with no external service dependency.
- Music resource management.
- Cross-platform clients for Web, macOS, Android, iOS, and Windows.
- Playback state synchronization.
- Plugin-based extension support.
server/: Backend service based on Spring Boot, Kotlin, Gradle, and Jimmer ORM.web/: Main frontend client based on Vue, TypeScript, Vite, Pinia, and Tailwind CSS, including Tauri 2 desktop configuration.website/: Project website based on Vue, TypeScript, and Vite.docker/: Containerization files.docs/: Project-level supplementary documentation, including release notes underdocs/release_notes/.
- JDK 25
- Node.js 24
- Yarn 4.12+
- PostgreSQL
cd server
./gradlew bootRuncd web
yarn
yarn devcd website
yarn
yarn dev- Terminology Dictionary
- Backend Testing Guide
- Playback Sync
- Backend Dependencies
- Frontend Dependencies
See LICENSE.

