feat(soulseek): Added soulseek config and readme content

This commit is contained in:
Fishandchips321 2026-04-15 19:03:37 +01:00
parent 9baebfa13c
commit c8bb8c06fb
5 changed files with 122 additions and 1 deletions

View file

@ -0,0 +1,8 @@
# Soulseek/slskd
A modern client-server application for the Soulseek file-sharing network.<br>
\- [source](https://github.com/slskd/slskd/)
## Using this kubernetes config
In `deployment.yml`, set the host directory paths for the music folder and the downloads folder. In the `ingress.yml` folder, set the domain name for soulseek.
You will also need to create a kubernetes secret to store the username and password for your soulseek account. You can use an already existing account, or enter in new credentials to create a new account. Use the following command to create the secret: `kubectl create secret generic soulseek-creds --from-literal=username=<username> --from-literal='password=<password>'`.

69
Soulseek/deployment.yml Normal file
View file

@ -0,0 +1,69 @@
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
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: <music directory host path>
- name: downloads
hostPath:
path: <downloads directory host path>
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: soulseek-config
spec:
resources:
requests:
storage: 128Mi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce

22
Soulseek/ingress.yml Normal file
View file

@ -0,0 +1,22 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: soulseek
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-production"
spec:
tls:
- hosts:
- <soulseek domain name>
secretName: soulseek-tls
rules:
- host: <soulseek domain name>
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: soulseek
port:
number: 80

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