apiVersion: v1 kind: Namespace metadata: name: audiomuse-ai-all-in-one --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: audiomuse-ai-config-pvc namespace: audiomuse-ai-all-in-one spec: accessModes: - ReadWriteOnce storageClassName: local-path resources: requests: storage: 5Gi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: audiomuse-ai-music-pvc namespace: audiomuse-ai-all-in-one spec: accessModes: - ReadWriteOnce storageClassName: local-path resources: requests: storage: 50Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: audiomuse-ai-all-in-one-deployment namespace: audiomuse-ai-all-in-one spec: replicas: 1 selector: matchLabels: app: audiomuse-ai-all-in-one template: metadata: labels: app: audiomuse-ai-all-in-one spec: containers: - name: audiomuse-ai-all-in-one image: ghcr.io/neptunehub/audiomuse-ai-musicserver:latest imagePullPolicy: Always ports: - containerPort: 8080 # Music Server Backend - containerPort: 3000 # Music Server Frontend env: - name: DATABASE_PATH value: "/config/music.db" volumeMounts: - name: config-storage mountPath: /config # ALL DATABASES GO HERE - name: music-storage mountPath: /music # MUSIC FILES GO HERE volumes: - name: config-storage persistentVolumeClaim: claimName: audiomuse-ai-config-pvc - name: music-storage persistentVolumeClaim: claimName: audiomuse-ai-music-pvc --- apiVersion: v1 kind: Service metadata: name: audiomuse-service namespace: audiomuse-ai-all-in-one spec: selector: app: audiomuse-ai-all-in-one type: LoadBalancer #loadBalancerIP: 192.168.3.77 # Optional: specify a static IP if your environment supports it, or comment it ports: - name: web protocol: TCP port: 8080 targetPort: 8080 # Legacy frontend port (no longer used since Go serves static files) # - name: frontend # protocol: TCP # port: 3000 # targetPort: 3000