commit 55b0cfc1f31b77e0ec7a382e1a0ea8a026492baa Author: Fishandchips321 Date: Sun Oct 26 14:42:33 2025 +0000 Initial commit diff --git a/lidarr/deployment.yml b/lidarr/deployment.yml new file mode 100644 index 0000000..bcd9612 --- /dev/null +++ b/lidarr/deployment.yml @@ -0,0 +1,57 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: lidarr +spec: + selector: + matchLabels: + app: lidarr + template: + metadata: + labels: + app: lidarr + spec: + containers: + - name: lidarr + image: lscr.io/linuxserver/lidarr:latest + imagePullPolicy: IfNotPresent + resources: + limits: + memory: "128Mi" + cpu: "500m" + ports: + - containerPort: 8686 + volumeMounts: + - name: lidarr-config + mountPath: /config + - name: music + mountPath: /music + - name: downloads + mountPath: /music/downloads + env: + - name: PUID + value: "0" + - name: PGID + value: "0" + volumes: + - name: lidarr-config + persistentVolumeClaim: + claimName: lidarr-config + - name: music + hostPath: + path: /mnt/nfs/music + - name: downloads + hostPath: + path: /mnt/nfs/soulseek +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: lidarr-config +spec: + resources: + requests: + storage: 128Mi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce diff --git a/lidarr/ingress.yml b/lidarr/ingress.yml new file mode 100644 index 0000000..008bda2 --- /dev/null +++ b/lidarr/ingress.yml @@ -0,0 +1,24 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: lidarr + labels: + app.kubernetes.io/name: lidarr + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-production" +spec: + tls: + - hosts: + - lidarr.foxhawk.co.uk + secretName: lidarr-tls + rules: + - host: lidarr.foxhawk.co.uk + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: lidarr + port: + number: 80 diff --git a/lidarr/service.yml b/lidarr/service.yml new file mode 100644 index 0000000..f279599 --- /dev/null +++ b/lidarr/service.yml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Service +metadata: + name: lidarr +spec: + selector: + app: lidarr + ports: + - port: 80 + targetPort: 8686 diff --git a/navidrome/deployment.yml b/navidrome/deployment.yml new file mode 100644 index 0000000..367e168 --- /dev/null +++ b/navidrome/deployment.yml @@ -0,0 +1,48 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: navidrome +spec: + selector: + matchLabels: + app: navidrome + template: + metadata: + labels: + app: navidrome + spec: + containers: + - name: navidrome + image: deluan/navidrome:latest + imagePullPolicy: IfNotPresent + resources: + limits: + memory: "128Mi" + cpu: "500m" + ports: + - containerPort: 4533 + volumeMounts: + - name: music + mountPath: /music + readOnly: true + - name: navidrome-config + mountPath: /data + volumes: + - name: music + hostPath: + path: /mnt/nfs/music + - name: navidrome-config + persistentVolumeClaim: + claimName: navidrome-config +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: navidrome-config + namespace: navidrome +spec: + resources: + requests: + storage: 128Mi + accessModes: + - ReadWriteOnce diff --git a/navidrome/ingress.yml b/navidrome/ingress.yml new file mode 100644 index 0000000..42adbfd --- /dev/null +++ b/navidrome/ingress.yml @@ -0,0 +1,24 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: navidrome + labels: + app.kubernetes.io/name: navidrome + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-production" +spec: + tls: + - hosts: + - navidrome.foxhawk.co.uk + secretName: navidrome-tls + rules: + - host: navidrome.foxhawk.co.uk + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: navidrome + port: + number: 80 diff --git a/navidrome/service.yml b/navidrome/service.yml new file mode 100644 index 0000000..d33c9da --- /dev/null +++ b/navidrome/service.yml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: navidrome +spec: + selector: + app: navidrome + ports: + - port: 80 + targetPort: 4533 + type: ClusterIP diff --git a/soulseek/deployment.yml b/soulseek/deployment.yml new file mode 100644 index 0000000..d56f9a6 --- /dev/null +++ b/soulseek/deployment.yml @@ -0,0 +1,70 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: soulseek +spec: + selector: + matchLabels: + app: soulseek + template: + metadata: + labels: + app: soulseek + spec: + containers: + - name: soulseek + image: slskd/slskd + imagePullPolicy: IfNotPresent + resources: + limits: + memory: "512Mi" + cpu: "1" + ports: + - containerPort: 5030 + - containerPort: 50300 + volumeMounts: + - name: soulseek-config + mountPath: /app + - name: music + mountPath: /music + - name: downloads + mountPath: /downloads + env: + - name: SLSKD_REMOTE_CONFIGURATION + value: "true" + - name: SLSKD_SLSK_USERNAME + valueFrom: + secretKeyRef: + key: username + name: soulseek-creds + - name: SLSKD_SLSK_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: soulseek-creds + - name: SLSKD_SHARED_DIR + value: /music + - name: SLSKD_DOWNLOADS_DIR + value: /downloads + volumes: + - name: soulseek-config + persistentVolumeClaim: + claimName: soulseek-config + - name: music + hostPath: + path: /mnt/nfs/music + - name: downloads + hostPath: + path: /mnt/nfs/soulseek +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: soulseek-config +spec: + resources: + requests: + storage: 128Mi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce diff --git a/soulseek/ingress.yml b/soulseek/ingress.yml new file mode 100644 index 0000000..5516a4e --- /dev/null +++ b/soulseek/ingress.yml @@ -0,0 +1,24 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: soulseek + labels: + app.kubernetes.io/name: soulseek + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-production" +spec: + tls: + - hosts: + - soulseek.foxhawk.co.uk + secretName: soulseek-tls + rules: + - host: soulseek.foxhawk.co.uk + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: soulseek + port: + number: 80 diff --git a/soulseek/loginSecret.yml b/soulseek/loginSecret.yml new file mode 100644 index 0000000..6f35287 --- /dev/null +++ b/soulseek/loginSecret.yml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: soulseek-creds +type: Opaque +data: + username: + password: diff --git a/soulseek/service.yml b/soulseek/service.yml new file mode 100644 index 0000000..10a6649 --- /dev/null +++ b/soulseek/service.yml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + name: soulseek +spec: + selector: + app: soulseek + ports: + - port: 80 + targetPort: 5030 +--- +apiVersion: v1 +kind: Service +metadata: + name: soulseek2 +spec: + selector: + app: soulseek + ports: + - port: 50300 + targetPort: 50300 + type: NodePort