A decentralized music tracking and discovery platform built on AT Protocol 🎵

crates: set rockskyd as the main CLI entrypoint

+140 -64
+5 -5
crates/analytics/Dockerfile
··· 1 - FROM rust:1.88-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 curl \ ··· 18 19 WORKDIR /app 20 21 - COPY ./crates/analytics ./crates/analytics 22 COPY Cargo.toml . 23 COPY Cargo.lock . 24 25 - RUN cargo build --release -p analytics 26 27 FROM debian:bookworm-slim 28 29 - COPY --from=builder /app/target/release/analytics /usr/local/bin/analytics 30 31 COPY --from=builder /usr/lib/libduckdb.so /usr/lib/libduckdb.so 32 33 EXPOSE 7879 34 35 - CMD ["analytics"]
··· 1 + FROM rust:1.89-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 curl \ ··· 18 19 WORKDIR /app 20 21 + COPY ./crates ./crates 22 COPY Cargo.toml . 23 COPY Cargo.lock . 24 25 + RUN cargo build --release -p rockskyd 26 27 FROM debian:bookworm-slim 28 29 + COPY --from=builder /app/target/release/rockskyd /usr/local/bin/rockskyd 30 31 COPY --from=builder /usr/lib/libduckdb.so /usr/lib/libduckdb.so 32 33 EXPOSE 7879 34 35 + CMD ["rockskyd", "analytics", "serve"]
+18 -6
crates/dropbox/Dockerfile
··· 1 - FROM rust:1.88-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 libssl-dev \ 5 pkg-config \ 6 - build-essential 7 8 9 WORKDIR /app 10 11 - COPY ./crates/dropbox ./crates/dropbox 12 COPY Cargo.toml . 13 COPY Cargo.lock . 14 15 - RUN cargo build --release -p dropbox 16 17 FROM debian:bookworm-slim 18 19 - COPY --from=builder /app/target/release/dropbox /usr/local/bin/dropbox 20 21 EXPOSE 7881 22 23 - CMD ["dropbox"]
··· 1 + FROM rust:1.89-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 + curl \ 5 + wget \ 6 + unzip \ 7 libssl-dev \ 8 pkg-config \ 9 + build-essential \ 10 + cmake 11 12 + RUN wget https://github.com/duckdb/duckdb/releases/download/v1.3.2/libduckdb-linux-amd64.zip && \ 13 + unzip libduckdb-linux-amd64.zip && \ 14 + mv libduckdb.so /usr/lib && \ 15 + mv libduckdb_static.a /usr/lib && \ 16 + mv duckdb.h /usr/include && \ 17 + mv duckdb.hpp /usr/include 18 19 WORKDIR /app 20 21 + COPY ./crates ./crates 22 COPY Cargo.toml . 23 COPY Cargo.lock . 24 25 + RUN cargo build --release -p rockskyd 26 27 FROM debian:bookworm-slim 28 29 + COPY --from=builder /app/target/release/rockskyd /usr/local/bin/rockskyd 30 + 31 + COPY --from=builder /usr/lib/libduckdb.so /usr/lib/libduckdb.so 32 33 EXPOSE 7881 34 35 + CMD ["rockskyd", "dropbox", "serve"]
+18 -6
crates/googledrive/Dockerfile
··· 1 - FROM rust:1.88-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 libssl-dev \ 5 pkg-config \ 6 - build-essential 7 8 9 WORKDIR /app 10 11 - COPY ./crates/googledrive ./crates/googledrive 12 COPY Cargo.toml . 13 COPY Cargo.lock . 14 15 - RUN cargo build --release -p googledrive 16 17 FROM debian:bookworm-slim 18 19 - COPY --from=builder /app/target/release/googledrive /usr/local/bin/googledrive 20 21 EXPOSE 7880 22 23 - CMD ["googledrive"]
··· 1 + FROM rust:1.89-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 + curl \ 5 + wget \ 6 + unzip \ 7 libssl-dev \ 8 pkg-config \ 9 + build-essential \ 10 + cmake 11 12 + RUN wget https://github.com/duckdb/duckdb/releases/download/v1.3.2/libduckdb-linux-amd64.zip && \ 13 + unzip libduckdb-linux-amd64.zip && \ 14 + mv libduckdb.so /usr/lib && \ 15 + mv libduckdb_static.a /usr/lib && \ 16 + mv duckdb.h /usr/include && \ 17 + mv duckdb.hpp /usr/include 18 19 WORKDIR /app 20 21 + COPY ./crates ./crates 22 COPY Cargo.toml . 23 COPY Cargo.lock . 24 25 + RUN cargo build --release -p rockskyd 26 27 FROM debian:bookworm-slim 28 29 + COPY --from=builder /app/target/release/rockskyd /usr/local/bin/rockskyd 30 + 31 + COPY --from=builder /usr/lib/libduckdb.so /usr/lib/libduckdb.so 32 33 EXPOSE 7880 34 35 + CMD ["rockskyd", "googledrive", "serve"]
+17 -7
crates/jetstream/Dockerfile
··· 1 - FROM rust:1.88-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 libssl-dev \ 5 pkg-config \ 6 - build-essential 7 8 9 WORKDIR /app 10 11 - COPY ./crates/jetstream ./crates/jetstream 12 COPY Cargo.toml . 13 COPY Cargo.lock . 14 15 - RUN cargo build --release -p jetstream 16 17 FROM debian:bookworm-slim 18 19 - COPY --from=builder /app/target/release/jetstream /usr/local/bin/jetstream 20 21 - EXPOSE 7880 22 23 - CMD ["jetstream"]
··· 1 + FROM rust:1.89-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 + curl \ 5 + wget \ 6 + unzip \ 7 libssl-dev \ 8 pkg-config \ 9 + build-essential \ 10 + cmake 11 12 + RUN wget https://github.com/duckdb/duckdb/releases/download/v1.3.2/libduckdb-linux-amd64.zip && \ 13 + unzip libduckdb-linux-amd64.zip && \ 14 + mv libduckdb.so /usr/lib && \ 15 + mv libduckdb_static.a /usr/lib && \ 16 + mv duckdb.h /usr/include && \ 17 + mv duckdb.hpp /usr/include 18 19 WORKDIR /app 20 21 + COPY ./crates ./crates 22 COPY Cargo.toml . 23 COPY Cargo.lock . 24 25 + RUN cargo build --release -p rockskyd 26 27 FROM debian:bookworm-slim 28 29 + COPY --from=builder /app/target/release/rockskyd /usr/local/bin/rockskyd 30 31 + COPY --from=builder /usr/lib/libduckdb.so /usr/lib/libduckdb.so 32 33 + CMD ["rockskyd", "jetstream"]
+11 -10
crates/package.json
··· 1 { 2 "name": "@rocksky/crates", 3 "scripts": { 4 - "dev:analytics": "cargo run -p analytics --release -- serve", 5 - "dev:connect": "cargo run -p connect --release", 6 - "dev:dropbox": "cargo run -p dropbox --release -- serve", 7 - "dev:googledrive": "cargo run -p googledrive --release -- serve", 8 - "dev:jetstream": "cargo run -p jetstream --release", 9 - "dev:playlists": "cargo run -p playlists --release", 10 - "dev:scrobbler": "cargo run -p scrobbler --release -- serve", 11 - "dev:spotify": "cargo run -p spotify --release -- serve", 12 - "dev:storage": "cargo run -p storage --release -- serve", 13 - "dev:webscrobbler": "cargo run -p webscrobbler --release -- serve" 14 } 15 }
··· 1 { 2 "name": "@rocksky/crates", 3 "scripts": { 4 + "dev:analytics": "cargo run -p rockskyd --release -- analytics serve", 5 + "dev:connect": "cargo run -p rocksky-connect --release", 6 + "dev:dropbox": "cargo run -p rockskyd --release -- dropbox serve", 7 + "dev:googledrive": "cargo run -p rockskyd --release -- googledrive serve", 8 + "dev:jetstream": "cargo run -p rockskyd --release -- jetstream", 9 + "dev:playlists": "cargo run -p rockskyd --release -- playlist", 10 + "dev:scrobbler": "cargo run -p rockskyd --release -- scrobbler", 11 + "dev:spotify": "cargo run -p rockskyd --release -- spotify", 12 + "dev:storage": "cargo run -p rocksky-storage --release -- serve", 13 + "dev:webscrobbler": "cargo run -p rockskyd --release -- webscrobbler", 14 + "dev:tracklist": "cargo run -p rockskyd --release -- tracklist" 15 } 16 }
+18 -6
crates/scrobbler/Dockerfile
··· 1 - FROM rust:1.88-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 libssl-dev \ 5 pkg-config \ 6 - build-essential 7 8 9 WORKDIR /app 10 11 - COPY ./crates/scrobbler ./crates/scrobbler 12 COPY Cargo.toml . 13 COPY Cargo.lock . 14 15 - RUN cargo build --release -p scrobbler 16 17 FROM debian:bookworm-slim 18 19 - COPY --from=builder /app/target/release/scrobbler /usr/local/bin/scrobbler 20 21 EXPOSE 7882 22 23 - CMD ["scrobbler"]
··· 1 + FROM rust:1.89-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 + curl \ 5 + wget \ 6 + unzip \ 7 libssl-dev \ 8 pkg-config \ 9 + build-essential \ 10 + cmake 11 12 + RUN wget https://github.com/duckdb/duckdb/releases/download/v1.3.2/libduckdb-linux-amd64.zip && \ 13 + unzip libduckdb-linux-amd64.zip && \ 14 + mv libduckdb.so /usr/lib && \ 15 + mv libduckdb_static.a /usr/lib && \ 16 + mv duckdb.h /usr/include && \ 17 + mv duckdb.hpp /usr/include 18 19 WORKDIR /app 20 21 + COPY ./crates ./crates 22 COPY Cargo.toml . 23 COPY Cargo.lock . 24 25 + RUN cargo build --release -p rockskyd 26 27 FROM debian:bookworm-slim 28 29 + COPY --from=builder /app/target/release/rockskyd /usr/local/bin/rockskyd 30 + 31 + COPY --from=builder /usr/lib/libduckdb.so /usr/lib/libduckdb.so 32 33 EXPOSE 7882 34 35 + CMD ["rockskyd", "scrobbler"]
+18 -6
crates/spotify/Dockerfile
··· 1 - FROM rust:1.88-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 libssl-dev \ 5 pkg-config \ 6 - build-essential 7 8 9 WORKDIR /app 10 11 - COPY ./crates/spotify ./crates/spotify 12 COPY Cargo.toml . 13 COPY Cargo.lock . 14 15 - RUN cargo build --release -p spotify 16 17 FROM debian:bookworm-slim 18 19 - COPY --from=builder /app/target/release/spotify /usr/local/bin/spotify 20 21 - CMD ["spotify"]
··· 1 + FROM rust:1.89-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 + curl \ 5 + wget \ 6 + unzip \ 7 libssl-dev \ 8 pkg-config \ 9 + build-essential \ 10 + cmake 11 12 + RUN wget https://github.com/duckdb/duckdb/releases/download/v1.3.2/libduckdb-linux-amd64.zip && \ 13 + unzip libduckdb-linux-amd64.zip && \ 14 + mv libduckdb.so /usr/lib && \ 15 + mv libduckdb_static.a /usr/lib && \ 16 + mv duckdb.h /usr/include && \ 17 + mv duckdb.hpp /usr/include 18 19 WORKDIR /app 20 21 + COPY ./crates ./crates 22 COPY Cargo.toml . 23 COPY Cargo.lock . 24 25 + RUN cargo build --release -p rockskyd 26 27 FROM debian:bookworm-slim 28 29 + COPY --from=builder /app/target/release/rockskyd /usr/local/bin/rockskyd 30 31 + COPY --from=builder /usr/lib/libduckdb.so /usr/lib/libduckdb.so 32 + 33 + CMD ["rockskyd", "spotify"]
+1 -1
crates/storage/Dockerfile
··· 1 - FROM rust:1.88-bookworm AS builder
··· 1 + FROM rust:1.89-bookworm AS builder
+18 -6
crates/webscrobbler/Dockerfile
··· 1 - FROM rust:1.88-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 libssl-dev \ 5 pkg-config \ 6 - build-essential 7 8 9 WORKDIR /app 10 11 - COPY ./crates/webscrobbler ./crates/webscrobbler 12 COPY Cargo.toml . 13 COPY Cargo.lock . 14 15 - RUN cargo build --release -p webscrobbler 16 17 FROM debian:bookworm-slim 18 19 - COPY --from=builder /app/target/release/webscrobbler /usr/local/bin/webscrobbler 20 21 EXPOSE 7883 22 23 - CMD ["webscrobbler"]
··· 1 + FROM rust:1.89-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 + curl \ 5 + wget \ 6 + unzip \ 7 libssl-dev \ 8 pkg-config \ 9 + build-essential \ 10 + cmake 11 12 + RUN wget https://github.com/duckdb/duckdb/releases/download/v1.3.2/libduckdb-linux-amd64.zip && \ 13 + unzip libduckdb-linux-amd64.zip && \ 14 + mv libduckdb.so /usr/lib && \ 15 + mv libduckdb_static.a /usr/lib && \ 16 + mv duckdb.h /usr/include && \ 17 + mv duckdb.hpp /usr/include 18 19 WORKDIR /app 20 21 + COPY ./crates ./crates 22 COPY Cargo.toml . 23 COPY Cargo.lock . 24 25 + RUN cargo build --release -p rockskyd 26 27 FROM debian:bookworm-slim 28 29 + COPY --from=builder /app/target/release/rockskyd /usr/local/bin/rockskyd 30 + 31 + COPY --from=builder /usr/lib/libduckdb.so /usr/lib/libduckdb.so 32 33 EXPOSE 7883 34 35 + CMD ["rockskyd", "webscrobbler"]
+1 -1
crates/xataid-extension/Dockerfile
··· 1 - FROM rust:1.88-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 libreadline-dev \
··· 1 + FROM rust:1.89-bookworm AS builder 2 3 RUN apt-get update && apt-get install -y \ 4 libreadline-dev \
+11 -10
package.json
··· 15 "pkl:eval": "cd apps/api && bun run pkl:eval", 16 "pkl:gen": "cd apps/api && bun run pkl:gen", 17 "lexgen": "cd apps/api && bun run lexgen", 18 - "dev:analytics": "cargo run -p analytics --release -- serve", 19 - "dev:connect": "cargo run -p connect --release", 20 - "dev:dropbox": "cargo run -p dropbox --release -- serve", 21 - "dev:googledrive": "cargo run -p googledrive --release -- serve", 22 - "dev:jetstream": "cargo run -p jetstream --release", 23 - "dev:playlists": "cargo run -p playlists --release", 24 - "dev:scrobbler": "cargo run -p scrobbler --release -- serve", 25 - "dev:spotify": "cargo run -p spotify --release -- serve", 26 - "dev:storage": "cargo run -p storage --release -- serve", 27 - "dev:webscrobbler": "cargo run -p webscrobbler --release -- serve", 28 "build:raichu": "cd crates/raichu && wasm-pack build --release --target web && cp -r pkg ../../apps/web/src" 29 }, 30 "workspaces": [
··· 15 "pkl:eval": "cd apps/api && bun run pkl:eval", 16 "pkl:gen": "cd apps/api && bun run pkl:gen", 17 "lexgen": "cd apps/api && bun run lexgen", 18 + "dev:analytics": "cargo run -p rockskyd --release -- analytics serve", 19 + "dev:connect": "cargo run -p rocksky-connect --release", 20 + "dev:dropbox": "cargo run -p rockskyd --release -- dropbox serve", 21 + "dev:googledrive": "cargo run -p rockskyd --release -- googledrive serve", 22 + "dev:jetstream": "cargo run -p rockskyd --release -- jetstream", 23 + "dev:playlists": "cargo run -p rockskyd --release -- playlist", 24 + "dev:scrobbler": "cargo run -p rockskyd --release -- scrobbler", 25 + "dev:spotify": "cargo run -p rockskyd --release -- spotify", 26 + "dev:storage": "cargo run -p rocksky-storage --release -- serve", 27 + "dev:webscrobbler": "cargo run -p rockskyd --release -- webscrobbler", 28 + "dev:tracklist": "cargo run -p rockskyd --release -- tracklist", 29 "build:raichu": "cd crates/raichu && wasm-pack build --release --target web && cp -r pkg ../../apps/web/src" 30 }, 31 "workspaces": [
+4
turbo.json
··· 119 "dev:webscrobbler": { 120 "persistent": false, 121 "cache": false 122 } 123 } 124 }
··· 119 "dev:webscrobbler": { 120 "persistent": false, 121 "cache": false 122 + }, 123 + "dev:tracklist": { 124 + "persistent": false, 125 + "cache": false 126 } 127 } 128 }