Key Features • How To Use • Download • Credits • License
- Interface made in React and Next.js
- Music data provided by Deezer
- Artist view of top songs and albums
- Album view
- Discover page with various categories of music
- Live, synced lyrics from lrclib.net
- Account management system
- Track history
- Liked tracks playlist
- User created playlists
- PWA Installable on iOS, Android, and Desktop
- Self-hostable
- Modular plugin system to utilize different services for playback
- Guest view for users without an account
- And more!
To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:
# Clone this repository
$ git clone https://github.com/directlycrazy/Sonata
# Go into the repository
$ cd sonata
# Install dependencies
$ npm install
# Create the database directory
$ mkdir database
# Generate database
$ npm run migrate
#Build the app
$ npm run build
Please ensure the following environment variables are set to ensure the correct function of Sonata. Each can be changed depending on your preferences for how "open" the app should be to guests, and if users should be allowed to sign up.
# Public URL of the application
BASE_URL=http://localhost:3000
# Allow unauthenticated users to access basic functionality (browse, search, listen to audio previews)
GUESTS_ALLOWED=true
# If user signup/account creation is enabled.
SIGNUPS_ALLOWED=false
# Run the app
$ npm prod:start
You can download the latest version of Sonata for any platform with Node >= 18. Please refer to the build steps above to get your instance running.
This software has been made possible thanks to the following open-source packages:
GNU GPLv3
Created by @directlycrazy