Compare commits

..

21 Commits

Author SHA1 Message Date
9628b72c3c Update ghcr.io/linuxserver/plex:1.42.2 Docker digest to b19a5e3 (#3322)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 15s
renovate / renovate (push) Successful in 1m30s
2026-01-19 10:01:51 +00:00
76a8b0ec47 Update ghcr.io/jellyfin/jellyfin Docker tag to v10.11.6 (#3320)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m12s
renovate / renovate (push) Successful in 1m35s
2026-01-19 03:26:29 +00:00
52878066dc fix name
All checks were successful
lint-test-helm / lint-helm (push) Successful in 15s
render-manifests-push / render-manifests-push (push) Successful in 29s
renovate / renovate (push) Successful in 1m50s
2026-01-18 21:24:28 -06:00
6baf10d8a7 adjust schedule
All checks were successful
render-manifests-push / render-manifests-push (push) Successful in 52s
lint-test-helm / lint-helm (push) Successful in 1m8s
renovate / renovate (push) Successful in 2m42s
render-manifests-dispatch / render-manifests-dispatch (push) Successful in 31m41s
2026-01-18 18:05:08 -06:00
af9e1d3948 change to universal search
All checks were successful
lint-test-helm / lint-helm (push) Successful in 20s
render-manifests-push / render-manifests-push (push) Successful in 1m10s
renovate / renovate (push) Successful in 2m22s
2026-01-18 18:00:36 -06:00
383bb26ff9 add backup 2026-01-18 18:00:24 -06:00
e64be8dfd6 use main branch
All checks were successful
lint-test-helm / lint-helm (push) Successful in 17s
render-manifests-push / render-manifests-push (push) Successful in 1m27s
renovate / renovate (push) Successful in 2m34s
2026-01-18 17:55:14 -06:00
16636cdebc add downloads path 2026-01-18 17:54:59 -06:00
272b1d5298 use dev branch
All checks were successful
lint-test-helm / lint-helm (push) Successful in 16s
render-manifests-push / render-manifests-push (push) Successful in 40s
renovate / renovate (push) Successful in 1m40s
2026-01-18 17:42:06 -06:00
aff8b3404e remove ingest dir
Some checks failed
lint-test-helm / lint-helm (push) Successful in 37s
render-manifests-push / render-manifests-push (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2026-01-18 17:41:10 -06:00
3b272fa9e1 remove tautulli
All checks were successful
lint-test-helm / lint-helm (push) Successful in 17s
render-manifests-push / render-manifests-push (push) Successful in 54s
lint-test-docker / lint-docker-compose (push) Successful in 1m12s
renovate / renovate (push) Successful in 3m7s
2026-01-18 17:33:32 -06:00
f827ac7f59 audio
All checks were successful
lint-test-helm / lint-helm (push) Successful in 16s
render-manifests-push / render-manifests-push (push) Successful in 47s
renovate / renovate (push) Successful in 1m23s
2026-01-18 17:28:58 -06:00
84008b5c03 remove listenarr
All checks were successful
lint-test-helm / lint-helm (push) Successful in 18s
lint-test-docker / lint-docker-compose (push) Successful in 27s
render-manifests-push / render-manifests-push (push) Successful in 49s
renovate / renovate (push) Successful in 1m26s
2026-01-18 17:25:29 -06:00
acc3fb7dd3 sort lines
All checks were successful
lint-test-helm / lint-helm (push) Successful in 14s
render-manifests-push / render-manifests-push (push) Successful in 41s
renovate / renovate (push) Successful in 1m50s
2026-01-18 16:49:40 -06:00
d3c21094e4 add cat
Some checks failed
render-manifests-push / render-manifests-push (push) Failing after 1s
lint-test-helm / lint-helm (push) Failing after 5s
renovate / renovate (push) Successful in 1m24s
2026-01-18 16:47:14 -06:00
022041cf59 Update ghcr.io/linuxserver/prowlarr:2.3.0 Docker digest to d3e9307 (#3252)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 48s
renovate / renovate (push) Successful in 1m24s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/linuxserver/prowlarr](https://github.com/linuxserver/docker-prowlarr/packages) ([source](https://github.com/linuxserver/docker-prowlarr)) | digest | `67a8aae` → `d3e9307` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21lcmdlIiwiaW1hZ2UiXX0=-->

Reviewed-on: #3252
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-01-18 22:24:48 +00:00
097e70cabf Update ghcr.io/traefik/traefik Docker tag to v3.6.7 (#3264)
All checks were successful
lint-test-docker / lint-docker-compose (push) Successful in 26s
renovate / renovate (push) Successful in 1m33s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/traefik/traefik](https://hub.docker.com/_/traefik) ([source](https://github.com/traefik/traefik-library-image)) | patch | `v3.6.6` → `v3.6.7` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>traefik/traefik-library-image (ghcr.io/traefik/traefik)</summary>

### [`v3.6.7`](https://github.com/traefik/traefik-library-image/compare/v3.6.7...v3.6.7)

[Compare Source](https://github.com/traefik/traefik-library-image/compare/v3.6.7...v3.6.7)

### [`v3.6.7`](https://github.com/traefik/traefik-library-image/compare/v3.6.6...v3.6.7)

[Compare Source](https://github.com/traefik/traefik-library-image/compare/v3.6.6...v3.6.7)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21lcmdlIiwiaW1hZ2UiXX0=-->

Reviewed-on: #3264
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-01-18 20:39:41 +00:00
293279018e Update ghcr.io/linuxserver/qbittorrent:5.1.4 Docker digest to f430d70 (#3309)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 54s
renovate / renovate (push) Successful in 2m15s
2026-01-18 08:01:54 +00:00
4a237e9bea change port
All checks were successful
lint-test-helm / lint-helm (push) Successful in 36s
render-manifests-push / render-manifests-push (push) Successful in 52s
renovate / renovate (push) Successful in 1m38s
2026-01-17 21:49:02 -06:00
0b88420ff5 add excalidraw
All checks were successful
lint-test-helm / lint-helm (push) Successful in 1m28s
lint-test-docker / lint-docker-compose (push) Successful in 1m35s
render-manifests-push / render-manifests-push (push) Successful in 2m9s
renovate / renovate (push) Successful in 1m26s
render-manifests-dispatch / render-manifests-dispatch (push) Successful in 35m19s
2026-01-17 18:27:25 -06:00
d77aade354 remove fladder
All checks were successful
lint-test-docker / lint-docker-compose (push) Successful in 46s
render-manifests-push / render-manifests-push (push) Successful in 54s
renovate / renovate (push) Successful in 2m7s
lint-test-helm / lint-helm (push) Successful in 14s
2026-01-17 18:15:27 -06:00
27 changed files with 215 additions and 469 deletions

View File

@@ -113,8 +113,8 @@ blocky:
ceph IN CNAME traefik-cl01tl
code-server IN CNAME traefik-cl01tl
ephemera IN CNAME traefik-cl01tl
excalidraw IN CNAME traefik-cl01tl
feishin IN CNAME traefik-cl01tl
fladder IN CNAME traefik-cl01tl
garage-s3 IN CNAME traefik-cl01tl
garage-webui IN CNAME traefik-cl01tl
gatus IN CNAME traefik-cl01tl
@@ -134,7 +134,6 @@ blocky:
komodo IN CNAME traefik-cl01tl
lidarr IN CNAME traefik-cl01tl
lidatube IN CNAME traefik-cl01tl
listenarr IN CNAME traefik-cl01tl
mail IN CNAME traefik-cl01tl
navidrome IN CNAME traefik-cl01tl
ntfy IN CNAME traefik-cl01tl
@@ -161,7 +160,6 @@ blocky:
sonarr-4k IN CNAME traefik-cl01tl
sonarr-anime IN CNAME traefik-cl01tl
stalwart IN CNAME traefik-cl01tl
tautulli IN CNAME traefik-cl01tl
tdarr IN CNAME traefik-cl01tl
tubearchivist IN CNAME traefik-cl01tl
vault IN CNAME traefik-cl01tl

View File

@@ -0,0 +1,6 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
digest: sha256:e05d84dd266b8b456a8bc7f9a2bb3ab01f4ac926efd1a58cf405b0cdab343d3f
generated: "2026-01-17T18:27:08.062835-06:00"

View File

@@ -0,0 +1,21 @@
apiVersion: v2
name: excalidraw
version: 1.0.0
description: Excalidraw
keywords:
- excalidraw
home: https://wiki.alexlebens.dev/
sources:
- https://github.com/excalidraw/excalidraw
- https://hub.docker.com/r/excalidraw/excalidraw
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: excalidraw
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/excalidraw.png
# renovate: github=excalidraw/excalidraw
appVersion: 0.6.0

View File

@@ -0,0 +1,51 @@
excalidraw:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: excalidraw/excalidraw
tag: latest@sha256:3c2513e830bb6e195147c05b34ecf8393d0ba2b1cc86e93b407a5777d6135c6c
pullPolicy: IfNotPresent
env:
- name: NODE_ENV
value: production
- name: TZ
value: America/Chicago
resources:
requests:
cpu: 10m
memory: 128Mi
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 80
protocol: HTTP
route:
main:
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- excalidraw.alexlebens.net
rules:
- backendRefs:
- group: ''
kind: Service
name: excalidraw
port: 80
weight: 100
matches:
- path:
type: PathPrefix
value: /

View File

@@ -131,9 +131,6 @@ gatus:
- name: jellyfin
url: https://jellyfin.alexlebens.net
<<: *defaults
- name: fladder
url: https://fladder.alexlebens.net
<<: *defaults
- name: tubearchivist
url: https://tubearchivist.alexlebens.net
<<: *defaults
@@ -173,6 +170,9 @@ gatus:
- name: kiwix
url: https://kiwix.alexlebens.net
<<: *defaults
- name: excalidraw
url: https://excalidraw.alexlebens.net
<<: *defaults
- name: gitea
url: https://gitea.alexlebens.net
<<: *defaults
@@ -206,9 +206,6 @@ gatus:
- name: alertmanager
url: https://alertmanager.alexlebens.net
<<: *defaults
- name: tautulli
url: https://tautulli.alexlebens.net
<<: *defaults
- name: jellystat
url: https://jellystat.alexlebens.net
<<: *defaults
@@ -325,9 +322,6 @@ gatus:
- name: shelfmark
url: https://shelfmark.alexlebens.net
<<: *defaults
- name: listenarr
url: https://listenarr.alexlebens.net
<<: *defaults
- name: www
url: https://www.alexlebens.dev
<<: *defaults

View File

@@ -147,12 +147,6 @@ homepage:
href: https://yamtrack.alexlebens.net
siteMonitor: http://yamtrack.yamtrack:80
statusStyle: dot
- Movies and TV (Alt):
icon: sh-fladder.webp
description: Fladder, Jellyfin UI
href: https://fladder.alexlebens.net
siteMonitor: http://fladder.jellyfin:80
statusStyle: dot
- Movies and TV:
icon: sh-jellyfin.webp
description: Jellyfin
@@ -287,6 +281,12 @@ homepage:
href: https://kiwix.alexlebens.net
siteMonitor: http://kiwix.kiwix:80
statusStyle: dot
- Draw:
icon: sh-excalidraw.webp
description: Excalidraw
href: https://excalidraw.alexlebens.net
siteMonitor: http://excalidraw.excalidraw:80
statusStyle: dot
- Code:
- Code (Public):
icon: sh-gitea.webp
@@ -394,12 +394,6 @@ homepage:
query: prometheus_tsdb_storage_blocks_bytes
format:
type: bytes
- Tautulli:
icon: sh-tautulli.webp
description: Plex Monitoring
href: https://tautulli.alexlebens.net
siteMonitor: http://tautulli.tautulli:80
statusStyle: dot
- Jellystat:
icon: sh-jellystat.webp
description: Jellyfin Monitoring
@@ -692,12 +686,6 @@ homepage:
href: https://ephemera.alexlebens.net
siteMonitor: http://ephemera.ephemera:80
statusStyle: dot
- Listenarr:
icon: sh-audiobookrequest.webp
description: Audiobooks
href: https://listenarr.alexlebens.net
siteMonitor: http://listenarr.listenarr:80
statusStyle: dot
- Other Homes:
- Dev:
icon: sh-homepage.webp

View File

@@ -9,7 +9,7 @@ jellyfin:
main:
image:
repository: ghcr.io/jellyfin/jellyfin
tag: 10.11.5
tag: 10.11.6
pullPolicy: IfNotPresent
env:
- name: TZ
@@ -39,20 +39,6 @@ jellyfin:
secretKeyRef:
name: jellyfin-exporter-secret
key: token
fladder:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/donutware/fladder
tag: v0.9.0
pullPolicy: IfNotPresent
env:
- name: BASE_URL
value: https://jellyfin.alexlebens.net/
service:
main:
forceRename: jellyfin
@@ -66,14 +52,6 @@ jellyfin:
port: 9594
targetPort: 9594
protocol: HTTP
fladder:
forceRename: fladder
controller: fladder
ports:
http:
port: 80
targetPort: 80
protocol: HTTP
serviceMonitor:
main:
selector:
@@ -108,26 +86,6 @@ jellyfin:
- path:
type: PathPrefix
value: /
fladder:
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- fladder.alexlebens.net
rules:
- backendRefs:
- group: ''
kind: Service
name: fladder
port: 80
weight: 100
matches:
- path:
type: PathPrefix
value: /
persistence:
config:
forceRename: jellyfin-config

View File

@@ -1,9 +0,0 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: volsync-target
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.7.0
digest: sha256:3ca3de48695006c4a5bde214ee699677289b6a89ae1a92b6936c5f25d64ad25b
generated: "2026-01-16T18:49:46.484482035Z"

View File

@@ -1,25 +0,0 @@
apiVersion: v2
name: listenarr
version: 1.0.0
description: Listenarr
keywords:
- listenarr
- audiobooks
home: https://wiki.alexlebens.dev/
sources:
- https://github.com/therobbiedavis/Listenarr
- https://hub.docker.com/r/therobbiedavis/listenarr
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: listenarr
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: volsync-target
alias: volsync-target-config
version: 0.7.0
repository: oci://harbor.alexlebens.net/helm-charts
# renovate: github=therobbiedavis/Listenarr
appVersion: 0.2.35

View File

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

View File

@@ -1,23 +0,0 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: listenarr-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: listenarr-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/Audiobooks
server: synologybond.alexlebens.net
mountOptions:
- vers=4
- minorversion=1
- noac

View File

@@ -1,83 +0,0 @@
listenarr:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: therobbiedavis/listenarr
tag: canary-0.2.35
pullPolicy: IfNotPresent
env:
- name: LISTENARR_PUBLIC_URL
value: https://listenarr.alexlebens.net
resources:
requests:
cpu: 50m
memory: 128Mi
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 5000
protocol: HTTP
route:
main:
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- listenarr.alexlebens.net
rules:
- backendRefs:
- group: ''
kind: Service
name: listenarr
port: 80
weight: 100
matches:
- path:
type: PathPrefix
value: /
persistence:
config:
forceRename: listenarr
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 5Gi
retain: true
advancedMounts:
main:
main:
- path: /app/config
readOnly: false
media:
existingClaim: listenarr-nfs-storage
advancedMounts:
main:
main:
- path: /data
readOnly: false
volsync-target-config:
pvcTarget: listenarr
moverSecurityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
local:
enabled: true
schedule: 42 8 * * *
remote:
enabled: false
external:
enabled: true
schedule: 42 9 * * *

View File

@@ -9,7 +9,7 @@ plex:
main:
image:
repository: ghcr.io/linuxserver/plex
tag: 1.42.2@sha256:1720efa8e919a724ff3003cce7c1c0ae91a54e097ca3c8f6713a780c6fd73432
tag: 1.42.2@sha256:b19a5e34c6f8dd42abf88556b8aa5c8987c0c34820aaeaa320a02d8c17fdaab3
pullPolicy: IfNotPresent
env:
- name: TZ

View File

@@ -190,21 +190,21 @@ data:
orphaned_dir: /qbittorrent/Orphaned
cat:
-< COMPLETED: /mnt/store/Torrent/FINISHED/COMPLETED
-< IMPORT: /mnt/store/Torrent/FINISHED/IMPORT
-< SAVE: /mnt/store/Torrent/FINISHED/SAVE
-< ZIM: /mnt/store/Kiwix
lidarr: /mnt/store/Torrent/FINISHED/LIDARR
prowlarr: /mnt/store/Torrent/FINISHED/SAVE
radarr: /mnt/store/Torrent/FINISHED/RADARR
radarr-4k: /mnt/store/Torrent/FINISHED/RADARR4K
radarr-anime: /mnt/store/Torrent/FINISHED/RADARRANIME
radarr-standup: /mnt/store/Torrent/FINISHED/RADARRSTANDUP
sonarr: /mnt/store/Torrent/FINISHED/SONARR
radarr: /mnt/store/Torrent/FINISHED/RADARR
shelfmark-audiobooks: /mnt/store/Torrent/FINISHED/SHELFMARKAUDIOBOOKS
shelfmark-books: /mnt/store/Torrent/FINISHED/SHELFMARKBOOKS
sonarr-4k: /mnt/store/Torrent/FINISHED/SONARR4K
sonarr-anime: /mnt/store/Torrent/FINISHED/SONARRANIME
shelfmark-books: /mnt/store/Torrent/FINISHED/SHELFMARKBOOKS
shelfmark-audiobooks: /mnt/store/Torrent/FINISHED/SHELFMARKAUDIOBOOKS
-< ZIM: /mnt/store/Kiwix
-< SAVE: /mnt/store/Torrent/FINISHED/SAVE
-< IMPORT: /mnt/store/Torrent/FINISHED/IMPORT
-< COMPLETED: /mnt/store/Torrent/FINISHED/COMPLETED
sonarr: /mnt/store/Torrent/FINISHED/SONARR
tracker:
alpharatio.cc:

View File

@@ -28,7 +28,7 @@ qbittorrent:
qbittorrent:
image:
repository: ghcr.io/linuxserver/qbittorrent
tag: 5.1.4@sha256:95114034a7f74672b76f795f6938921b0ca795f85b59b48691035dc66714f34c
tag: 5.1.4@sha256:f430d70c70d1547fded30fbc3181c4750cef354212a5138ab754eba9ba8bd9e1
pullPolicy: IfNotPresent
env:
- name: TZ

View File

@@ -17,5 +17,9 @@ dependencies:
alias: shelfmark
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: volsync-target
alias: volsync-target-config
version: 0.7.0
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/shelfmark.webp
appVersion: v1.0.1

View File

@@ -15,3 +15,41 @@ spec:
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: shelfmark-audiobooks-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: shelfmark-audiobooks-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
volumeName: shelfmark-audiobooks-nfs-storage
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: shelfmark-downloads-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: shelfmark-downloads-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
volumeName: shelfmark-downloads-nfs-storage
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi

View File

@@ -21,3 +21,53 @@ spec:
- vers=4
- minorversion=1
- noac
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: shelfmark-audiobooks-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: shelfmark-audiobooks-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/Audiobooks
server: synologybond.alexlebens.net
mountOptions:
- vers=4
- minorversion=1
- noac
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: shelfmark-downloads-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: shelfmark-downloads-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/Torrent
server: synologybond.alexlebens.net
mountOptions:
- vers=4
- minorversion=1
- noac

View File

@@ -14,10 +14,8 @@ shelfmark:
env:
- name: FLASK_PORT
value: 8084
- name: INGEST_DIR
value: /ingest
- name: SEARCH_MODE
value: direct
value: universal
probes:
liveness:
enabled: true
@@ -68,6 +66,7 @@ shelfmark:
value: /
persistence:
config:
forceRename: shelfmark
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 1Gi
@@ -84,13 +83,27 @@ shelfmark:
main:
- path: /ingest
readOnly: false
audiobooks:
existingClaim: shelfmark-audiobooks-nfs-storage
advancedMounts:
main:
main:
- path: /audiobooks
readOnly: false
downloads:
existingClaim: shelfmark-downloads-nfs-storage
advancedMounts:
main:
main:
- path: /mnt/store/Torrent
readOnly: false
volsync-target-config:
pvcTarget: shelfmark-config
pvcTarget: shelfmark
local:
enabled: true
schedule: 0 8 * * *
schedule: 38 11 * * *
remote:
enabled: false
external:
enabled: true
schedule: 0 9 * * *
schedule: 38 12 * * *

View File

@@ -1,9 +0,0 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: volsync-target
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.7.0
digest: sha256:50badda5b51f1c82558bee67c3a647bdd356c9b7db06acfeef05501aaaabd911
generated: "2026-01-16T18:55:22.993941938Z"

View File

@@ -1,26 +0,0 @@
apiVersion: v2
name: tautulli
version: 1.0.0
description: Tautulli
keywords:
- tautulli
- plex
home: https://wiki.alexlebens.dev/s/b2f5d20a-b3c2-4e7a-b550-7b2855264408
sources:
- https://github.com/Tautulli/Tautulli
- https://github.com/Tautulli/Tautulli/pkgs/container/tautulli
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: tautulli
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: volsync-target
alias: volsync-target-config
version: 0.7.0
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/tautulli.png
# renovate: github=Tautulli/Tautulli
appVersion: v2.16.0

View File

@@ -1,179 +0,0 @@
tautulli:
controllers:
main:
type: deployment
annotations:
reloader.stakater.com/auto: "true"
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/tautulli/tautulli
tag: v2.16.0
pullPolicy: IfNotPresent
env:
- name: PUID
value: 1001
- name: GUID
value: 1001
- name: TZ
value: US/Central
resources:
requests:
cpu: 10m
memory: 128Mi
configMaps:
scripts:
enabled: true
data:
select_tmdb_poster.py: |
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Description: Selects the default TMDB poster if no poster is selected
or the current poster is from Gracenote.
Author: /u/SwiftPanda16
Requires: plexapi
Usage:
* Change the posters for an entire library:
python select_tmdb_poster.py --library "Movies"
* Change the poster for a specific item:
python select_tmdb_poster.py --rating_key 1234
* By default locked posters are skipped. To update locked posters:
python select_tmdb_poster.py --library "Movies" --include_locked
Tautulli script trigger:
* Notify on recently added
Tautulli script conditions:
* Filter which media to select the poster. Examples:
[ Media Type | is | movie ]
Tautulli script arguments:
* Recently Added:
--rating_key {rating_key}
'''
import argparse
import os
import plexapi.base
from plexapi.server import PlexServer
plexapi.base.USER_DONT_RELOAD_FOR_KEYS.add('fields')
# Environmental Variables
PLEX_URL = os.getenv('PLEX_URL')
PLEX_TOKEN = os.getenv('PLEX_TOKEN')
def select_tmdb_poster_library(library, include_locked=False):
for item in library.all(includeGuids=False):
# Only reload for fields
item.reload(**{k: 0 for k, v in item._INCLUDES.items()})
select_tmdb_poster_item(item, include_locked=include_locked)
def select_tmdb_poster_item(item, include_locked=False):
if item.isLocked('thumb') and not include_locked: # PlexAPI 4.5.10
print(f"Locked poster for {item.title}. Skipping.")
return
posters = item.posters()
selected_poster = next((p for p in posters if p.selected), None)
if selected_poster is None:
print(f"WARNING: No poster selected for {item.title}.")
else:
skipping = ' Skipping.' if selected_poster.provider != 'gracenote' else ''
print(f"Poster provider is '{selected_poster.provider}' for {item.title}.{skipping}")
if posters and (selected_poster is None or selected_poster.provider == 'gracenote'):
# Fallback to first poster if no TMDB posters are available
tmdb_poster = next((p for p in posters if p.provider == 'tmdb'), posters[0])
# Selecting the poster automatically locks it
tmdb_poster.select()
print(f"Selected {tmdb_poster.provider} poster for {item.title}.")
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--rating_key', type=int)
parser.add_argument('--library')
parser.add_argument('--include_locked', action='store_true')
opts = parser.parse_args()
plex = PlexServer(PLEX_URL, PLEX_TOKEN)
if opts.rating_key:
item = plex.fetchItem(opts.rating_key)
select_tmdb_poster_item(item, opts.include_locked)
elif opts.library:
library = plex.library.section(opts.library)
select_tmdb_poster_library(library, opts.include_locked)
else:
print("No --rating_key or --library specified. Exiting.")
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 8181
protocol: HTTP
route:
main:
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- tautulli.alexlebens.net
rules:
- backendRefs:
- group: ''
kind: Service
name: tautulli
port: 80
weight: 100
matches:
- path:
type: PathPrefix
value: /
persistence:
scripts:
enabled: true
type: configMap
name: tautulli-scripts
advancedMounts:
main:
main:
- path: /config/scripts/select_tmdb_poster.py
readOnly: true
mountPropagation: None
subPath: select_tmdb_poster.py
config:
forceRename: tautulli-config
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 5Gi
retain: true
advancedMounts:
main:
main:
- path: /config
readOnly: false
volsync-target-config:
pvcTarget: tautulli-config
local:
enabled: true
schedule: 34 11 * * *
remote:
enabled: false
external:
enabled: true
schedule: 34 12 * * *

View File

@@ -88,8 +88,8 @@ customDNS:
ceph IN CNAME traefik-cl01tl
code-server IN CNAME traefik-cl01tl
ephemera IN CNAME traefik-cl01tl
excalidraw IN CNAME traefik-cl01tl
feishin IN CNAME traefik-cl01tl
fladder IN CNAME traefik-cl01tl
garage-s3 IN CNAME traefik-cl01tl
garage-webui IN CNAME traefik-cl01tl
gatus IN CNAME traefik-cl01tl
@@ -109,7 +109,6 @@ customDNS:
komodo IN CNAME traefik-cl01tl
lidarr IN CNAME traefik-cl01tl
lidatube IN CNAME traefik-cl01tl
listenarr IN CNAME traefik-cl01tl
mail IN CNAME traefik-cl01tl
navidrome IN CNAME traefik-cl01tl
ntfy IN CNAME traefik-cl01tl
@@ -136,7 +135,6 @@ customDNS:
sonarr-4k IN CNAME traefik-cl01tl
sonarr-anime IN CNAME traefik-cl01tl
stalwart IN CNAME traefik-cl01tl
tautulli IN CNAME traefik-cl01tl
tdarr IN CNAME traefik-cl01tl
tubearchivist IN CNAME traefik-cl01tl
vault IN CNAME traefik-cl01tl

View File

@@ -1,7 +1,7 @@
---
services:
traefik:
image: ghcr.io/traefik/traefik:v3.6.6
image: ghcr.io/traefik/traefik:v3.6.7
container_name: traefik
command:
- "--global.checkNewVersion=false"

View File

@@ -109,8 +109,8 @@ customDNS:
ceph IN CNAME traefik-cl01tl
code-server IN CNAME traefik-cl01tl
ephemera IN CNAME traefik-cl01tl
excalidraw IN CNAME traefik-cl01tl
feishin IN CNAME traefik-cl01tl
fladder IN CNAME traefik-cl01tl
garage-s3 IN CNAME traefik-cl01tl
garage-webui IN CNAME traefik-cl01tl
gatus IN CNAME traefik-cl01tl
@@ -130,7 +130,6 @@ customDNS:
komodo IN CNAME traefik-cl01tl
lidarr IN CNAME traefik-cl01tl
lidatube IN CNAME traefik-cl01tl
listenarr IN CNAME traefik-cl01tl
mail IN CNAME traefik-cl01tl
navidrome IN CNAME traefik-cl01tl
ntfy IN CNAME traefik-cl01tl
@@ -157,7 +156,6 @@ customDNS:
sonarr-4k IN CNAME traefik-cl01tl
sonarr-anime IN CNAME traefik-cl01tl
stalwart IN CNAME traefik-cl01tl
tautulli IN CNAME traefik-cl01tl
tdarr IN CNAME traefik-cl01tl
tubearchivist IN CNAME traefik-cl01tl
vault IN CNAME traefik-cl01tl

View File

@@ -1,7 +1,7 @@
---
services:
traefik:
image: ghcr.io/traefik/traefik:v3.6.6
image: ghcr.io/traefik/traefik:v3.6.7
container_name: traefik
command:
- "--global.checkNewVersion=false"

View File

@@ -20,7 +20,7 @@ services:
- /dev/net/tun:/dev/net/tun
traefik:
image: ghcr.io/traefik/traefik:v3.6.6
image: ghcr.io/traefik/traefik:v3.6.7
container_name: traefik
command:
- "--global.checkNewVersion=false"