replace rayflume-ytdl-sub with yubal-playlist
All checks were successful
lint-test-helm / lint-helm (push) Successful in 16s
lint-test-docker / lint-docker-compose (push) Successful in 1m49s
render-manifests-push / render-manifests-push (push) Successful in 1m0s
renovate / renovate (push) Successful in 1m24s

This commit is contained in:
2026-01-03 22:59:21 -06:00
parent e79d6783d8
commit 48d91e9ce7
14 changed files with 113 additions and 290 deletions

View File

@@ -152,7 +152,6 @@ blocky:
radarr-4k IN CNAME traefik-cl01tl
radarr-anime IN CNAME traefik-cl01tl
radarr-standup IN CNAME traefik-cl01tl
rayflume IN CNAME traefik-cl01tl
searxng IN CNAME traefik-cl01tl
seerr IN CNAME traefik-cl01tl
slskd IN CNAME traefik-cl01tl
@@ -166,6 +165,7 @@ blocky:
vault IN CNAME traefik-cl01tl
whodb IN CNAME traefik-cl01tl
yamtrack IN CNAME traefik-cl01tl
yubal-playlist IN CNAME traefik-cl01tl
blocking:
denylists:

View File

@@ -313,8 +313,8 @@ gatus:
- name: lidatube
url: https://lidatube.alexlebens.net
<<: *defaults
- name: rayflume
url: https://rayflume.alexlebens.net
- name: yubal-playlist
url: https://yubal-playlist.alexlebens.net
<<: *defaults
- name: slskd
url: https://slskd.alexlebens.net

View File

@@ -655,11 +655,11 @@ homepage:
url: http://lidarr.lidarr:80
key: {{ "{{HOMEPAGE_VAR_LIDARR_KEY}}" }}
fields: ["wanted", "queued", "artists"]
- RayFlume:
icon: sh-youtubarr.webp
- Yubal Playlist:
icon: sh-yubal.webp
description: Playlist to Lidarr Import
href: https://rayflume.alexlebens.net
siteMonitor: http://rayflume.rayflume:80
href: https://yubal-playlist.alexlebens.net
siteMonitor: http://yubal-playlist.yubal-playlist:80
statusStyle: dot
- LidaTube:
icon: sh-lidatube.webp

View File

@@ -1,12 +0,0 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.5.0
- name: redis-replication
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.5.0
- name: volsync-target
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.7.0
digest: sha256:8ffb9b2d1e452cad49196824787d52f55fcc0309722fbb433a1eb2a99e9d19e1
generated: "2025-12-27T13:32:17.225782-06:00"

View File

@@ -1,27 +0,0 @@
apiVersion: v2
name: rayflume
version: 1.0.0
description: RayFlume
keywords:
- rayflume
- music
- lidarr
home: https://wiki.alexlebens.dev/s/
sources:
- https://gitea.alexlebens.dev/alexlebens/RayFlume
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: rayflume
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.5.0
- name: redis-replication
version: 0.5.0
repository: oci://harbor.alexlebens.net/helm-charts
- name: volsync-target
alias: volsync-target-data
version: 0.7.0
repository: oci://harbor.alexlebens.net/helm-charts
appVersion: 0.0.9

View File

@@ -1,42 +0,0 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: rayflume-config-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: rayflume-config-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: SECRET_KEY
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/rayflume/config
metadataPolicy: None
property: SECRET_KEY
- secretKey: LIDARR_TOKEN
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/rayflume/config
metadataPolicy: None
property: LIDARR_TOKEN
- secretKey: YOUTUBE_API_KEY
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/rayflume/config
metadataPolicy: None
property: YOUTUBE_API_KEY
- secretKey: MB_USER_AGENT
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/rayflume/config
metadataPolicy: None
property: MB_USER_AGENT

View File

