add navidrome
All checks were successful
lint-test-helm / lint-helm (push) Successful in 16s
lint-test-docker / lint-docker-compose (push) Successful in 20s
render-manifests-push / render-manifests-push (push) Successful in 29s
renovate / renovate (push) Successful in 1m7s

This commit is contained in:
2025-12-24 14:11:58 -06:00
parent 7520708207
commit efb48fde83
10 changed files with 257 additions and 15 deletions

View File

@@ -115,6 +115,7 @@ blocky:
ceph IN CNAME traefik-cl01tl
code-server IN CNAME traefik-cl01tl
ephemera IN CNAME traefik-cl01tl
feishin IN CNAME traefik-cl01tl
garage-s3 IN CNAME traefik-cl01tl
garage-webui IN CNAME traefik-cl01tl
gatus IN CNAME traefik-cl01tl
@@ -137,6 +138,7 @@ blocky:
listenarr IN CNAME traefik-cl01tl
mail IN CNAME traefik-cl01tl
n8n IN CNAME traefik-cl01tl
navidrome IN CNAME traefik-cl01tl
ntfy IN CNAME traefik-cl01tl
objects IN CNAME traefik-cl01tl
ollama IN CNAME traefik-cl01tl

View File

@@ -134,15 +134,21 @@ gatus:
- name: tubearchivist
url: https://tubearchivist.alexlebens.net
<<: *defaults
- name: navidrome
url: https://navidrome.alexlebens.net
<<: *defaults
- name: feishin
url: https://feishin.alexlebens.net
<<: *defaults
- name: audiobookshelf
url: https://audiobookshelf.alexlebens.net
<<: *defaults
- name: immich
url: https://immich.alexlebens.net
<<: *defaults
- name: photoview
url: https://photoview.alexlebens.net
<<: *defaults
- name: audiobookshelf
url: https://audiobookshelf.alexlebens.net
<<: *defaults
- name: booklore
url: https://booklore.alexlebens.net
<<: *defaults

View File

@@ -129,12 +129,6 @@ homepage:
maximumFractionDigits: 0
services.yaml: |
- Media:
- Plex:
icon: sh-plex.webp
description: Media server
href: https://plex.alexlebens.net
siteMonitor: http://plex.plex:32400
statusStyle: dot
- Jellyfin:
icon: sh-jellyfin.webp
description: Media server
@@ -165,6 +159,18 @@ homepage:
href: https://tubearchivist.alexlebens.net/login
siteMonitor: http://tubearchivist.tubearchivist:80
statusStyle: dot
- Music:
icon: sh-feishin.webp
description: Feishin
href: https://feishin.alexlebens.net
siteMonitor: http://navidrome-feishin.navidrome:80
statusStyle: dot
- Podcasts and Audiobooks:
icon: sh-audiobookshelf.webp
description: Audiobookshelf
href: https://audiobookshelf.alexlebens.net
siteMonitor: http://audiobookshelf.audiobookshelf:80
statusStyle: dot
- Photos:
icon: sh-immich.webp
description: Immich
@@ -177,12 +183,6 @@ homepage:
href: https://photoview.alexlebens.net
siteMonitor: http://photoview.photoview:80
statusStyle: dot
- Podcasts and Audiobooks:
icon: sh-audiobookshelf.webp
description: Audiobookshelf
href: https://audiobookshelf.alexlebens.net
siteMonitor: http://audiobookshelf.audiobookshelf:80
statusStyle: dot
- Books:
icon: sh-booklore.webp
description: Booklore

View File

@@ -0,0 +1,9 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.5.0
- name: volsync-target
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.6.0
digest: sha256:2d5e357064259b97afb7c8239d6d57da6f59c267a2a530262af9db32d228ae66
generated: "2025-12-24T14:05:31.844353-06:00"

View File

@@ -0,0 +1,27 @@
apiVersion: v2
name: navidrome
version: 1.0.0
description: Navidrome
keywords:
- navidrome
- feishin
- music
home: https://wiki.alexlebens.dev/s/
sources:
- https://github.com/navidrome/navidrome
- https://github.com/jeffvli/feishin
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: navidrome
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.5.0
- name: volsync-target
alias: volsync-target-data
version: 0.6.0
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/navidrome.png
# renovate: github=navidrome/navidrome
appVersion: 1.42.2

View File

@@ -0,0 +1,17 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: navidrome-music-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: navidrome-music-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
volumeName: navidrome-music-nfs-storage
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi

