Hi HN, I built SoundTime because I wanted a self-hosted music platform that could also share tracks across instances without relying on a central server.
Audio: Symphonia for decoding/waveforms, Lofty for metadata,
OPUS adaptive streaming (320/128/64 kbps)
Some things that might be interesting technically:
- Tracks are identified by BLAKE3 hashes and transferred via iroh-blobs, so deduplication is built in
- The P2P layer uses NAT traversal through relay servers, so it works without port forwarding
- There's a public node directory where instances can optionally register themselves it's a separate lightweight service (Node.js + SQLite) that does health checks every 5 min
- Full search across peers
- AI-generated editorial playlists using any OpenAI-compatible API.
It's one curl | bash to install (Docker Compose), works on x86_64 and ARM64. Licensed AGPL-3.0.
I'd love feedback on the architecture, especially the P2P approach.
ciccada1337•1h ago
The stack:
Backend: Rust (Axum 0.8, Sea-ORM, PostgreSQL) Frontend: SvelteKit 2, Svelte 5, Tailwind, shadcn-svelte
P2P: iroh (by n0.computer) encrypted QUIC connections, content-addressed storage via BLAKE3 hashes
Audio: Symphonia for decoding/waveforms, Lofty for metadata, OPUS adaptive streaming (320/128/64 kbps)
Some things that might be interesting technically:
- Tracks are identified by BLAKE3 hashes and transferred via iroh-blobs, so deduplication is built in
- The P2P layer uses NAT traversal through relay servers, so it works without port forwarding
- There's a public node directory where instances can optionally register themselves it's a separate lightweight service (Node.js + SQLite) that does health checks every 5 min
- Full search across peers
- AI-generated editorial playlists using any OpenAI-compatible API.
It's one curl | bash to install (Docker Compose), works on x86_64 and ARM64. Licensed AGPL-3.0.
I'd love feedback on the architecture, especially the P2P approach.