https://github.com/tsirysndr/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 🎵
https://github.com/tsirysndr/rocksky
atproto lastfm listenbrainz musicbrainz scrobbling
Last synced: 3 months ago
JSON representation
A decentralized music tracking and discovery platform built on AT Protocol 🎵
- Host: GitHub
- URL: https://github.com/tsirysndr/rocksky
- Owner: tsirysndr
- License: mpl-2.0
- Created: 2025-01-28T19:33:42.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-03T10:45:37.000Z (3 months ago)
- Last Synced: 2026-04-03T15:57:36.166Z (3 months ago)
- Topics: atproto, lastfm, listenbrainz, musicbrainz, scrobbling
- Language: TypeScript
- Homepage: https://rocksky.app
- Size: 8.44 MB
- Stars: 17
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Rocksky
[](https://github.com/tsirysndr/rocksky/actions/workflows/ci.yml)
[](https://discord.gg/EVcBy2fVa3)
A decentralized music tracking and discovery platform built on AT Protocol 🎵 , see [Rocksky](https://rocksky.app).

## ✨ Features
### 🎵 Scrobbling APIs
- **Last.fm Compatible API** – drop-in replacement for Last.fm scrobblers
- **ListenBrainz Compatible API** – works with clients that support ListenBrainz
### 🕒 Playback & History
- **Recently Played Timeline** – browse your listening history
- **Stories View** – see what other users are playing in real time
- **Stats** – visualize scrobbles per day
### 📊 User Insights
- **Top Artists, Tracks, and Albums** – personalized charts of your listening habits
- **Shoutbox & Likes** – interact with other listeners and share reactions
### 🌐 Client Integrations
- **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
- **Search Engine** – fast search powered by MeiliSearch
## 🚧 Coming Soon / Roadmap
- **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
## 📦 Prerequisites
- Node.js (v22 or later)
- Deno
- Rust
- Go
- Turbo
- Docker
- Wasm Pack https://github.com/drager/wasm-pack
- DuckDB https://duckdb.org/docs/installation `1.2.0`
- Spotify `SPOTIFY_CLIENT_ID` and `SPOTIFY_CLIENT_SECRET` from setup in [Spotify developer dashboard](https://developer.spotify.com/documentation/web-api/tutorials/getting-started)
## 🚀 Getting Started
1. Clone the repository:
```bash
git clone git@tangled.sh:rocksky.app/rocksky
cd rocksky
```
2. Install dependencies:
```bash
npm install -g turbo
bun install
bun run build:raichu
```
3. Set up the environment variables:
```bash
cp apps/api/.env.example apps/api/.env
cp apps/web/.env.example apps/web/.env
cp apps/feeds/.env.example apps/feeds/.env
cp .env.example .env
# Edit the .env files to add your configurations
```
4. Start the Docker containers:
```bash
docker compose up
```
5. Run the database migrations:
```bash
turbo db:migrate --filter=@rocksky/api
```
6. Setup Spotify App:
```bash
# don't forget to set SPOTIFY_ENCRYPTION_KEY and SPOTIFY_ENCRYPTION_IV environment variables
bun run spotify
```
7. Populate database (Optional):
```bash
bun run db:pgpull
```
8. Start Analytics API:
```bash
bun run dev:analytics
```
9. Start jetstream:
```bash
bun run dev:jetstream
```
10. Start musicbrainz:
```bash
bun run mb
```
11. Start feeds:
```bash
bun run feeds
```
12. Start the development server:
```bash
turbo dev --filter=@rocksky/api --filter=@rocksky/web
```
## 📚 Documentation
[View the full documentation](https://docs.rocksky.app)
## ✍️ Feedback
This repository is the central place to collect feedback and issues related to [Rocksky](https://rocksky.app).
Please [**open an issue**](https://tangled.org/@rocksky.app/rocksky/issues/new) if you want to leave feedback. Feel free to also join our [**Discord server**](https://discord.gg/EVcBy2fVa3)
## 🤝 Contributing
We would love to hear your feedback or suggestions. The best way to reach us is on [Discord](https://discord.gg/EVcBy2fVa3).
We also welcome pull requests into this repo. See [CONTRIBUTING.md](CONTRIBUTING.md) for information on setting up this repo locally.