Jarian Cottingham 24c03426f8 test: add comprehensive test suite with 94% coverage
- Add pytest config with 90% coverage threshold
- 15 test files covering all routers, services, schemas, models
- 300 tests: unit tests, integration tests, edge cases, mocked external APIs
- Update CI workflow to run pytest with coverage enforcement
- Mock external services (Genius, MusicBrainz, RadioBrowser)
- In-memory SQLite DB per test via conftest fixtures
2026-07-06 06:07:31 +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-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
2026-07-03 01:06:35 +00:00
2026-07-03 01:06:35 +00:00
2026-07-05 21:36:59 +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
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%