@@ -1,104 +0,0 @@
rayflume:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: harbor.alexlebens.net/images/rayflume
tag: 0.0.9
pullPolicy: IfNotPresent
env:
- name: DEBUG
value: True
- name: ALLOWED_HOSTS
value: rayflume.alexlebens.net,rayflume.rayflume
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: rayflume-config-secret
key: SECRET_KEY
- name: LIDARR_TOKEN
valueFrom:
secretKeyRef:
name: rayflume-config-secret
key: LIDARR_TOKEN
- name: YOUTUBE_API_KEY
valueFrom:
secretKeyRef:
name: rayflume-config-secret
key: YOUTUBE_API_KEY
- name: MB_USER_AGENT
valueFrom:
secretKeyRef:
name: rayflume-config-secret
key: MB_USER_AGENT
- name: CELERY_BROKER_URL
value: redis://redis-replication-rayflume-master.rayflume:6379/0
- name: CELERY_RESULT_BACKEND
value: redis://redis-replication-rayflume-master.rayflume:6379/0
resources:
requests:
cpu: 10m
memory: 64Mi
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:
- rayflume.alexlebens.net
rules:
- backendRefs:
- group: ''
kind: Service
name: rayflume
port: 80
weight: 100
matches:
- path:
type: PathPrefix
value: /
persistence:
data:
forceRename: rayflume-data
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 1Gi
advancedMounts:
main:
main:
- path: /data
readOnly: false
redis-replication:
existingSecret:
enabled: false
redisReplication:
clusterSize: 1
redisSentinel:
enabled: false
clusterSize: 3
volsync-target-data:
pvcTarget: rayflume-data
local:
enabled: true
schedule: 16 11 * * *
remote:
enabled: false
external:
enabled: true
schedule: 16 12 * * *

View File

@@ -1,81 +0,0 @@
ytdl-sub:
controllers:
main:
type: cronjob
cronjob:
suspend: false
concurrencyPolicy: Forbid
timeZone: US/Central
schedule: 12 0 * * *
startingDeadlineSeconds: 90
successfulJobsHistory: 1
failedJobsHistory: 1
backoffLimit: 3
parallelism: 1
containers:
main:
image:
repository: ghcr.io/jmbannon/ytdl-sub
tag: 2025.12.30
pullPolicy: IfNotPresent
command:
- ytdl-sub
- -c
- /config/config.yaml
- sub
env:
- name: TZ
value: America/Chicago
- name: CRON_RUN_ON_START
value: false
resources:
requests:
cpu: 10m
memory: 128Mi
configMaps:
config:
enabled: true
data:
config.yaml: |
configuration:
working_directory: /cache
subscriptions.yaml: |
__preset__:
embed_thumbnail: True
square_thumbnail: True
overrides:
music_directory: /music
YouTube Releases | Max MP3 Quality:
= YouTube:
"Music Saved": "https://www.youtube.com/playlist?list=PLtiOoYqxYXtKK3fMya_xhqK0Wit0i10Gy&si=8wNBH-kGT9Nx0XBK"
persistence:
config:
enabled: true
type: configMap
name: ytdl-sub
advancedMounts:
main:
main:
- path: /config/config.yaml
readOnly: true
mountPropagation: None
subPath: config.yaml
- path: /config/subscriptions.yaml
readOnly: true
mountPropagation: None
subPath: subscriptions.yaml
cache:
type: emptyDir
advancedMounts:
main:
main:
- path: /cache
readOnly: false
music:
existingClaim: ytdl-sub-nfs-storage
advancedMounts:
main:
main:
- path: /music
readOnly: false

View File

@@ -1,22 +1,22 @@
apiVersion: v2
name: ytdl-sub
name: yubal-playlist
version: 1.0.0
description: ytdl-sub
description: yubal-playlist
keywords:
- ytdl-sub
- yubal-playlist
- music
- youtube
home: https://wiki.alexlebens.dev/s/
sources:
- https://github.com/jmbannon/ytdl-sub
- https://github.com/jmbannon/ytdl-sub/pkgs/container/ytdl-sub
- https://gitea.alexlebens.dev/alexlebens/yubal-playlist
- https://github.com/guillevc/yubal
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: ytdl-sub
alias: yubal-playlist
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.5.0
# renovate: github=jmbannon/ytdl-sub
appVersion: 2025.12.26
# renovate: github=alexlebens/yubal-playlist
appVersion: 0.0.1

View File

@@ -1,14 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ytdl-sub-nfs-storage
name: yubal-playlist-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: ytdl-sub-nfs-storage
app.kubernetes.io/name: yubal-playlist-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
volumeName: ytdl-sub-nfs-storage
volumeName: yubal-playlist-nfs-storage
storageClassName: nfs-client
accessModes:
- ReadWriteMany

View File

