Libre and gratis music streaming — your music, your server.
RompMusic is a complete self-hosted streaming system: GPL-3.0, no telemetry, gapless playback, and cross-platform clients (Android, iOS, web). You own the library, the deployment, and the data path end to end.
Components
rompmusic-server
Python API: JWT auth, library scan, playlists, history, HTTP range streaming, optional beets hooks, admin UI.
rompmusic-client
Cross-platform app with gapless playback, paginated library, playlists—Android, iOS, and web targets.
rompmusic-website
Marketing and docs at rompmusic.com, including install and self-hosting guides.
Docker
Umbrella docker compose brings up the stack from a single clone with .env configuration.
Architecture (server)
The backend is an ASGI app (uvicorn) exposing REST under /api/v1/, with metadata via Mutagen and PostgreSQL/SQLite storage depending on deployment.
| Concern | JWT-authenticated sessions; per-user library views; background scans without blocking the UI tab. |
|---|---|
| Streaming | HTTP range requests for seeking; content types appropriate for FLAC/MP3/etc. |
| Ops | Dockerfile for repeatable builds; MUSIC_PATH volume mount; optional scheduled library/art jobs. |
Design stance
No proprietary lock-in: the four freedoms are the product goal. The client prioritizes offline-friendly playback and predictable library UX; the server keeps administration explicit (paths, scans, credentials) so self-hosters stay in control.
Quick start (Docker)
git clone --recursive https://github.com/151henry151/rompmusic.git cd rompmusic cp .env.example .env # Edit .env — DB_PASSWORD, JWT_SECRET, etc. docker compose up -d
Detailed install and configuration: rompmusic.com/docs/install.