P2P web music listener running on Kubernetes.
Microservices-based P2P music platform with:
- AuthorizationManager - User authentication & JWT tokens
- PlaylistManager - Playlist CRUD operations
- QueueManager - Music queue & playback management
- BandcampApi - Bandcamp music search integration
- SlskdDownload - Song download service
- MuzikaPlayer - Vue.js frontend
- Kafka - Message broker for service communication
- PostgreSQL - Database
-
Start dependencies:
docker-compose -f compose.yaml.yaml up -d # PostgreSQL # Start Kafka locally on localhost:9092
-
Run services:
# Backend services (from each module directory) mvn spring-boot:run # Frontend cd MuzikaPlayer npm install npm run dev
-
Services run on:
- AuthorizationManager:
8091 - QueueManager:
8090 - PlaylistManager:
8092 - MuzikaPlayer:
5173(Vite dev server)
- AuthorizationManager:
Prerequisites: Azure AKS cluster, ACR registry, kubectl configured
-
Deploy Kafka first:
kubectl apply -f kafka/namespace.yaml kubectl apply -f kafka/kafka-cluster.yaml kubectl apply -f kafka/kafka-topics.yaml
-
Deploy services:
# Each service kubectl apply -k AuthorizationManager/k8s/ kubectl apply -k PlaylistManager/k8s/ kubectl apply -k QueueManager/k8s/ kubectl apply -k BandcampApi/k8s/ kubectl apply -k SlskdDownload/k8s/ kubectl apply -k MuzikaPlayer/k8s/ -
Or use CI/CD: Push to
mainbranch triggers GitHub Actions workflows for each service.
Note: Update kustomization.yaml with your ACR name and image tags before deploying.