# Kickback Unified web application for music library management using SvelteKit and beets. ## Development Setup ### Prerequisites - Node.js 24+ - Python 3.11+ - pnpm - uv (Python package manager) ### Installation 1. Install dependencies: ```bash pnpm install uv pip install -r requirements.txt ``` 2. Start development server: ```bash pnpm dev ``` The app will be available at http://localhost:5173 ## Beets Integration The application uses beets for music library management. All beets commands are called via `src/lib/beets.ts` helper functions. ### Local Development Beets is installed locally via `uv`. The CLI is available for use in SvelteKit actions. ### Production Build ```bash # Build Docker image pnpm docker:build # Start container pnpm docker:run ``` The unified container runs both SvelteKit and beets with data persisted to `.data/` and `.appdata/`. ## Project Structure ``` kickback/ ├── src/ # SvelteKit application source │ └── lib/ │ └── beets.ts # Beets CLI helpers ├── config/ │ └── beets.yaml # Beets configuration ├── .data/ # Music library (gitignored) ├── .appdata/ # Beets state (gitignored) └── docker-compose.yml ``` ## Docker The production Docker image packages: - Python 3.11 with beets installed via uv - Node 24 with SvelteKit application - Beets configuration and data volume mounts ## Commands - `pnpm dev` - Start dev server - `pnpm build` - Build for production - `pnpm test` - Run tests - `pnpm lint` - Lint code - `pnpm format` - Format code - `pnpm docker:build` - Build Docker image - `pnpm docker:run` - Run Docker container via docker-compose