A decentralized music tracking and discovery platform built on the AT Protocol π΅ , see Rocksky.
- Last.fm Compatible API β drop-in replacement for Last.fm scrobblers
- ListenBrainz Compatible API β works with clients that support ListenBrainz
- Recently Played Timeline β browse your listening history
- Stories View β see what other users are playing in real time
- Stats β visualize scrobbles per day
- Top Artists, Tracks, and Albums β personalized charts of your listening habits
- Shoutbox & Likes β interact with other listeners and share reactions
- Spotify β detect now playing tracks and scrobble directly from Spotify
- Jellyfin β track plays from your media server
- Pano Scrobbler β Android/Linux/Windows support
- WebScrobbler β scrobble directly from your browser
- Search Engine β fast search powered by MeiliSearch
- Webhooks - subscribe to scrobble events and integrate with Discord or your own apps
- Personalized Feeds β discover music through community-driven feed algorithms
- Last.fm β Rocksky Mirroring (Future Scrobbles) β automatically mirror new scrobbles from Last.fm into Rocksky
- Rocksky Connect β remote playback across devices (similar to Spotify Connect)
- Multi-Source Libraries β browse and scrobble from Google Drive, Dropbox, S3, FTP, and more
- Stream & Scrobble Your Own Music β upload your library and play directly on Rocksky
- Extensions β customize and extend Rocksky with your own logic
- Crossfade & Equalizer Settings Sync β carry your playback preferences across devices
- Node.js (v22 or later)
- Deno
- Rust
- Go
- Turbo
- Docker
- Wasm Pack https://rustwasm.github.io/wasm-pack/installer/
- DuckDB https://duckdb.org/docs/installation
1.2.0 - Spotify
SPOTIFY_CLIENT_IDandSPOTIFY_CLIENT_SECRETfrom setup in Spotify developer dashboard
-
Clone the repository:
git clone git@tangled.sh:rocksky.app/rocksky cd rocksky -
Install dependencies:
npm install -g turbo bun install bun run build:raichu
-
Set up the environment variables:
cp apps/api/.env.example apps/api/.env cp .env.example .env # Edit the .env files to add your configurations -
Start the Docker containers:
docker compose up
-
Run the database migrations:
turbo db:migrate --filter=@rocksky/api
-
Setup Spotify App:
# don't forget to set SPOTIFY_ENCRYPTION_KEY and SPOTIFY_ENCRYPTION_IV environment variables bun run spotify <client_id> <client_secret>
-
Populate database (Optional):
bun run db:pgpull
-
Start Analytics API:
bun run dev:analytics
-
Start jetstream:
bun run dev:jetstream
-
Start musicbrainz:
bun run mb- Start the development server:
turbo dev --filter=@rocksky/api --filter=@rocksky/webThis repository is the central place to collect feedback and issues related to Rocksky.
Please open an issue if you want to leave feedback. Feel free to also join our Discord server
We would love to hear your feedback or suggestions. The best way to reach us is on Discord.
We also welcome pull requests into this repo. See CONTRIBUTING.md for information on setting up this repo locally.
