Initial commit

This commit is contained in:
Fishandchips321 2025-10-26 14:42:33 +00:00
commit 55b0cfc1f3
10 changed files with 298 additions and 0 deletions

57
lidarr/deployment.yml Normal file
View file

@ -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

24
lidarr/ingress.yml Normal file
View file

@ -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

10
lidarr/service.yml Normal file
View file

@ -0,0 +1,10 @@
apiVersion: v1
kind: Service
metadata:
name: lidarr
spec:
selector:
app: lidarr
ports:
- port: 80
targetPort: 8686

48
navidrome/deployment.yml Normal file
View file

@ -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

24
navidrome/ingress.yml Normal file
View file

@ -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

11
navidrome/service.yml Normal file
View file

@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: navidrome
spec:
selector:
app: navidrome
ports:
- port: 80
targetPort: 4533
type: ClusterIP

70
soulseek/deployment.yml Normal file
View file

@ -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

24
soulseek/ingress.yml Normal file
View file

@ -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

8
soulseek/loginSecret.yml Normal file
View file

@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: soulseek-creds
type: Opaque
data:
username: <username>
password: <Password>

22
soulseek/service.yml Normal file
View file

@ -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