@@ -1,10 +1,10 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: ytdl-sub-nfs-storage
name: yubal-playlist-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: ytdl-sub-nfs-storage
app.kubernetes.io/name: yubal-playlist-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:

View File

@@ -0,0 +1,70 @@
yubal-playlist:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: harbor.alexlebens.net/images/yubal-playlist
tag: 0.0.1
pullPolicy: IfNotPresent
env:
- name: YUBAL_TZ
value: US/Chicago
- name: YUBAL_PORT
value: 8000
- name: YUBAL_DEBUG
value: 8000
- name: YUBAL_MB_USER_AGENT
value: alexanderlebens@gmail.com
resources:
requests:
cpu: 10m
memory: 128Mi
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 8000
protocol: HTTP
route:
main:
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- yubal-playlist.alexlebens.net
rules:
- backendRefs:
- group: ''
kind: Service
name: yubal-playlist
port: 80
weight: 100
matches:
- path:
type: PathPrefix
value: /
persistence:
cache:
type: emptyDir
advancedMounts:
main:
main:
- path: /app/ytdlp
readOnly: false
music:
existingClaim: ytdl-sub-nfs-storage
advancedMounts:
main:
main:
- path: /app/data
readOnly: false

View File

@@ -75,7 +75,6 @@ customDNS:
blocky IN A 10.232.1.22
cilium-cl01tl IN A 10.232.1.23
;; Application Names
actual IN CNAME traefik-cl01tl
alertmanager IN CNAME traefik-cl01tl
@@ -128,7 +127,6 @@ customDNS:
radarr-4k IN CNAME traefik-cl01tl
radarr-anime IN CNAME traefik-cl01tl
radarr-standup IN CNAME traefik-cl01tl
rayflume IN CNAME traefik-cl01tl
searxng IN CNAME traefik-cl01tl
seerr IN CNAME traefik-cl01tl
slskd IN CNAME traefik-cl01tl
@@ -142,6 +140,7 @@ customDNS:
vault IN CNAME traefik-cl01tl
whodb IN CNAME traefik-cl01tl
yamtrack IN CNAME traefik-cl01tl
yubal-playlist IN CNAME traefik-cl01tl
blocking:
denylists:

View File

@@ -49,6 +49,27 @@ customDNS:
it05sp IN A 10.230.0.100 ; Shelly Plug
;; Computer Names
nw01un IN A 192.168.1.1 ; Unifi Gateway
ps08rp IN A 10.232.1.51 ; DNS
ps09rp IN A 10.232.1.52 ; DNS
ps02sn IN A 10.232.1.61 ; Synology Web
ps02sn-bond IN A 10.232.1.64 ; Synology Bond for Storage
pd05wd IN A 10.230.0.115 ; Desktop
pl02mc IN A 10.230.0.105 ; Laptop
dv01hr IN A 10.232.1.72 ; HD Homerun
dv02kv IN A 10.232.1.71 ; Pi KVM
it01ag IN A 10.232.1.83 ; Airgradient
it02ph IN A 10.232.1.85 ; Phillips Hue
it03tb IN A 10.232.1.81 ; TubesZB ZigBee
it04tb IN A 10.232.1.82 ; TubesZB Z-Wave
it05sp IN A 10.230.0.100 ; Shelly Plug
;; Common Names
synology IN CNAME ps02sn
synologybond IN CNAME ps02sn-bond
@@ -75,7 +96,6 @@ customDNS:
blocky IN A 10.232.1.22
cilium-cl01tl IN A 10.232.1.23
;; Application Names
actual IN CNAME traefik-cl01tl
alertmanager IN CNAME traefik-cl01tl
@@ -128,7 +148,6 @@ customDNS:
radarr-4k IN CNAME traefik-cl01tl
radarr-anime IN CNAME traefik-cl01tl
radarr-standup IN CNAME traefik-cl01tl
rayflume IN CNAME traefik-cl01tl
searxng IN CNAME traefik-cl01tl
seerr IN CNAME traefik-cl01tl
slskd IN CNAME traefik-cl01tl
@@ -142,6 +161,7 @@ customDNS:
vault IN CNAME traefik-cl01tl
whodb IN CNAME traefik-cl01tl
yamtrack IN CNAME traefik-cl01tl
yubal-playlist IN CNAME traefik-cl01tl
blocking:
denylists: