1.7 KiB
1.7 KiB
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
- Install dependencies:
pnpm install
uv pip install -r requirements.txt
- Start development server:
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
# 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 serverpnpm build- Build for productionpnpm test- Run testspnpm lint- Lint codepnpm format- Format codepnpm docker:build- Build Docker imagepnpm docker:run- Run Docker container via docker-compose