View File

@@ -0,0 +1,23 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: navidrome-music-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: navidrome-music-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
nfs:
path: /volume2/Storage/Music
server: synologybond.alexlebens.net
mountOptions:
- vers=4
- minorversion=1
- noac

View File

@@ -0,0 +1,154 @@
navidrome:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: deluan/navidrome
tag: 0.59.0@sha256:4edc8a1de3e042f30b78a478325839f4395177eb8201c27543dccc0eba674f23
pullPolicy: IfNotPresent
env:
- name: ND_MUSICFOLDER
value: /music
- name: ND_DATAFOLDER
value: /data
- name: ND_CACHEFOLDER
value: /cache
- name: ND_BASEURL
value: docker
- name: ND_ENABLEINSIGHTSCOLLECTOR
value: false
- name: ND_PROMETHEUS_ENABLED
value: true
resources:
limits:
gpu.intel.com/i915: 1
requests:
gpu.intel.com/i915: 1
cpu: 10m
memory: 128Mi
feishin:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/jeffvli/feishin
tag: 1.0.1-beta.1@sha256:61239641f23a33f99c2858419b14afb66683f3cd82010363fba92be3993fd894
pullPolicy: IfNotPresent
env:
- name: SERVER_NAME
value: talos
- name: SERVER_LOCK
value: true
- name: SERVER_TYPE
value: navidrome
- name: SERVER_URL
value: http://navidrome-main.navidrome:80
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 4533
protocol: HTTP
feishin:
controller: feishin
ports:
http:
port: 80
targetPort: 9180
protocol: HTTP
serviceMonitor:
main:
selector:
matchLabels:
app.kubernetes.io/name: navidrome
app.kubernetes.io/instance: navidrome
serviceName: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}'
endpoints:
- port: http
scheme: http
path: /metrics
interval: 30s
scrapeTimeout: 15s
route:
main:
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- navidrome.alexlebens.net
rules:
- backendRefs:
- group: ''
kind: Service
name: navidrome
port: 80
weight: 100
matches:
- path:
type: PathPrefix
value: /
feishin:
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- feishin.alexlebens.net
rules:
- backendRefs:
- group: ''
kind: Service
name: feishin
port: 80
weight: 100
matches:
- path:
type: PathPrefix
value: /
persistence:
data:
forceRename: navidrome-data
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 10Gi
advancedMounts:
main:
main:
- path: /data
readOnly: false
cache:
type: emptyDir
advancedMounts:
main:
main:
- path: /cache
readOnly: false
music:
existingClaim: navidrome-music-nfs-storage
advancedMounts:
main:
main:
- path: /mnt/store/Music
readOnly: true
volsync-target-data:
pvcTarget: navidrome-data
moverSecurityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch

View File

@@ -91,6 +91,7 @@ customDNS:
ceph IN CNAME traefik-cl01tl
code-server IN CNAME traefik-cl01tl
ephemera IN CNAME traefik-cl01tl
feishin IN CNAME traefik-cl01tl
garage-s3 IN CNAME traefik-cl01tl
garage-webui IN CNAME traefik-cl01tl
gatus IN CNAME traefik-cl01tl
@@ -113,6 +114,7 @@ customDNS:
listenarr IN CNAME traefik-cl01tl
mail IN CNAME traefik-cl01tl
n8n IN CNAME traefik-cl01tl
navidrome IN CNAME traefik-cl01tl
ntfy IN CNAME traefik-cl01tl
objects IN CNAME traefik-cl01tl
ollama IN CNAME traefik-cl01tl

View File

@@ -91,6 +91,7 @@ customDNS:
ceph IN CNAME traefik-cl01tl
code-server IN CNAME traefik-cl01tl
ephemera IN CNAME traefik-cl01tl
feishin IN CNAME traefik-cl01tl
garage-s3 IN CNAME traefik-cl01tl
garage-webui IN CNAME traefik-cl01tl
gatus IN CNAME traefik-cl01tl
@@ -113,6 +114,7 @@ customDNS:
listenarr IN CNAME traefik-cl01tl
mail IN CNAME traefik-cl01tl
n8n IN CNAME traefik-cl01tl
navidrome IN CNAME traefik-cl01tl
ntfy IN CNAME traefik-cl01tl
objects IN CNAME traefik-cl01tl
ollama IN CNAME traefik-cl01tl