From c8bb8c06fbf27e734690d18b6fed6e8ad61f35cb Mon Sep 17 00:00:00 2001 From: Fishandchips321 Date: Wed, 15 Apr 2026 19:03:37 +0100 Subject: [PATCH] feat(soulseek): Added soulseek config and readme content --- README.md | 2 +- Soulseek/README.md | 8 +++++ Soulseek/deployment.yml | 69 +++++++++++++++++++++++++++++++++++++++++ Soulseek/ingress.yml | 22 +++++++++++++ Soulseek/service.yml | 22 +++++++++++++ 5 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 Soulseek/deployment.yml create mode 100644 Soulseek/ingress.yml create mode 100644 Soulseek/service.yml diff --git a/README.md b/README.md index dadb4d0..92d2264 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,6 @@ This is a collection of kubernetes configurations for various services that I ha - [ ] QBitTorrent - [x] Radarr - [x] Sonarr -- [ ] Soulseek +- [x] Soulseek - [ ] Syncthing - [ ] Tuwunnel \ No newline at end of file diff --git a/Soulseek/README.md b/Soulseek/README.md index e69de29..08b0534 100644 --- a/Soulseek/README.md +++ b/Soulseek/README.md @@ -0,0 +1,8 @@ +# Soulseek/slskd +A modern client-server application for the Soulseek file-sharing network.
+\- [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= --from-literal='password='`. \ No newline at end of file diff --git a/Soulseek/deployment.yml b/Soulseek/deployment.yml new file mode 100644 index 0000000..2d56854 --- /dev/null +++ b/Soulseek/deployment.yml @@ -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: + - name: downloads + hostPath: + path: +--- +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..118fed0 --- /dev/null +++ b/Soulseek/ingress.yml @@ -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: + - + secretName: soulseek-tls + rules: + - host: + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: soulseek + port: + number: 80 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