- Add auth middleware (API key) to protect API routes (#5, #7) - Add WebSocket handlers and cleanup on disconnect (#3, #8) - Add web Dockerfile (#1) - Fix memory upload with streaming chunks (#10) - Move lofi seed to startup, remove per-request seeding (#9) - Document ffmpeg dependency in README and .env.example (#6) - Fill in mobile app with API-connected UI (#4) - Set GENIUS_API_KEY from env var with documentation (#2)
1008 B
1008 B
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
- Debian/Ubuntu:
sudo apt-get install ffmpeg - macOS:
brew install ffmpeg - Windows: download from https://ffmpeg.org/download.html
- Debian/Ubuntu:
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 filesDATABASE_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