diff --git a/clusters/cl01tl/helm/blocky/values.yaml b/clusters/cl01tl/helm/blocky/values.yaml index 1106836f2..7f2d96e74 100644 --- a/clusters/cl01tl/helm/blocky/values.yaml +++ b/clusters/cl01tl/helm/blocky/values.yaml @@ -135,6 +135,7 @@ blocky: komodo IN CNAME traefik-cl01tl lidarr IN CNAME traefik-cl01tl mail IN CNAME traefik-cl01tl + movie-roulette IN CNAME traefik-cl01tl music-grabber IN CNAME traefik-cl01tl navidrome IN CNAME traefik-cl01tl ntfy IN CNAME traefik-cl01tl diff --git a/clusters/cl01tl/helm/gatus/values.yaml b/clusters/cl01tl/helm/gatus/values.yaml index b40dee82e..abce798c9 100644 --- a/clusters/cl01tl/helm/gatus/values.yaml +++ b/clusters/cl01tl/helm/gatus/values.yaml @@ -137,6 +137,9 @@ gatus: - name: yamtrack url: https://yamtrack.alexlebens.net <<: *defaults + - name: movie-roulette + url: https://movie-roulette.alexlebens.net + <<: *defaults - name: jellyfin url: https://jellyfin.alexlebens.net <<: *defaults diff --git a/clusters/cl01tl/helm/homepage/values.yaml b/clusters/cl01tl/helm/homepage/values.yaml index e07e6e0a9..4a73f503b 100644 --- a/clusters/cl01tl/helm/homepage/values.yaml +++ b/clusters/cl01tl/helm/homepage/values.yaml @@ -160,6 +160,12 @@ homepage: href: https://yamtrack.alexlebens.net siteMonitor: http://yamtrack.yamtrack:80 statusStyle: dot + - Movie Roulette: + icon: https://raw.githubusercontent.com/sahara101/Movie-Roulette/refs/heads/main/static/icons/icon-512x512.png + description: Movie Roulette + href: https://movie-roulette.alexlebens.net + siteMonitor: http://movie-roulette.movie-roulette:80 + statusStyle: dot - Movies and TV: icon: sh-jellyfin.webp description: Jellyfin diff --git a/clusters/cl01tl/helm/movie-roulette/Chart.lock b/clusters/cl01tl/helm/movie-roulette/Chart.lock new file mode 100644 index 000000000..bec68c25b --- /dev/null +++ b/clusters/cl01tl/helm/movie-roulette/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: app-template + repository: https://bjw-s-labs.github.io/helm-charts/ + version: 4.6.2 +digest: sha256:faa35ccfc18b2d47fad558e168bd3c68e64790fe2b1356881452ae4f5cd8b443 +generated: "2026-03-10T16:01:13.738843-05:00" diff --git a/clusters/cl01tl/helm/movie-roulette/Chart.yaml b/clusters/cl01tl/helm/movie-roulette/Chart.yaml new file mode 100644 index 000000000..9e3aaa844 --- /dev/null +++ b/clusters/cl01tl/helm/movie-roulette/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +name: movie-roulette +version: 1.0.0 +description: Movie Roulette +keywords: + - movie-roulette + - jellyfin +home: https://wiki.alexlebens.dev/ +sources: + - https://github.com/sahara101/Movie-Roulette + - https://github.com/sahara101/Movie-Roulette/pkgs/container/movie-roulette + - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template +maintainers: + - name: alexlebens +dependencies: + - name: app-template + alias: movie-roulette + repository: https://bjw-s-labs.github.io/helm-charts/ + version: 4.6.2 +icon: https://avatars.githubusercontent.com/u/22507692?s=48&v=4 +# renovate: datasource=github-releases depName=sahara101/Movie-Roulette +appVersion: v5.2.1 diff --git a/clusters/cl01tl/helm/movie-roulette/templates/external-secret.yaml b/clusters/cl01tl/helm/movie-roulette/templates/external-secret.yaml new file mode 100644 index 000000000..76ba57a3b --- /dev/null +++ b/clusters/cl01tl/helm/movie-roulette/templates/external-secret.yaml @@ -0,0 +1,42 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: movie-roulette-config-secret + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: movie-roulette-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/movie-roulette/key + metadataPolicy: None + property: secret-key + - secretKey: jellyfin-key + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /cl01tl/jellyfin/movie-roulette + metadataPolicy: None + property: jellyfin-key + - secretKey: jellyfin-user + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /cl01tl/jellyfin/movie-roulette + metadataPolicy: None + property: user + - secretKey: seerr-key + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /cl01tl/seerr/key + metadataPolicy: None + property: key diff --git a/clusters/cl01tl/helm/movie-roulette/values.yaml b/clusters/cl01tl/helm/movie-roulette/values.yaml new file mode 100644 index 000000000..8d7993a5e --- /dev/null +++ b/clusters/cl01tl/helm/movie-roulette/values.yaml @@ -0,0 +1,127 @@ +movie-roulette: + controllers: + main: + type: deployment + replicas: 1 + strategy: Recreate + revisionHistoryLimit: 3 + containers: + main: + image: + repository: ghcr.io/sahara101/movie-roulette + tag: v5.2.1 + pullPolicy: IfNotPresent + env: + - name: FLASK_SECRET_KEY + valueFrom: + secretKeyRef: + name: movie-roulette-config-secret + key: secret-key + - name: CORS_ALLOWED_ORIGINS + value: movie-roulette.alexlebens.net + - name: DISABLE_SETTINGS + value: "TRUE" + - name: AUTH_ENABLED + value: "TRUE" + - name: AUTH_SESSION_LIFETIME + value: "86400" + - name: JELLYFIN_URL + value: http://jellyfin.alexlebens.net + - name: JELLYFIN_API_KEY + valueFrom: + secretKeyRef: + name: movie-roulette-config-secret + key: jellyfin-key + - name: JELLYFIN_USER_ID + valueFrom: + secretKeyRef: + name: movie-roulette-config-secret + key: jellyfin-user + - name: LOGIN_BACKDROP_ENABLED + value: "TRUE" + - name: HOMEPAGE_MODE + value: "FALSE" + - name: USE_LINKS + value: "TRUE" + - name: USE_FILTER + value: "TRUE" + - name: USE_WATCH_BUTTON + value: "TRUE" + - name: USE_NEXT_BUTTON + value: "TRUE" + - name: USE_GRID_VIEW + value: "true" + - name: ENABLE_MOBILE_TRUNCATION + value: "TRUE" + - name: SHOW_NOW_WATCHING_CARD + value: "FALSE" + - name: USE_HEROUI_THEME + value: "FALSE" + - name: ENABLE_MOVIE_LOGOS + value: "TRUE" + - name: LOAD_MOVIE_ON_START + value: "FALSE" + - name: SEERR_URL + value: http://seerr.alexlebens.net + - name: SEERR_API_KEY + valueFrom: + secretKeyRef: + name: movie-roulette-config-secret + key: seerr-key + - name: REQUEST_SERVICE_DEFAULT + value: "seerr" + 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: + - movie-roulette.alexlebens.net + rules: + - backendRefs: + - group: '' + kind: Service + name: movie-roulette + port: 80 + weight: 100 + matches: + - path: + type: PathPrefix + value: / + persistence: + data: + forceRename: movie-roulette-data + storageClass: ceph-block + accessMode: ReadWriteOnce + size: 1Gi + retain: true + advancedMounts: + main: + main: + - path: /config + readOnly: false +volsync-target-data: + pvcTarget: movie-roulette-data + local: + enabled: true + schedule: 44 11 * * * + remote: + enabled: false + external: + enabled: true + schedule: 44 12 * * * diff --git a/hosts/ps08rp/blocky/config.yml b/hosts/ps08rp/blocky/config.yml index f2cc9d884..040508528 100644 --- a/hosts/ps08rp/blocky/config.yml +++ b/hosts/ps08rp/blocky/config.yml @@ -110,6 +110,7 @@ customDNS: komodo IN CNAME traefik-cl01tl lidarr IN CNAME traefik-cl01tl mail IN CNAME traefik-cl01tl + movie-roulette IN CNAME traefik-cl01tl music-grabber IN CNAME traefik-cl01tl navidrome IN CNAME traefik-cl01tl ntfy IN CNAME traefik-cl01tl diff --git a/hosts/ps09rp/blocky/config.yml b/hosts/ps09rp/blocky/config.yml index 7fe93a0f1..e987af46d 100644 --- a/hosts/ps09rp/blocky/config.yml +++ b/hosts/ps09rp/blocky/config.yml @@ -131,6 +131,7 @@ customDNS: komodo IN CNAME traefik-cl01tl lidarr IN CNAME traefik-cl01tl mail IN CNAME traefik-cl01tl + movie-roulette IN CNAME traefik-cl01tl music-grabber IN CNAME traefik-cl01tl navidrome IN CNAME traefik-cl01tl ntfy IN CNAME traefik-cl01tl