58 Commits

Author SHA1 Message Date
7f3b3ff48e refine snapcast deployment so piping between containers works 2025-12-20 18:02:07 +01:00
8c7b532a31 some tries to get a functioning setup 2025-11-26 21:35:08 +01:00
1d3fa552f6 Merge pull request 'Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.113' (#708) from renovate/git.kluster.moll.re-remoll-dns-0.x into main 2025-11-26 18:02:09 +00:00
13adb1b3fe Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.113 2025-11-26 18:01:55 +00:00
cd5e090dbe allow longer request times so big uploads don't fail 2025-11-26 17:29:18 +01:00
79e3bc5cc0 Merge pull request 'Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.112' (#707) from renovate/git.kluster.moll.re-remoll-dns-0.x into main 2025-11-26 16:02:32 +00:00
9a82e9092e Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.112 2025-11-26 16:02:19 +00:00
2fa2666f82 fixing audiobook upload issues 2025-11-26 16:28:20 +01:00
214d24c3b1 Merge pull request 'Update Helm release prometheus-node-exporter to v4.49.2' (#706) from renovate/prometheus-node-exporter-4.x into main 2025-11-25 22:02:36 +00:00
02e1a99d62 Update Helm release prometheus-node-exporter to v4.49.2 2025-11-25 22:01:52 +00:00
154abc93cb Merge pull request 'Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.111' (#705) from renovate/git.kluster.moll.re-remoll-dns-0.x into main 2025-11-25 18:02:24 +00:00
6f9948c309 Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.111 2025-11-25 18:02:09 +00:00
b01f43c23b Merge pull request 'Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.110' (#704) from renovate/git.kluster.moll.re-remoll-dns-0.x into main 2025-11-25 16:02:45 +00:00
a21169f028 Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.110 2025-11-25 16:02:29 +00:00
9075b46c46 Merge pull request 'Update owncloud/ocis Docker tag to v7.3.1' (#703) from renovate/owncloud-ocis-7.x into main 2025-11-25 14:02:14 +00:00
bc1e174070 Update owncloud/ocis Docker tag to v7.3.1 2025-11-25 14:01:53 +00:00
9932e8d8f7 websockets babyy 2025-11-25 14:07:07 +01:00
d888b47f16 Merge pull request 'Update Helm release grafana to v10.2.0' (#700) from renovate/grafana-10.x into main
Reviewed-on: #700
2025-11-25 08:54:20 +00:00
b7ee8a82e5 Merge pull request 'Update Helm release redis to v24' (#701) from renovate/redis-24.x into main
Reviewed-on: #701
2025-11-25 08:52:32 +00:00
d3eb09b545 Merge pull request 'Update Immich containers to v2.3.1' (#694) from renovate/immich-app-images into main
Reviewed-on: #694
2025-11-25 08:51:23 +00:00
3a842ad61d Merge pull request 'Update ghcr.io/paperless-ngx/paperless-ngx Docker tag to v2.20.0' (#702) from renovate/ghcr.io-paperless-ngx-paperless-ngx-2.x into main
Reviewed-on: #702
2025-11-25 08:49:19 +00:00
b63f362df2 Update ghcr.io/paperless-ngx/paperless-ngx Docker tag to v2.20.0 2025-11-22 22:01:49 +00:00
9e058a583e Update Helm release redis to v24 2025-11-21 16:02:36 +00:00
559e4c032d Update Helm release grafana to v10.2.0 2025-11-21 14:01:58 +00:00
aefec7e9de Merge pull request 'Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.109' (#697) from renovate/git.kluster.moll.re-remoll-dns-0.x into main 2025-11-21 04:02:07 +00:00
02e7689645 Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.109 2025-11-21 04:01:53 +00:00
37e51bf347 Merge pull request 'Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.108' (#696) from renovate/git.kluster.moll.re-remoll-dns-0.x into main 2025-11-21 02:02:28 +00:00
8163c74b7d Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.108 2025-11-21 02:02:14 +00:00
07d76654e0 Merge pull request 'Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.107' (#695) from renovate/git.kluster.moll.re-remoll-dns-0.x into main 2025-11-21 00:03:07 +00:00
5d13e79b4d Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.107 2025-11-21 00:02:10 +00:00
35750e95d8 Update Immich containers to v2.3.1 2025-11-20 04:01:47 +00:00
8e67ba32f0 Merge pull request 'Update Helm release grafana to v10.1.5' (#693) from renovate/grafana-10.x into main 2025-11-19 18:02:48 +00:00
477597feb6 Update Helm release grafana to v10.1.5 2025-11-19 18:02:04 +00:00
47133e9cd8 try using websockets for kitchenowl 2025-11-19 09:47:22 +01:00
da9f31356e Merge pull request 'Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.106' (#692) from renovate/git.kluster.moll.re-remoll-dns-0.x into main 2025-11-17 20:02:21 +00:00
6d56381dd5 Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.106 2025-11-17 20:02:07 +00:00
03dae71bf8 Merge pull request 'Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.105' (#691) from renovate/git.kluster.moll.re-remoll-dns-0.x into main 2025-11-17 18:02:26 +00:00
c8d63d3b78 Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.105 2025-11-17 18:02:14 +00:00
6203c0318e Merge pull request 'Update binwiederhier/ntfy Docker tag to v2.15.0' (#689) from renovate/binwiederhier-ntfy-2.x into main
Reviewed-on: #689
2025-11-17 08:52:22 +00:00
98c41e9cb9 Merge pull request 'Update ghcr.io/mealie-recipes/mealie Docker tag to v3.5.0' (#687) from renovate/ghcr.io-mealie-recipes-mealie-3.x into main
Reviewed-on: #687
2025-11-17 08:51:59 +00:00
c745cf6bd3 Merge pull request 'Update jellyfin/jellyfin Docker tag to v10.11.3' (#690) from renovate/jellyfin-jellyfin-10.x into main 2025-11-17 00:02:10 +00:00
ff4951622a Update jellyfin/jellyfin Docker tag to v10.11.3 2025-11-17 00:01:57 +00:00
97acaf558b Update binwiederhier/ntfy Docker tag to v2.15.0 2025-11-16 20:01:52 +00:00
bc35e10182 Merge pull request 'Update ghcr.io/paperless-ngx/paperless-ngx Docker tag to v2.19.6' (#688) from renovate/ghcr.io-paperless-ngx-paperless-ngx-2.x into main 2025-11-16 00:02:51 +00:00
c213f27a06 Update ghcr.io/paperless-ngx/paperless-ngx Docker tag to v2.19.6 2025-11-16 00:02:04 +00:00
26b964a611 Update ghcr.io/mealie-recipes/mealie Docker tag to v3.5.0 2025-11-14 18:02:29 +00:00
ee2499f1fc Merge pull request 'Update Helm release immich to v0.10.3' (#686) from renovate/immich-0.x into main 2025-11-14 18:02:09 +00:00
08ae63c1ee Update Helm release immich to v0.10.3 2025-11-14 18:01:55 +00:00
af3ea3e60d Merge pull request 'Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.104' (#685) from renovate/git.kluster.moll.re-remoll-dns-0.x into main 2025-11-12 22:02:06 +00:00
fbc97cec2b Update git.kluster.moll.re/remoll/dns Docker tag to v0.0.2-build.104 2025-11-12 22:01:53 +00:00
f542ed79fc Merge pull request 'Update Helm release traefik to v37.3.0' (#683) from renovate/traefik-37.x into main
Reviewed-on: #683
2025-11-10 16:51:57 +00:00
088078b7d8 Merge pull request 'Update Helm release immich to v0.10.2' (#684) from renovate/immich-0.x into main 2025-11-10 14:02:10 +00:00
9fd2b2b35a Update Helm release immich to v0.10.2 2025-11-10 14:01:56 +00:00
f0a57b6a0e Update Helm release traefik to v37.3.0 2025-11-10 12:02:02 +00:00
2eeacc4399 Merge pull request 'Update Helm release loki to v6.46.0' (#671) from renovate/loki-6.x into main
Reviewed-on: #671
2025-11-09 13:59:33 +00:00
3468feb284 Merge pull request 'Update docker.io/bitnami/sealed-secrets-controller Docker tag to v0.33.1' (#674) from renovate/docker.io-bitnami-sealed-secrets-controller-0.x into main
Reviewed-on: #674
2025-11-09 13:58:59 +00:00
c16119af17 Update docker.io/bitnami/sealed-secrets-controller Docker tag to v0.33.1 2025-11-06 18:02:06 +00:00
2fe3397d20 Update Helm release loki to v6.46.0 2025-11-05 02:02:45 +00:00
29 changed files with 459 additions and 17 deletions

View File

@@ -9,9 +9,20 @@ spec:
routes:
- match: Host(`audiobookshelf.kluster.moll.re`)
kind: Rule
middlewares:
- name: buffering
services:
- name: audiobookshelf-web
port: 80
tls:
certResolver: default-tls
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: buffering
spec:
buffering:
maxRequestBodyBytes: 10000000000 # approx 10gb
memRequestBodyBytes: 1048576

View File

@@ -0,0 +1,25 @@
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: avahi-reflector
spec:
selector:
matchLabels:
app: avahi-reflector
template:
metadata:
labels:
app: avahi-reflector
spec:
hostNetwork: true
containers:
- name: avahi-reflector
image: avahi-reflector
securityContext:
privileged: true # required for raw sockets
env:
- name: REFLECTOR_ENABLE_REFLECTOR
value: "yes"
- name: SERVER_ALLOW_INTERFACES
# use all interfaces
value: ""

View File

@@ -0,0 +1,14 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: avahi
resources:
- namespace.yaml
- daemonset.yaml
# - configmap.yaml
images:
- name: avahi-reflector
newName: flungo/avahi
newTag: latest

View File

@@ -0,0 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
name: placeholder
labels:
pod-security.kubernetes.io/enforce: privileged

View File

@@ -13,4 +13,4 @@ namespace: files
images:
- name: ocis
newName: owncloud/ocis
newTag: "7.3.0"
newTag: "7.3.1"

View File

@@ -17,5 +17,5 @@ helmCharts:
- releaseName: grafana
name: grafana
repo: https://grafana.github.io/helm-charts
version: 10.1.4
version: 10.2.0
valuesFile: grafana.values.yaml

View File

@@ -15,13 +15,13 @@ namespace: immich
helmCharts:
- name: immich
releaseName: immich
version: 0.10.1
version: 0.10.3
valuesFile: values.yaml
repo: https://immich-app.github.io/immich-charts
images:
- name: ghcr.io/immich-app/immich-machine-learning
newTag: v2.2.3
newTag: v2.3.1
- name: ghcr.io/immich-app/immich-server
newTag: v2.2.3
newTag: v2.3.1

View File

@@ -8,6 +8,8 @@ spec:
- websecure
routes:
- match: Host(`kitchen.kluster.moll.re`)
middlewares:
- name: kitchenowl
kind: Rule
services:
- name: kitchenowl-web
@@ -15,3 +17,13 @@ spec:
tls:
certResolver: default-tls
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: kitchenowl
spec:
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
Upgrade: "websocket"

View File

@@ -12,4 +12,4 @@ resources:
images:
- name: jellyfin/jellyfin
newName: jellyfin/jellyfin
newTag: 10.11.2
newTag: 10.11.3

View File

@@ -0,0 +1,43 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: musicassistant
spec:
selector:
matchLabels:
app: musicassistant
template:
metadata:
labels:
app: musicassistant
spec:
containers:
- name: musicassistant
image: musicassistant
resources:
limits:
memory: "2Gi"
cpu: "2"
requests:
memory: "128Mi"
cpu: "250m"
ports:
# ports required for musicassistant
- containerPort: 80
- containerPort: 443
- containerPort: 8097
- containerPort: 8095
# name: musicassistant-web
- containerPort: 1704
- containerPort: 1705
env:
- name: TZ
value: Europe/Berlin
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: data

View File

@@ -0,0 +1,17 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: musicassistant-ingressroute
spec:
entryPoints:
- websecure
routes:
- match: Host(`musicassistant.kluster.moll.re`)
kind: Rule
services:
- name: musicassistant-web
port: musicassistant-web
tls:
certResolver: default-tls

View File

@@ -0,0 +1,17 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: musicassistant
resources:
- namespace.yaml
- pvc.yaml
- deployment.yaml
- service.yaml
# - ingress.yaml
images:
- name: musicassistant
newName: ghcr.io/music-assistant/server
newTag: 2.6.0

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: placeholder

View File

@@ -0,0 +1,11 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: data
spec:
storageClassName: "nfs-client"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

View File

@@ -0,0 +1,41 @@
apiVersion: v1
kind: Service
metadata:
name: musicassistant
spec:
selector:
app: musicassistant
ports:
- port: 80
targetPort: 80
name: required-first
- port: 443
targetPort: 443
name: required-second
- port: 8097
targetPort: 8097
name: required-third
- port: 8095
targetPort: 8095
name: required-fourth
- port: 1704
targetPort: 1704
name: required-fifth
- port: 1705
targetPort: 1705
name: required-sixth
type: LoadBalancer
loadBalancerIP: 192.168.3.5
---
apiVersion: v1
kind: Service
metadata:
name: musicassistant-web
spec:
selector:
app: musicassistant
ports:
- port: 8095
targetPort: 8095
name: musicassistant-web
type: ClusterIP

View File

@@ -13,4 +13,4 @@ resources:
images:
- name: binwiederhier/ntfy
newName: binwiederhier/ntfy
newTag: v2.14.0
newTag: v2.15.0

View File

@@ -14,14 +14,14 @@ namespace: paperless
images:
- name: paperless
newName: ghcr.io/paperless-ngx/paperless-ngx
newTag: "2.19.5"
newTag: "2.20.0"
helmCharts:
- name: redis
releaseName: redis
repo: https://charts.bitnami.com/bitnami
version: 23.2.12
version: 24.0.0
valuesInline:
auth:
enabled: false

View File

@@ -13,5 +13,5 @@ resources:
images:
- name: mealie
newTag: v3.4.0
newTag: v3.5.0
newName: ghcr.io/mealie-recipes/mealie

7
apps/snapcast/README.md Normal file
View File

@@ -0,0 +1,7 @@
### Credentials
Since this tries to run in an isolated network we can't rely on autodiscover and the spotify client needs to be tied to an account.
This is achieved by registering the client on startup via oauth. The logs show an url which should be copied to a local browser. The successfull redirect needs to be forwarded back to the client, hence run:
```
k port-forward deployments/snapcast 5588:5588
```

View File

@@ -0,0 +1,109 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: snapcast
spec:
selector:
matchLabels:
app: snapcast
template:
metadata:
labels:
app: snapcast
spec:
containers:
- name: snapcast
image: snapcast
resources:
limits:
memory: "2Gi"
cpu: "2"
requests:
memory: "128Mi"
cpu: "250m"
ports:
# snapcast ports
- containerPort: 1704
- containerPort: 1705
# web interface
- containerPort: 1780
- containerPort: 1788
# avahi
- containerPort: 5353
# airplay
- containerPort: 3689
- containerPort: 5000
- containerPort: 6000
- containerPort: 6001
- containerPort: 6002
- containerPort: 6003
- containerPort: 6004
- containerPort: 6005
- containerPort: 6006
- containerPort: 6007
- containerPort: 6008
- containerPort: 6009
- containerPort: 7000
- containerPort: 319
- containerPort: 320
env:
- name: TZ
value: Europe/Berlin
- name: AIRPLAY_CONFIG_ENABLED
value: "1"
- name: SPOTIFY_CONFIG_ENABLED
value: "0"
- name: PIPE_CONFIG_ENABLED
value: "1"
- name: PIPE_PATH
value: /mnt/pipe/spotipipe
- name: PIPE_SOURCE_NAME
value: "Librespot"
# - name: PIPE_MODE
# value: "read"
- name: PIPE_EXTRA_ARGS
# see https://github.com/badaix/snapcast/issues/1248
value: "&sampleformat=44100:16:2"
volumeMounts:
- name: pipe
mountPath: /mnt/pipe
- name: librespot
image: librespot
resources:
limits:
memory: "2Gi"
cpu: "2"
requests:
memory: "128Mi"
cpu: "250m"
ports:
- containerPort: 5588 # default port for oauth callback
env:
- name: BACKEND
value: pipe
- name: DEVICE
value: /mnt/pipe/spotipipe
- name: DISABLE_DISCOVERY
value: Y
- name: AUTOPLAY
value: Y
# - name: VERBOSE
# value: Y
# - name: PASSTHROUGH
# value: Y
- name: ADDITIONAL_ARGUMENTS
value: "--enable-oauth --cache /cache"
volumeMounts:
- name: pipe
mountPath: /mnt/pipe
- name: credentials-cache
mountPath: /cache
volumes:
- name: pipe
emptyDir: {}
- name: credentials-cache
persistentVolumeClaim:
claimName: cache

View File

@@ -0,0 +1,19 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: snapcast
resources:
- namespace.yaml
- deployment.yaml
- service.yaml
- pvc.yaml
- snapcast-config.secret.yaml
images:
- name: snapcast
newName: ghcr.io/firefrei/snapcast/server
newTag: latest
- name: librespot
newName: giof71/librespot
newTag: latest

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: placeholder

11
apps/snapcast/pvc.yaml Normal file
View File

@@ -0,0 +1,11 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: cache
spec:
storageClassName: "nfs-client"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

View File

@@ -0,0 +1,86 @@
apiVersion: v1
kind: Service
metadata:
name: snapcast
spec:
selector:
app: snapcast
ports:
- name: snapcast
port: 1704
targetPort: 1704
protocol: TCP
- name: snapcast-ctl
port: 1705
targetPort: 1705
protocol: TCP
- name: web
port: 1780
targetPort: 1780
protocol: TCP
- name: web-alt
port: 1788
targetPort: 1788
protocol: TCP
# - name: airplay-3689
# port: 3689
# targetPort: 3689
# protocol: TCP
# - name: airplay-5000
# port: 5000
# targetPort: 5000
# protocol: TCP
# - name: airplay-6000
# port: 6000
# targetPort: 6000
# protocol: TCP
# - name: airplay-6001
# port: 6001
# targetPort: 6001
# protocol: TCP
# - name: airplay-6002
# port: 6002
# targetPort: 6002
# protocol: TCP
# - name: airplay-6003
# port: 6003
# targetPort: 6003
# protocol: TCP
# - name: airplay-6004
# port: 6004
# targetPort: 6004
# protocol: TCP
# - name: airplay-6005
# port: 6005
# targetPort: 6005
# protocol: TCP
# - name: airplay-6006
# port: 6006
# targetPort: 6006
# protocol: TCP
# - name: airplay-6007
# port: 6007
# targetPort: 6007
# protocol: TCP
# - name: airplay-6008
# port: 6008
# targetPort: 6008
# protocol: TCP
# - name: airplay-6009
# port: 6009
# targetPort: 6009
# protocol: TCP
# - name: airplay-7000
# port: 7000
# targetPort: 7000
# protocol: TCP
# - name: airplay-319
# port: 319
# targetPort: 319
# protocol: UDP
# - name: airplay-320
# port: 320
# targetPort: 320
# protocol: UDP
type: LoadBalancer
loadBalancerIP: 192.168.3.5

View File

@@ -11,4 +11,4 @@ resources:
images:
- name: dns
newName: git.kluster.moll.re/remoll/dns
newTag: 0.0.2-build.102
newTag: 0.0.2-build.113

View File

@@ -24,10 +24,10 @@ helmCharts:
- name: loki
releaseName: loki
repo: https://grafana.github.io/helm-charts
version: 6.45.2
version: 6.46.0
valuesFile: loki.values.yaml
- name: prometheus-node-exporter
releaseName: prometheus-node-exporter
repo: https://prometheus-community.github.io/helm-charts
version: 4.49.1
version: 4.49.2
valuesFile: prometheus-node-exporter.values.yaml

View File

@@ -9,4 +9,4 @@ resources:
images:
- name: controller
newName: docker.io/bitnami/sealed-secrets-controller
newTag: 0.32.2
newTag: 0.33.1

View File

@@ -66,6 +66,11 @@ data:
[entryPoints.websecure.forwardedHeaders]
insecure = true
# forward ip headers no matter where they come from
[entryPoints.websecure.transport.respondingTimeouts]
readTimeout = "0"
# writeTimeout = "300s"
# idleTimeout = "180s"
[entryPoints.metrics]
address = ":9100"

View File

@@ -13,6 +13,6 @@ namespace: traefik-system
helmCharts:
- name: traefik
releaseName: traefik
version: 37.2.0
version: 37.3.0
valuesFile: values.yaml
repo: https://traefik.github.io/charts