From 5db5392881491bc3f1adf212cd615aba27bc1e3d Mon Sep 17 00:00:00 2001 From: Alex Lebens Date: Mon, 8 Dec 2025 20:49:02 -0600 Subject: [PATCH] add seerr --- clusters/cl01tl/helm/blocky/values.yaml | 1 + clusters/cl01tl/helm/homepage/values.yaml | 8 ++- clusters/cl01tl/helm/seerr/Chart.lock | 6 ++ clusters/cl01tl/helm/seerr/Chart.yaml | 22 ++++++++ .../helm/seerr/templates/external-secret.yaml | 55 +++++++++++++++++++ .../helm/seerr/templates/http-route.yaml | 28 ++++++++++ .../seerr/templates/replication-source.yaml | 26 +++++++++ clusters/cl01tl/helm/seerr/values.yaml | 28 ++++++++++ hosts/ps08rp/blocky/config.yml | 1 + hosts/ps09rp/blocky/config.yml | 1 + 10 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 clusters/cl01tl/helm/seerr/Chart.lock create mode 100644 clusters/cl01tl/helm/seerr/Chart.yaml create mode 100644 clusters/cl01tl/helm/seerr/templates/external-secret.yaml create mode 100644 clusters/cl01tl/helm/seerr/templates/http-route.yaml create mode 100644 clusters/cl01tl/helm/seerr/templates/replication-source.yaml create mode 100644 clusters/cl01tl/helm/seerr/values.yaml diff --git a/clusters/cl01tl/helm/blocky/values.yaml b/clusters/cl01tl/helm/blocky/values.yaml index 84af3c18a..0b1f9ede5 100644 --- a/clusters/cl01tl/helm/blocky/values.yaml +++ b/clusters/cl01tl/helm/blocky/values.yaml @@ -156,6 +156,7 @@ blocky: radarr-anime IN CNAME traefik-cl01tl radarr-standup IN CNAME traefik-cl01tl searxng IN CNAME traefik-cl01tl + seerr IN CNAME traefik-cl01tl slskd IN CNAME traefik-cl01tl sonarr IN CNAME traefik-cl01tl sonarr-4k IN CNAME traefik-cl01tl diff --git a/clusters/cl01tl/helm/homepage/values.yaml b/clusters/cl01tl/helm/homepage/values.yaml index 090c6be04..09618a117 100644 --- a/clusters/cl01tl/helm/homepage/values.yaml +++ b/clusters/cl01tl/helm/homepage/values.yaml @@ -143,10 +143,16 @@ homepage: statusStyle: dot - Media Requests: icon: sh-overseerr.webp - description: Overseer + description: Overseerr href: https://overseerr.alexlebens.net siteMonitor: http://overseerr.overseerr:80 statusStyle: dot + - Media Requests (New): + icon: sh-overseerr.webp + description: Seerr + href: https://seerr.alexlebens.net + siteMonitor: http://seerr.seerr:80 + statusStyle: dot - Media Tracking: icon: sh-yamtrack.webp description: Yamtrack diff --git a/clusters/cl01tl/helm/seerr/Chart.lock b/clusters/cl01tl/helm/seerr/Chart.lock new file mode 100644 index 000000000..1144be4b2 --- /dev/null +++ b/clusters/cl01tl/helm/seerr/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: seerr-chart + repository: oci://ghcr.io/seerr-team/seerr + version: 3.0.0 +digest: sha256:6cf3525ac452922339261fa2a5ecc9d8cdf66b21bc30e032395d8d80bb79dc6c +generated: "2025-12-08T20:48:24.567069-06:00" diff --git a/clusters/cl01tl/helm/seerr/Chart.yaml b/clusters/cl01tl/helm/seerr/Chart.yaml new file mode 100644 index 000000000..5ada0568f --- /dev/null +++ b/clusters/cl01tl/helm/seerr/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +name: seerr +version: 1.0.0 +description: Seerr +keywords: + - seerr + - media + - movies + - tv shows +home: https://wiki.alexlebens.dev/ +sources: + - https://github.com/seerr-team/seerr + - https://github.com/seerr-team/seerr/pkgs/container/seerr + - https://github.com/seerr-team/seerr/tree/develop/charts/seerr-chart +maintainers: + - name: alexlebens +dependencies: + - name: seerr-chart + repository: oci://ghcr.io/seerr-team/seerr + version: 3.0.0 +icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/overseerr.png +appVersion: develop diff --git a/clusters/cl01tl/helm/seerr/templates/external-secret.yaml b/clusters/cl01tl/helm/seerr/templates/external-secret.yaml new file mode 100644 index 000000000..7b6b99dc9 --- /dev/null +++ b/clusters/cl01tl/helm/seerr/templates/external-secret.yaml @@ -0,0 +1,55 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: seerr-config-backup-secret + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: seerr-config-backup-secret + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + target: + template: + mergePolicy: Merge + engineVersion: v2 + data: + RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/seerr/seerr-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 diff --git a/clusters/cl01tl/helm/seerr/templates/http-route.yaml b/clusters/cl01tl/helm/seerr/templates/http-route.yaml new file mode 100644 index 000000000..e6575e546 --- /dev/null +++ b/clusters/cl01tl/helm/seerr/templates/http-route.yaml @@ -0,0 +1,28 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: http-route-seerr + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: http-route-seerr + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + parentRefs: + - group: gateway.networking.k8s.io + kind: Gateway + name: traefik-gateway + namespace: traefik + hostnames: + - seerr.alexlebens.net + rules: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - group: '' + kind: Service + name: seerr + port: 80 + weight: 100 diff --git a/clusters/cl01tl/helm/seerr/templates/replication-source.yaml b/clusters/cl01tl/helm/seerr/templates/replication-source.yaml new file mode 100644 index 000000000..073bc22f0 --- /dev/null +++ b/clusters/cl01tl/helm/seerr/templates/replication-source.yaml @@ -0,0 +1,26 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: seerr-config-backup-source + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: seerr-config-backup-source + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + sourcePVC: seerr-config + trigger: + schedule: 0 4 * * * + restic: + pruneIntervalDays: 7 + repository: seerr-config-backup-secret + retain: + hourly: 1 + daily: 3 + weekly: 2 + monthly: 2 + yearly: 4 + copyMethod: Snapshot + storageClassName: ceph-block + volumeSnapshotClassName: ceph-blockpool-snapshot + cacheCapacity: 10Gi diff --git a/clusters/cl01tl/helm/seerr/values.yaml b/clusters/cl01tl/helm/seerr/values.yaml new file mode 100644 index 000000000..ba9a43224 --- /dev/null +++ b/clusters/cl01tl/helm/seerr/values.yaml @@ -0,0 +1,28 @@ +seerr: + probes: + livenessProbe: + initialDelaySeconds: 60 + periodSeconds: 30 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 5 + readinessProbe: + initialDelaySeconds: 60 + periodSeconds: 30 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 5 + service: + port: 80 + config: + persistence: + size: 5Gi + accessModes: + - ReadWriteOnce + storageClass: ceph-block + ingress: + enabled: false + resources: + requests: + cpu: 10m + memory: 128Mi diff --git a/hosts/ps08rp/blocky/config.yml b/hosts/ps08rp/blocky/config.yml index 874492a5b..dfc495b6e 100644 --- a/hosts/ps08rp/blocky/config.yml +++ b/hosts/ps08rp/blocky/config.yml @@ -132,6 +132,7 @@ customDNS: radarr-anime IN CNAME traefik-cl01tl radarr-standup IN CNAME traefik-cl01tl searxng IN CNAME traefik-cl01tl + seerr IN CNAME traefik-cl01tl slskd IN CNAME traefik-cl01tl sonarr IN CNAME traefik-cl01tl sonarr-4k IN CNAME traefik-cl01tl diff --git a/hosts/ps09rp/blocky/config.yml b/hosts/ps09rp/blocky/config.yml index 874492a5b..dfc495b6e 100644 --- a/hosts/ps09rp/blocky/config.yml +++ b/hosts/ps09rp/blocky/config.yml @@ -132,6 +132,7 @@ customDNS: radarr-anime IN CNAME traefik-cl01tl radarr-standup IN CNAME traefik-cl01tl searxng IN CNAME traefik-cl01tl + seerr IN CNAME traefik-cl01tl slskd IN CNAME traefik-cl01tl sonarr IN CNAME traefik-cl01tl sonarr-4k IN CNAME traefik-cl01tl