13 Commits

Author SHA1 Message Date
renovate[bot]
439165eebf Update Helm release app-template to v3.7.1 (#1239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 23:02:28 -06:00
renovate[bot]
0620e3dfed Update ghcr.io/calibrain/calibre-web-automated-book-downloader:latest Docker digest to 90d16b6 (#1252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 23:02:01 -06:00
renovate[bot]
6f790bb459 Update ghcr.io/haveagitgat/tdarr Docker tag to v2.32.01 (#1225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 23:01:54 -06:00
renovate[bot]
a75e483b37 Update ghcr.io/haveagitgat/tdarr_node Docker tag to v2.32.01 (#1226)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 23:01:47 -06:00
renovate[bot]
b4764ec73f Update Helm release meilisearch to v0.12.0 (#1254)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 23:01:27 -06:00
renovate[bot]
6a60cf317e Update ghcr.io/linuxserver/code-server Docker tag to v4.97.2 (#1255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 23:00:59 -06:00
renovate[bot]
92b894a3a1 Update Helm release cloudflared to v1.14.0 (#1257)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 23:00:51 -06:00
renovate[bot]
50e28bf184 Update d3fk/s3cmd:latest Docker digest to c4a59dc (#1256)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 23:00:44 -06:00
c81eb7273f add photoview 2025-02-18 22:57:10 -06:00
9393da50ad remove checkrr 2025-02-18 22:54:57 -06:00
905809c755 add tdarr 2025-02-18 22:52:55 -06:00
194f9022f5 add tautulli 2025-02-18 22:52:13 -06:00
42e6954479 remove alertmanger endpoint 2025-02-18 22:48:13 -06:00
48 changed files with 946 additions and 65 deletions

View File

@@ -18,6 +18,6 @@ dependencies:
- name: app-template
alias: audiobookshelf
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/audiobookshelf.png
appVersion: 2.17.5

View File

@@ -16,6 +16,6 @@ dependencies:
- name: app-template
alias: calibre-web-automated
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/calibre-web.png
appVersion: V2.1.2

View File

@@ -33,7 +33,7 @@ calibre-web-automated:
main:
image:
repository: ghcr.io/calibrain/calibre-web-automated-book-downloader
tag: latest@sha256:29757639bff2263a0de383e6b4855b09457e6c5944f41e934247bbb9bec5c8b7
tag: latest@sha256:90d16b6d27c054f607a17ad47d99944e474b5957be5a43400e9341af52c5c3f7
pullPolicy: IfNotPresent
env:
- name: FLASK_PORT

View File

@@ -19,10 +19,10 @@ dependencies:
- name: app-template
alias: code-server
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: cloudflared
alias: cloudflared
repository: http://alexlebens.github.io/helm-charts
version: 1.13.0
version: 1.14.0
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/code-server.png
appVersion: 4.96.1

View File

@@ -9,7 +9,7 @@ code-server:
main:
image:
repository: ghcr.io/linuxserver/code-server
tag: 4.96.4@sha256:11f009e81643d28f4527e3aa23f64bcd672be5ec2046be46c84755c82b5ad471
tag: 4.97.2@sha256:5c900277e10a8c2868d4db86d0870c94096c9e3140ec9480cb7c47726b9d059c
pullPolicy: IfNotPresent
env:
- name: TZ

View File

@@ -20,11 +20,11 @@ dependencies:
- name: app-template
alias: freshrss
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: cloudflared
alias: cloudflared
repository: http://alexlebens.github.io/helm-charts
version: 1.13.0
version: 1.14.0
- name: postgres-cluster
alias: postgres-17-cluster
version: 4.1.4

View File

@@ -20,13 +20,13 @@ dependencies:
- name: app-template
alias: hoarder
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: meilisearch
version: 0.11.0
version: 0.12.0
repository: https://meilisearch.github.io/meilisearch-kubernetes
- name: cloudflared
alias: cloudflared
repository: http://alexlebens.github.io/helm-charts
version: 1.13.0
version: 1.14.0
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/svg/hoarder.svg
appVersion: 0.19.0

View File

@@ -18,10 +18,10 @@ dependencies:
- name: app-template
alias: homepage
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: cloudflared
alias: cloudflared
repository: http://alexlebens.github.io/helm-charts
version: 1.13.0
version: 1.14.0
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/homepage.png
appVersion: v0.10.0

View File

@@ -16,6 +16,6 @@ dependencies:
- name: app-template
alias: homepage
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/homepage.png
appVersion: v0.10.0

View File

@@ -326,12 +326,6 @@ homepage:
widget:
type: prometheus
url: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090
- Alerts:
icon: sh-prometheus.svg
description: Alertmanager
href: https://alertmanager-cl01tl.boreal-beaufort.ts.net
siteMonitor: http://kube-prometheus-stack-alertmanager.kube-prometheus-stack:9093
statusStyle: dot
- Tautulli:
icon: sh-tautulli.svg
description: Plex Monitoring
@@ -588,12 +582,6 @@ homepage:
widget:
type: tdarr
url: http://tdarr-web.tdarr:8265
- Checkrr:
icon: sh-healthchecks.png
description: Media healthchecks
href: https://checkrr-cl01tl.boreal-beaufort.ts.net
siteMonitor: http://checkrr.checkrr:80
statusStyle: dot
- Other Homes:
- Dev:
icon: sh-homepage.png

View File

@@ -22,6 +22,6 @@ dependencies:
- name: app-template
alias: jellyfin
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/jellyfin.png
appVersion: 10.10.3

View File

@@ -18,7 +18,7 @@ dependencies:
- name: app-template
alias: jellystat
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: postgres-cluster
alias: postgres-17-cluster
version: 4.1.4

View File

@@ -16,6 +16,6 @@ dependencies:
- name: app-template
alias: kiwix
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/svg/kiwix-light.svg
appVersion: 3.7.0

View File

@@ -17,6 +17,6 @@ dependencies:
- name: app-template
alias: libation
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://getlibation.com/images/libation-logo.png
appVersion: 11.6.3

View File

@@ -0,0 +1,28 @@
apiVersion: v2
name: photoview
version: 1.0.0
description: Photoview
keywords:
- photoview
- pictures
home: https://wiki.alexlebens.dev/doc/photoview-WSRscnhpwv
sources:
- https://github.com/immich-app/immich
- https://github.com/valkey-io/valkey
- https://github.com/cloudnative-pg/cloudnative-pg
- https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
- https://github.com/bitnami/charts/tree/main/bitnami/valkey
- https://github.com/alexlebens/helm-charts/charts/postgres-cluster
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: photoview
repository: https://bjw-s.github.io/helm-charts/
version: 3.7.1
- name: postgres-cluster
alias: postgres-17-cluster
version: 4.1.4
repository: http://alexlebens.github.io/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/photoview.png
appVersion: 2.4.0

View File

@@ -0,0 +1,30 @@
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: photoview-postgresql-17-cluster-backup-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: photoview-postgresql-17-cluster-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: database
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: ACCESS_KEY_ID
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /digital-ocean/home-infra/postgres-backups
metadataPolicy: None
property: access
- secretKey: ACCESS_SECRET_KEY
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /digital-ocean/home-infra/postgres-backups
metadataPolicy: None
property: secret

View File

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

View File

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

View File

@@ -0,0 +1,115 @@
photoview:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
initContainers:
init-chmod-data:
securityContext:
runAsUser: 0
image:
repository: busybox
tag: 1.37.0
pullPolicy: IfNotPresent
command:
- /bin/sh
- -ec
- |
/bin/chown -R 999:999 /app/cache
resources:
requests:
cpu: 100m
memory: 128Mi
containers:
main:
image:
repository: photoview/photoview
tag: 2.4.0
pullPolicy: IfNotPresent
env:
- name: PHOTOVIEW_DATABASE_DRIVER
value: postgres
- name: PHOTOVIEW_POSTGRES_URL
valueFrom:
secretKeyRef:
name: photoview-postgresql-17-cluster-app
key: uri
- name: PHOTOVIEW_MEDIA_CACHE
value: /app/cache
- name: PHOTOVIEW_VIDEO_HARDWARE_ACCELERATION
value: qsv
resources:
requests:
gpu.intel.com/i915: 1
cpu: 10m
memory: 512Mi
limits:
gpu.intel.com/i915: 1
serviceAccount:
create: true
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 80
protocol: HTTP
ingress:
main:
enabled: true
className: tailscale
hosts:
- host: photoview-cl01tl
paths:
- path: /
pathType: Prefix
service:
name: photoview
port: 80
tls:
- hosts:
- photoview-cl01tl
persistence:
media:
existingClaim: photoview-nfs-storage
advancedMounts:
main:
main:
- path: /photos
readOnly: true
cache:
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 10Gi
retain: false
advancedMounts:
main:
init-chmod-data:
- path: /app/cache
readOnly: false
main:
- path: /app/cache
readOnly: false
postgres-17-cluster:
mode: recovery
cluster:
walStorage:
storageClass: local-path
storage:
storageClass: local-path
monitoring:
enabled: true
recovery:
endpointURL: https://nyc3.digitaloceanspaces.com
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/photoview/photoview-postgresql-17-cluster
endpointCredentials: photoview-postgresql-17-cluster-backup-secret
backup:
enabled: false
endpointURL: https://nyc3.digitaloceanspaces.com
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/photoview/photoview-postgresql-17-cluster
endpointCredentials: photoview-postgresql-17-cluster-backup-secret
backupIndex: 1
retentionPolicy: "7d"

View File

@@ -20,6 +20,6 @@ dependencies:
- name: app-template
alias: plex
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/plex.png
appVersion: 1.41.3.9292

View File

@@ -17,7 +17,7 @@ dependencies:
- name: app-template
alias: searxng
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: valkey
version: 2.2.3
repository: https://charts.bitnami.com/bitnami

View File

@@ -0,0 +1,21 @@
apiVersion: v2
name: tautulli
version: 1.0.0
description: Tautulli
keywords:
- tautulli
- plex
home: https://wiki.alexlebens.dev/doc/tautulli-7FKi7SM33K
sources:
- https://github.com/Tautulli/Tautulli
- https://github.com/Tautulli/Tautulli/pkgs/container/tautulli
- https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: tautulli
repository: https://bjw-s.github.io/helm-charts/
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/tautulli.png
appVersion: v2.15.0

View File

@@ -0,0 +1,57 @@
# apiVersion: external-secrets.io/v1beta1
# kind: ExternalSecret
# metadata:
# name: tautulli-config-backup-secret
# namespace: {{ .Release.Namespace }}
# labels:
# app.kubernetes.io/name: tautulli-config-backup-secret
# app.kubernetes.io/instance: {{ .Release.Name }}
# app.kubernetes.io/version: {{ .Chart.AppVersion }}
# app.kubernetes.io/component: backup
# app.kubernetes.io/part-of: {{ .Release.Name }}
# spec:
# secretStoreRef:
# kind: ClusterSecretStore
# name: vault
# target:
# template:
# mergePolicy: Merge
# engineVersion: v2
# data:
# RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/tautulli/tautulli-config"
# data:
# - secretKey: BUCKET_ENDPOINT
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /cl01tl/volsync/restic/config
# metadataPolicy: None
# property: S3_BUCKET_ENDPOINT
# - secretKey: RESTIC_PASSWORD
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /cl01tl/volsync/restic/config
# metadataPolicy: None
# property: RESTIC_PASSWORD
# - secretKey: AWS_DEFAULT_REGION
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /cl01tl/volsync/restic/config
# metadataPolicy: None
# property: AWS_DEFAULT_REGION
# - secretKey: AWS_ACCESS_KEY_ID
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /digital-ocean/home-infra/volsync-backups
# metadataPolicy: None
# property: access_key
# - secretKey: AWS_SECRET_ACCESS_KEY
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /digital-ocean/home-infra/volsync-backups
# metadataPolicy: None
# property: secret_key

View File

@@ -0,0 +1,27 @@
# apiVersion: volsync.backube/v1alpha1
# kind: ReplicationSource
# metadata:
# name: tautulli-config-backup-source
# namespace: {{ .Release.Namespace }}
# labels:
# app.kubernetes.io/name: tautulli-config-backup-source
# app.kubernetes.io/instance: {{ .Release.Name }}
# app.kubernetes.io/version: {{ .Chart.AppVersion }}
# app.kubernetes.io/component: backup
# app.kubernetes.io/part-of: {{ .Release.Name }}
# spec:
# sourcePVC: tautulli-config
# trigger:
# schedule: 0 0 */3 * *
# restic:
# pruneIntervalDays: 14
# repository: tautulli-config-backup-secret
# retain:
# hourly: 1
# daily: 1
# weekly: 1
# monthly: 2
# yearly: 4
# copyMethod: Snapshot
# storageClassName: ceph-block
# volumeSnapshotClassName: ceph-blockpool-snapshot

View File

@@ -0,0 +1,164 @@
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.15.1
pullPolicy: IfNotPresent
env:
- name: PUID
value: 1001
- name: GUID
value: 1001
- name: TZ
value: US/Central
resources:
requests:
cpu: 10m
memory: 128Mi
serviceAccount:
create: true
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
ingress:
tailscale:
enabled: true
className: tailscale
hosts:
- host: tautulli-cl01tl
paths:
- path: /
pathType: Prefix
service:
name: tautulli
port: 80
tls:
- hosts:
- tautulli-cl01tl
persistence:
config:
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 5Gi
retain: true
advancedMounts:
main:
main:
- path: /config
readOnly: false
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

View File

@@ -0,0 +1,29 @@
apiVersion: v2
name: tdarr
version: 1.0.0
description: Tdarr
keywords:
- tdarr
- video
- transcode
- healthchecks
home: https://wiki.alexlebens.dev/doc/tdarr-DlUb9r2tdL
sources:
- https://github.com/HaveAGitGat/Tdarr
- https://github.com/homeylab/tdarr-exporter
- https://github.com/haveagitgat/Tdarr/pkgs/container/tdarr
- https://hub.docker.com/r/homeylab/tdarr-exporter
- https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
- https://github.com/homeylab/helm-charts/tree/main/charts/tdarr-exporter
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: tdarr
repository: https://bjw-s.github.io/helm-charts/
version: 3.7.1
- name: tdarr-exporter
version: 1.1.6
repository: https://homeylab.github.io/helm-charts/
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/tdarr.png
appVersion: 2.27.02

View File

@@ -0,0 +1,116 @@
# apiVersion: external-secrets.io/v1beta1
# kind: ExternalSecret
# metadata:
# name: tdarr-config-backup-secret
# namespace: {{ .Release.Namespace }}
# labels:
# app.kubernetes.io/name: tdarr-config-backup-secret
# app.kubernetes.io/instance: {{ .Release.Name }}
# app.kubernetes.io/version: {{ .Chart.AppVersion }}
# app.kubernetes.io/component: backup
# app.kubernetes.io/part-of: {{ .Release.Name }}
# spec:
# secretStoreRef:
# kind: ClusterSecretStore
# name: vault
# target:
# template:
# mergePolicy: Merge
# engineVersion: v2
# data:
# RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/tdarr/tdarr-config"
# data:
# - secretKey: BUCKET_ENDPOINT
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /cl01tl/volsync/restic/config
# metadataPolicy: None
# property: S3_BUCKET_ENDPOINT
# - secretKey: RESTIC_PASSWORD
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /cl01tl/volsync/restic/config
# metadataPolicy: None
# property: RESTIC_PASSWORD
# - secretKey: AWS_DEFAULT_REGION
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /cl01tl/volsync/restic/config
# metadataPolicy: None
# property: AWS_DEFAULT_REGION
# - secretKey: AWS_ACCESS_KEY_ID
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /digital-ocean/home-infra/volsync-backups
# metadataPolicy: None
# property: access_key
# - secretKey: AWS_SECRET_ACCESS_KEY
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /digital-ocean/home-infra/volsync-backups
# metadataPolicy: None
# property: secret_key
# ---
# apiVersion: external-secrets.io/v1beta1
# kind: ExternalSecret
# metadata:
# name: tdarr-server-backup-secret
# namespace: {{ .Release.Namespace }}
# labels:
# app.kubernetes.io/name: tdarr-server-backup-secret
# app.kubernetes.io/instance: {{ .Release.Name }}
# app.kubernetes.io/version: {{ .Chart.AppVersion }}
# app.kubernetes.io/component: backup
# app.kubernetes.io/part-of: {{ .Release.Name }}
# spec:
# secretStoreRef:
# kind: ClusterSecretStore
# name: vault
# target:
# template:
# mergePolicy: Merge
# engineVersion: v2
# data:
# RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/tdarr/tdarr-server"
# data:
# - secretKey: BUCKET_ENDPOINT
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /cl01tl/volsync/restic/config
# metadataPolicy: None
# property: S3_BUCKET_ENDPOINT
# - secretKey: RESTIC_PASSWORD
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /cl01tl/volsync/restic/config
# metadataPolicy: None
# property: RESTIC_PASSWORD
# - secretKey: AWS_DEFAULT_REGION
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /cl01tl/volsync/restic/config
# metadataPolicy: None
# property: AWS_DEFAULT_REGION
# - secretKey: AWS_ACCESS_KEY_ID
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /digital-ocean/home-infra/volsync-backups
# metadataPolicy: None
# property: access_key
# - secretKey: AWS_SECRET_ACCESS_KEY
# remoteRef:
# conversionStrategy: Default
# decodingStrategy: None
# key: /digital-ocean/home-infra/volsync-backups
# metadataPolicy: None
# property: secret_key

View File

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

View File

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

View File

@@ -0,0 +1,56 @@
# apiVersion: volsync.backube/v1alpha1
# kind: ReplicationSource
# metadata:
# name: tdarr-config-backup-source
# namespace: {{ .Release.Namespace }}
# labels:
# app.kubernetes.io/name: tdarr-config-backup-source
# app.kubernetes.io/instance: {{ .Release.Name }}
# app.kubernetes.io/version: {{ .Chart.AppVersion }}
# app.kubernetes.io/component: backup
# app.kubernetes.io/part-of: {{ .Release.Name }}
# spec:
# sourcePVC: tdarr-config
# trigger:
# schedule: 0 0 */3 * *
# restic:
# pruneIntervalDays: 14
# repository: tdarr-config-backup-secret
# retain:
# hourly: 1
# daily: 1
# weekly: 1
# monthly: 2
# yearly: 4
# copyMethod: Snapshot
# storageClassName: ceph-block
# volumeSnapshotClassName: ceph-blockpool-snapshot
# ---
# apiVersion: volsync.backube/v1alpha1
# kind: ReplicationSource
# metadata:
# name: tdarr-server-backup-source
# namespace: {{ .Release.Namespace }}
# labels:
# app.kubernetes.io/name: tdarr-server-backup-source
# app.kubernetes.io/instance: {{ .Release.Name }}
# app.kubernetes.io/version: {{ .Chart.AppVersion }}
# app.kubernetes.io/component: backup
# app.kubernetes.io/part-of: {{ .Release.Name }}
# spec:
# sourcePVC: tdarr-server
# trigger:
# schedule: 0 0 */3 * *
# restic:
# pruneIntervalDays: 14
# repository: tdarr-server-backup-secret
# retain:
# hourly: 1
# daily: 1
# weekly: 1
# monthly: 2
# yearly: 4
# copyMethod: Snapshot
# storageClassName: ceph-block
# volumeSnapshotClassName: ceph-blockpool-snapshot

View File

@@ -0,0 +1,174 @@
tdarr:
controllers:
server:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/haveagitgat/tdarr
tag: 2.32.01
pullPolicy: IfNotPresent
env:
- name: TZ
value: US/Central
- name: PUID
value: "1001"
- name: PGID
value: "1001"
- name: UMASK_SET
value: "002"
- name: ffmpegVersion
value: "6"
- name: internalNode
value: "false"
- name: inContainer
value: "true"
- name: nodeName
value: tdarr-server
- name: serverIP
value: 0.0.0.0
- name: serverPort
value: "8266"
- name: webUIPort
value: "8265"
resources:
requests:
cpu: 200m
memory: 1Gi
node:
type: daemonset
revisionHistoryLimit: 3
pod:
nodeSelector:
intel.feature.node.kubernetes.io/gpu: "true"
containers:
main:
image:
repository: ghcr.io/haveagitgat/tdarr_node
tag: 2.32.01
pullPolicy: IfNotPresent
env:
- name: TZ
value: US/Central
- name: PUID
value: "1001"
- name: PGID
value: "1001"
- name: UMASK_SET
value: "002"
- name: ffmpegVersion
value: "6"
- name: inContainer
value: "true"
- name: nodeName
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: serverIP
value: tdarr-api
- name: serverPort
value: "8266"
resources:
limits:
gpu.intel.com/i915: 1
cpu: 2000m
requests:
gpu.intel.com/i915: 1
cpu: 10m
memory: 512Mi
serviceAccount:
create: true
service:
api:
controller: server
ports:
http:
port: 8266
targetPort: 8266
protocol: HTTP
web:
controller: server
ports:
http:
port: 8265
targetPort: 8265
protocol: HTTP
ingress:
tailscale:
enabled: true
className: tailscale
hosts:
- host: tdarr-cl01tl
paths:
- path: /
pathType: Prefix
service:
name: tdarr-web
port: 8265
tls:
- hosts:
- tdarr-cl01tl
persistence:
config:
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 50Gi
retain: true
advancedMounts:
server:
main:
- path: /app/configs
readOnly: false
server:
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 50Gi
retain: true
advancedMounts:
server:
main:
- path: /app/server
readOnly: false
server-cache:
type: emptyDir
advancedMounts:
server:
main:
- path: /tcache
readOnly: false
node-cache:
type: emptyDir
advancedMounts:
node:
main:
- path: /tcache
readOnly: false
media:
existingClaim: tdarr-nfs-storage
advancedMounts:
server:
main:
- path: /mnt/store
readOnly: true
node:
main:
- path: /mnt/store
readOnly: true
tdarr-exporter:
image:
name: homeylab/tdarr-exporter
tag: 1.4.2
metrics:
serviceMonitor:
enabled: true
settings:
config:
url: http://tdarr-web.tdarr:8265
verify_ssl: false
resources:
requests:
cpu: 100m
memory: 256Mi

View File

@@ -18,7 +18,7 @@ dependencies:
- name: app-template
alias: komodo
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: postgres-cluster
alias: postgres-17-cluster
version: 4.1.4

View File

@@ -41,22 +41,10 @@ kube-prometheus-stack:
- send_resolved: true
user_key_file: /etc/alertmanager/secrets/alertmanager-config-secret/user_key
token_file: /etc/alertmanager/secrets/alertmanager-config-secret/pushover_token
ingress:
enabled: true
ingressClassName: tailscale
labels:
tailscale.com/proxy-class: no-metrics
hosts:
- alertmanager-cl01tl
tls:
- secretName: alertmanager-cl01tl
hosts:
- alertmanager-cl01tl
alertmanagerSpec:
secrets:
- alertmanager-config-secret
replicas: 1
externalUrl: https://alertmanager-cl01tl.boreal-beaufort.ts.net
grafana:
enabled: false
kubeApiServer:

View File

@@ -18,6 +18,6 @@ dependencies:
- name: app-template
alias: unpoller
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://camo.githubusercontent.com/c5d07a5b3acfeac8e1c25bf56f440ffe032b86e4e7f15de82357f022a43fc927/68747470733a2f2f756e706f6c6c65722e636f6d2f696d672f6c6f676f2e706e67
appVersion: v2.11.2

View File

@@ -26,7 +26,7 @@ dependencies:
- name: cloudflared
alias: cloudflared
repository: http://alexlebens.github.io/helm-charts
version: 1.13.0
version: 1.14.0
- name: postgres-cluster
alias: postgres-17-cluster
version: 4.1.4

View File

@@ -24,7 +24,7 @@ dependencies:
- name: cloudflared
alias: cloudflared
repository: http://alexlebens.github.io/helm-charts
version: 1.13.0
version: 1.14.0
# - name: app-template
# alias: backup
# repository: https://bjw-s.github.io/helm-charts/

View File

@@ -139,7 +139,7 @@ backup:
s3:
image:
repository: d3fk/s3cmd
tag: latest@sha256:ae12ef40440ee069dac63d98a3590da0e02acc56ea4f60e9e4c5353d585a9140
tag: latest@sha256:c4a59dc77d2b8e9580579f2b90b8f377485d01741ad8151e0395cb9e4372eac0
pullPolicy: IfNotPresent
command:
- /bin/sh

View File

@@ -21,7 +21,7 @@ dependencies:
- name: app-template
alias: ollama
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: postgres-cluster
alias: postgres-17-cluster
version: 4.1.4

View File

@@ -23,6 +23,6 @@ dependencies:
- name: app-template
alias: qbittorrent
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/qbittorrent.png
appVersion: 5.0.2

View File

@@ -17,6 +17,6 @@ dependencies:
- name: app-template
alias: unpackerr
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://avatars.githubusercontent.com/u/104323643?s=48&v=4
appVersion: 0.14.5

View File

@@ -20,10 +20,10 @@ dependencies:
- name: app-template
alias: snapshot
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: app-template
alias: unseal
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/vault.png
appVersion: 1.18.4

View File

@@ -211,7 +211,7 @@ snapshot:
backup:
image:
repository: d3fk/s3cmd
tag: latest@sha256:ae12ef40440ee069dac63d98a3590da0e02acc56ea4f60e9e4c5353d585a9140
tag: latest@sha256:c4a59dc77d2b8e9580579f2b90b8f377485d01741ad8151e0395cb9e4372eac0
pullPolicy: IfNotPresent
command:
- /bin/sh

View File

@@ -16,7 +16,7 @@ dependencies:
- name: app-template
alias: blocky
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: valkey
version: 2.2.3
repository: https://charts.bitnami.com/bitnami

View File

@@ -18,6 +18,6 @@ dependencies:
- name: app-template
alias: kubernetes-cloudflare-ddns
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/cloudflare.png
appVersion: "2.0.0"

View File

@@ -17,6 +17,6 @@ dependencies:
- name: app-template
alias: kubelet-serving-cert-approver
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/kubernetes.png
appVersion: 0.8.7

View File

@@ -17,6 +17,6 @@ dependencies:
- name: app-template
alias: pgadmin4
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/pgadmin.png
appVersion: v8.14

View File

@@ -35,16 +35,16 @@ dependencies:
repository: https://ananace.gitlab.io/charts
- name: app-template
alias: matrix-hookshot
version: 3.6.1
version: 3.7.1
repository: https://bjw-s.github.io/helm-charts/
- name: app-template
alias: mautrix-discord
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: app-template
alias: mautrix-whatsapp
repository: https://bjw-s.github.io/helm-charts/
version: 3.6.1
version: 3.7.1
- name: valkey
alias: valkey-synapse
version: 2.2.3
@@ -55,11 +55,11 @@ dependencies:
repository: https://charts.bitnami.com/bitnami
- name: cloudflared
alias: cloudflared-synapse
version: 1.13.0
version: 1.14.0
repository: http://alexlebens.github.io/helm-charts
- name: cloudflared
alias: cloudflared-hookshot
version: 1.13.0
version: 1.14.0
repository: http://alexlebens.github.io/helm-charts
- name: postgres-cluster
alias: postgres-17-cluster

View File

@@ -24,7 +24,7 @@ maintainers:
dependencies:
- name: app-template
alias: stalwart
version: 3.6.1
version: 3.7.1
repository: https://bjw-s.github.io/helm-charts/
- name: valkey
version: 2.2.3