Jarian Cottingham 64e4ca567d
Some checks are pending
CI / lint (push) Waiting to run
CI / test (push) Waiting to run
CI / docker-build (push) Waiting to run
CI / security (push) Waiting to run
CI / build-result (push) Blocked by required conditions
Merge pull request 'chore: remove test artifacts, fix hardcoded paths, ruff clean, license' (#16) from improve/v1
2026-08-20 21:34:24 +00:00
2026-07-03 01:06:35 +00:00
2026-07-05 21:36:59 +00:00
2026-07-03 01:06:35 +00:00
2026-07-05 21:36:59 +00:00
2026-07-05 21:36:59 +00:00
2026-07-03 01:06:35 +00:00
2026-07-03 01:06:35 +00:00
2026-07-03 01:06:35 +00:00
2026-07-03 01:06:35 +00:00

Music App

Self-hosted music streaming application with mood radio, lofi channels, SharePlay, and internet radio.

Quick Start

docker-compose up --build

System Dependencies

  • ffmpeg — required for audio transcoding (OGG conversion) and metadata extraction

Configuration

Copy .env.example to .env and set your values:

cp .env.example .env

Key settings:

  • API_KEY — API key for authentication (required in production)
  • GENIUS_API_KEY — Genius.com API key for lyrics (get at https://genius.com/api)
  • MUSIC_DIR — path to local music files
  • DATABASE_URL — database connection string

Project Structure

  • backend/ — FastAPI backend (Python)
  • web/ — React web frontend (Vite + Tailwind)
  • mobile/ — React Native mobile app (Expo)
  • shared/ — Shared TypeScript types and API client
  • e2e/ — Playwright end-to-end specs
  • docs/ — Implementation plan

Tests

Backend (pytest, 90%+ coverage gate):

cd backend
pip install -r requirements.txt pytest-cov
pytest

300 tests covering endpoints, routers, services, schemas, and models.

E2E (Playwright):

npm install
npx playwright install
npm run dev:backend &   # start backend on :8000
npx playwright test

TypeScript (web + mobile + shared workspaces):

npm install
npm run typecheck
npm run lint

Development

npm workspaces scripts at the repo root:

npm run dev        # web + backend together
npm run dev:web    # Vite dev server only
npm run build:web  # production web build

License

MIT — see LICENSE.

Description
Self-hosted music streaming with mood radio, lofi channels, SharePlay, and internet radio — FastAPI, React web, React Native mobile.
Readme 342 KiB
Languages
Python 53.7%
TypeScript 44.9%
CSS 0.5%
JavaScript 0.5%
HTML 0.2%
Other 0.2%