diff --git a/Navidrome/README.md b/Navidrome/README.md index e69de29..451219e 100644 --- a/Navidrome/README.md +++ b/Navidrome/README.md @@ -0,0 +1,6 @@ +# Navidrome +Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device. It's like your personal Spotify!
+\- [source](https://github.com/navidrome/navidrome) + +## Using this kubernetes config +In `deployment.yml`, set the host path for where you're storing your music files on the host machine. Also set navidrome's hostname in the `ingress.yml` file. This config assumes you have cert-manager installed on your cluster, so if you want to provide HTTPS another way, feel free to comment out the `spec.tls` section (the annotation shouldn't affect anything, but you can comment it out as well if you want) \ No newline at end of file diff --git a/Navidrome/deployment.yml b/Navidrome/deployment.yml new file mode 100644 index 0000000..163ff7c --- /dev/null +++ b/Navidrome/deployment.yml @@ -0,0 +1,47 @@ +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 + 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: + - 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..32a7d14 --- /dev/null +++ b/Navidrome/ingress.yml @@ -0,0 +1,22 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: navidrome + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-production" +spec: + tls: + - hosts: + - + secretName: navidrome-tls + rules: + - host: + 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/README.md b/README.md index 858dbfa..dadb4d0 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ This is a collection of kubernetes configurations for various services that I ha - [x] Mealie - [ ] Minecraft Servers - [ ] MinIO -- [ ] Navidrome +- [x] Navidrome - [ ] Outline - [ ] PrivoxyVPN - [x] Prowlarr