diff --git a/clusters/cl01tl/applications/booklore/Chart.yaml b/clusters/cl01tl/applications/booklore/Chart.yaml new file mode 100644 index 000000000..db03241d0 --- /dev/null +++ b/clusters/cl01tl/applications/booklore/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +name: booklore +version: 1.0.0 +description: booklore +keywords: + - booklore + - books +home: https://wiki.alexlebens.dev/ +sources: + - https://github.com/booklore-app/BookLore + - https://github.com/booklore-app/booklore/pkgs/container/booklore + - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template +maintainers: + - name: alexlebens +dependencies: + - name: app-template + alias: booklore + repository: https://bjw-s-labs.github.io/helm-charts/ + version: 4.4.0 + - name: mariadb-cluster + version: 25.10.2 + repository: https://helm.mariadb.com/mariadb-operator +icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/booklore.png +appVersion: v.1.10.0 diff --git a/clusters/cl01tl/applications/booklore/templates/external-secret.yaml b/clusters/cl01tl/applications/booklore/templates/external-secret.yaml new file mode 100644 index 000000000..6dfc3ac6c --- /dev/null +++ b/clusters/cl01tl/applications/booklore/templates/external-secret.yaml @@ -0,0 +1,108 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: booklore-database-secret + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: booklore-database-secret + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + data: + - secretKey: password + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /cl01tl/booklore/database + metadataPolicy: None + property: password + +--- +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: booklore-config-backup-secret + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: booklore-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 }}` }}/booklore/booklore-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/v1 +kind: ExternalSecret +metadata: + name: booklore-mariadb-cluster-backup-secret + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: booklore-mariadb-cluster-backup-secret + app.kubernetes.io/instance: {{ .Release.Name }} + 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/mariadb-backups + metadataPolicy: None + property: access + - secretKey: secret-access-key + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /digital-ocean/home-infra/mariadb-backups + metadataPolicy: None + property: secret diff --git a/clusters/cl01tl/applications/booklore/templates/http-route.yaml b/clusters/cl01tl/applications/booklore/templates/http-route.yaml new file mode 100644 index 000000000..a6156305e --- /dev/null +++ b/clusters/cl01tl/applications/booklore/templates/http-route.yaml @@ -0,0 +1,28 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: http-route-booklore + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: http-route-booklore + 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: + - booklore.alexlebens.net + rules: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - group: '' + kind: Service + name: booklore + port: 80 + weight: 100 diff --git a/clusters/cl01tl/applications/booklore/templates/persistent-volume-claim.yaml b/clusters/cl01tl/applications/booklore/templates/persistent-volume-claim.yaml new file mode 100644 index 000000000..2f396d4cf --- /dev/null +++ b/clusters/cl01tl/applications/booklore/templates/persistent-volume-claim.yaml @@ -0,0 +1,36 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: booklore-books-nfs-storage + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: booklore-books-nfs-storage + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + volumeName: booklore-nfs-storage + storageClassName: nfs-client + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1Gi + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: booklore-books-import-nfs-storage + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: booklore-books-import-nfs-storage + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + volumeName: booklore-nfs-storage + storageClassName: nfs-client + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1Gi diff --git a/clusters/cl01tl/applications/booklore/templates/persistent-volume.yaml b/clusters/cl01tl/applications/booklore/templates/persistent-volume.yaml new file mode 100644 index 000000000..f50dc7e7a --- /dev/null +++ b/clusters/cl01tl/applications/booklore/templates/persistent-volume.yaml @@ -0,0 +1,48 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: booklore-books-nfs-storage + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: booklore-books-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/Books + server: synologybond.alexlebens.net + mountOptions: + - vers=4 + - minorversion=1 + - noac + +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: booklore-books-import-nfs-storage + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: booklore-books-import-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/Books Import + server: synologybond.alexlebens.net + mountOptions: + - vers=4 + - minorversion=1 + - noac diff --git a/clusters/cl01tl/applications/booklore/templates/replication-source.yaml b/clusters/cl01tl/applications/booklore/templates/replication-source.yaml new file mode 100644 index 000000000..464569c91 --- /dev/null +++ b/clusters/cl01tl/applications/booklore/templates/replication-source.yaml @@ -0,0 +1,26 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: booklore-config-backup-source + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: booklore-config-backup-source + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + sourcePVC: booklore-config + trigger: + schedule: 0 4 * * * + restic: + pruneIntervalDays: 7 + repository: booklore-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/applications/booklore/values.yaml b/clusters/cl01tl/applications/booklore/values.yaml new file mode 100644 index 000000000..ff4dc227f --- /dev/null +++ b/clusters/cl01tl/applications/booklore/values.yaml @@ -0,0 +1,122 @@ +booklore: + controllers: + main: + type: deployment + replicas: 1 + strategy: Recreate + revisionHistoryLimit: 3 + containers: + main: + image: + repository: ghcr.io/booklore-app/booklore + tag: v1.10.0 + pullPolicy: IfNotPresent + env: + - name: TZ + value: America/Chicago + - name: DATABASE_URL + value: jdbc:mariadb://booklore-mariadb.mariadb:3306/booklore + - name: DATABASE_USERNAME + value: booklore + - name: DATABASE_PASSWORD + valueFrom: + secretKeyRef: + name: booklore-database-secret + key: password + - name: BOOKLORE_PORT + value: 6060 + - name: SWAGGER_ENABLED + value: false + resources: + requests: + cpu: 50m + memory: 128Mi + service: + main: + controller: main + ports: + http: + port: 80 + targetPort: 6060 + protocol: HTTP + persistence: + config: + storageClass: ceph-block + accessMode: ReadWriteOnce + size: 5Gi + retain: true + advancedMounts: + main: + main: + - path: /app/data + readOnly: false + books: + existingClaim: booklore-books-nfs-storage + advancedMounts: + main: + main: + - path: /books + readOnly: false + books-import: + existingClaim: booklore-books-import-nfs-storage + advancedMounts: + main: + main: + - path: /bookdrop + readOnly: false +mariadb: + mariadb: + rootPasswordSecretKeyRef: + name: mariadb + key: root-password + storage: + size: 5Gi + replicas: 3 + galera: + enabled: true + databases: + - name: booklore + characterSet: utf8 + collate: utf8_general_ci + cleanupPolicy: Delete + requeueInterval: 10h + users: + - name: booklore + passwordSecretKeyRef: + name: mariadb + key: password + host: "%" + cleanupPolicy: Delete + requeueInterval: 10h + retryInterval: 30s + grants: + - name: booklore + privileges: + - "ALL PRIVILEGES" + database: "booklore" + table: "*" + username: booklore + grantOption: true + host: "%" + cleanupPolicy: Delete + requeueInterval: 10h + retryInterval: 30s + backups: + - name: backup + schedule: + cron: "0 0 0 * *" + suspend: false + compression: gzip + maxRetention: 720h # 30 days + storage: + s3: + bucket: mariadb-backups-b230a2f5aecf080a4b372c08 + prefix: cl01tl + endpoint: https://nyc3.digitaloceanspaces.com + region: us-east-1 + accessKeyIdSecretKeyRef: + name: booklore-mariadb-cluster-backup-secret + key: access-key-id + secretAccessKeySecretKeyRef: + name: booklore-mariadb-cluster-backup-secret + key: secret-access-key diff --git a/clusters/cl01tl/applications/ephemera/Chart.yaml b/clusters/cl01tl/applications/ephemera/Chart.yaml new file mode 100644 index 000000000..607d0716b --- /dev/null +++ b/clusters/cl01tl/applications/ephemera/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +name: ephemera +version: 1.0.0 +description: ephemera +keywords: + - ephemera + - books +home: https://wiki.alexlebens.dev/ +sources: + - https://github.com/OrwellianEpilogue/ephemera + - https://github.com/FlareSolverr/FlareSolverr + - https://github.com/orwellianepilogue/ephemera/pkgs/container/ephemera + - https://github.com/flaresolverr/FlareSolverr/pkgs/container/flaresolverr + - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template +maintainers: + - name: alexlebens +dependencies: + - name: app-template + alias: ephemera + repository: https://bjw-s-labs.github.io/helm-charts/ + version: 4.4.0 +icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/ephemera.png +appVersion: 1.3.1 diff --git a/clusters/cl01tl/applications/ephemera/templates/external-secret.yaml b/clusters/cl01tl/applications/ephemera/templates/external-secret.yaml new file mode 100644 index 000000000..c871fc8ae --- /dev/null +++ b/clusters/cl01tl/applications/ephemera/templates/external-secret.yaml @@ -0,0 +1,78 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: ephemera-key-secret + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: ephemera-key-secret + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + data: + - secretKey: key + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /cl01tl/ephemera/config + metadataPolicy: None + property: key + +--- +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: ephemera-config-backup-secret + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: ephemera-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 }}` }}/ephemera/ephemera-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/applications/ephemera/templates/http-route.yaml b/clusters/cl01tl/applications/ephemera/templates/http-route.yaml new file mode 100644 index 000000000..16c8b2bbd --- /dev/null +++ b/clusters/cl01tl/applications/ephemera/templates/http-route.yaml @@ -0,0 +1,28 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: http-route-ephemera + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: http-route-ephemera + 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: + - ephemera.alexlebens.net + rules: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - group: '' + kind: Service + name: ephemera + port: 80 + weight: 100 diff --git a/clusters/cl01tl/applications/ephemera/templates/persistent-volume-claim.yaml b/clusters/cl01tl/applications/ephemera/templates/persistent-volume-claim.yaml new file mode 100644 index 000000000..4218f447a --- /dev/null +++ b/clusters/cl01tl/applications/ephemera/templates/persistent-volume-claim.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: ephemera-nfs-storage + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: ephemera-nfs-storage + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + volumeName: ephemera-nfs-storage + storageClassName: nfs-client + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1Gi diff --git a/clusters/cl01tl/applications/ephemera/templates/persistent-volume.yaml b/clusters/cl01tl/applications/ephemera/templates/persistent-volume.yaml new file mode 100644 index 000000000..6cd770680 --- /dev/null +++ b/clusters/cl01tl/applications/ephemera/templates/persistent-volume.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: ephemera-nfs-storage + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: ephemera-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/Book Import + server: synologybond.alexlebens.net + mountOptions: + - vers=4 + - minorversion=1 + - noac diff --git a/clusters/cl01tl/applications/ephemera/templates/replication-source.yaml b/clusters/cl01tl/applications/ephemera/templates/replication-source.yaml new file mode 100644 index 000000000..cffd4fcdf --- /dev/null +++ b/clusters/cl01tl/applications/ephemera/templates/replication-source.yaml @@ -0,0 +1,26 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: ephemera-config-backup-source + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: ephemera-config-backup-source + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + sourcePVC: ephemera-config + trigger: + schedule: 0 4 * * * + restic: + pruneIntervalDays: 7 + repository: ephemera-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/applications/ephemera/values.yaml b/clusters/cl01tl/applications/ephemera/values.yaml new file mode 100644 index 000000000..7a48bf34e --- /dev/null +++ b/clusters/cl01tl/applications/ephemera/values.yaml @@ -0,0 +1,118 @@ +ephemera: + controllers: + main: + type: deployment + replicas: 1 + strategy: Recreate + revisionHistoryLimit: 3 + containers: + main: + image: + repository: ghcr.io/orwellianepilogue/ephemera + tag: 1.3.1 + pullPolicy: IfNotPresent + env: + - name: AA_BASE_URL + value: 8080 + - name: AA_API_KEY + valueFrom: + secretKeyRef: + name: ephemera-key-secret + key: key + - name: FLARESOLVERR_URL + value: http://127.0.0.1:8191 + - name: LG_BASE_URL + value: https://gen.com + - name: PUID + value: 1000 + - name: PGID + value: 100 + probes: + liveness: + enabled: true + custom: true + spec: + exec: + command: + - CMD + - wget + - --no-verbose + - --tries=1 + - --spider + - http://127.0.0.1:8286/health + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + resources: + requests: + cpu: 50m + memory: 128Mi + flaresolverr: + image: + repository: ghcr.io/flaresolverr/flaresolverr + tag: v3.4.5 + pullPolicy: IfNotPresent + env: + - name: LOG_LEVEL + value: info + - name: LOG_HTML + value: false + - name: CAPTCHA_SOLVER + value: none + - name: TZ + value: America/Chicago + probes: + liveness: + enabled: true + custom: true + spec: + exec: + command: + - CMD + - curl + - -f + - http://127.0.0.1:8191/health + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + resources: + requests: + cpu: 10m + memory: 128Mi + service: + main: + controller: main + ports: + http: + port: 80 + targetPort: 8286 + protocol: HTTP + persistence: + config: + storageClass: ceph-block + accessMode: ReadWriteOnce + size: 5Gi + retain: true + advancedMounts: + main: + main: + - path: /app/data + readOnly: false + cache: + type: emptyDir + advancedMounts: + main: + main: + - path: /app/downloads + readOnly: false + books-import: + existingClaim: ephemera-nfs-storage + advancedMounts: + main: + main: + - path: /app/ingest + readOnly: false diff --git a/clusters/cl01tl/applications/homepage/values.yaml b/clusters/cl01tl/applications/homepage/values.yaml index 716bd988e..e22b0423a 100644 --- a/clusters/cl01tl/applications/homepage/values.yaml +++ b/clusters/cl01tl/applications/homepage/values.yaml @@ -45,7 +45,7 @@ homepage: color: zinc background: image: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/background.jpg - brightness: 50 + brightness: 60 theme: dark disableCollapse: true layout: @@ -76,6 +76,9 @@ homepage: - Storage: tab: Services icon: mdi-database-#ffffff + - Servarr: + tab: Services + icon: mdi-multimedia-#ffffff - TV Shows: tab: Servarr icon: mdi-television-#ffffff @@ -85,9 +88,9 @@ homepage: - Music: tab: Servarr icon: mdi-music-box-multiple-#ffffff - - Services (Servarr): + - Books: tab: Servarr - icon: mdi-radar-#ffffff + icon: mdi-book-open-variant-#ffffff - External Services: tab: Bookmarks icon: mdi-cloud-#ffffff @@ -180,6 +183,12 @@ homepage: href: https://calibre.alexlebens.net siteMonitor: http://calibre-web-automated-main.calibre-web-automated:8083 statusStyle: dot + - Books (Booklore): + icon: sh-booklore.webp + description: Booklore + href: https://booklore.alexlebens.net + siteMonitor: http://booklore.booklore:80 + statusStyle: dot - Public: - Site: icon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.png @@ -528,6 +537,44 @@ homepage: href: https://backrest.alexlebens.net siteMonitor: http://backrest.backrest:80 statusStyle: dot + - Servarr: + - qUI: + icon: https://raw.githubusercontent.com/autobrr/qui/8487c818886df9abb2b1456f43b54e0ba180a2bd/web/public/icons.svg + description: qbitorrent + href: https://qui.alexlebens.net + siteMonitor: http://qbittorrent-qui.qbittorrent:80 + statusStyle: dot + widget: + type: qbittorrent + url: http://qbittorrent.qbittorrent:8080 + enableLeechProgress: true + - Prowlarr: + icon: sh-prowlarr.webp + description: Indexers + href: https://prowlarr.alexlebens.net + siteMonitor: http://prowlarr.prowlarr:80 + statusStyle: dot + - Huntarr: + icon: https://raw.githubusercontent.com/plexguide/Huntarr.io/main/frontend/static/logo/128.png + description: Content upgrader + href: https://huntarr.alexlebens.net + siteMonitor: http://huntarr.huntarr:80 + statusStyle: dot + - Bazarr: + icon: sh-bazarr.webp + description: Subtitles + href: https://bazarr.alexlebens.net + siteMonitor: http://bazarr.bazarr:80 + statusStyle: dot + - Tdarr: + icon: sh-tdarr.webp + description: Media transcoding and health checks + href: https://tdarr.alexlebens.net + siteMonitor: http://tdarr-web.tdarr:8265 + statusStyle: dot + widget: + type: tdarr + url: http://tdarr-web.tdarr:8265 - TV Shows: - Sonarr: icon: sh-sonarr.webp @@ -638,56 +685,25 @@ homepage: href: https://slskd.alexlebens.net siteMonitor: http://slskd.slskd:5030 statusStyle: dot - - Services (Servarr): - - qUI: - icon: https://raw.githubusercontent.com/autobrr/qui/8487c818886df9abb2b1456f43b54e0ba180a2bd/web/public/icons.svg - description: qbitorrent - href: https://qui.alexlebens.net - siteMonitor: http://qbittorrent-qui.qbittorrent:80 - statusStyle: dot - widget: - type: qbittorrent - url: http://qbittorrent.qbittorrent:8080 - enableLeechProgress: true - - Prowlarr: - icon: sh-prowlarr.webp - description: Indexers - href: https://prowlarr.alexlebens.net - siteMonitor: http://prowlarr.prowlarr:80 - statusStyle: dot - - Bazarr: - icon: sh-bazarr.webp - description: Indexers - href: https://bazarr.alexlebens.net - siteMonitor: http://bazarr.bazarr:80 - statusStyle: dot - - Huntarr: - icon: https://raw.githubusercontent.com/plexguide/Huntarr.io/main/frontend/static/logo/128.png - description: Indexers - href: https://huntarr.alexlebens.net - siteMonitor: http://huntarr.huntarr:80 - statusStyle: dot - - Tdarr: - icon: sh-tdarr.webp - description: Media transcoding and health checks - href: https://tdarr.alexlebens.net - siteMonitor: http://tdarr-web.tdarr:8265 - statusStyle: dot - widget: - type: tdarr - url: http://tdarr-web.tdarr:8265 - - Listenarr: - icon: sh-listenarr.webp - description: Listenarr Audiobooks downloader - href: https://listenarr.alexlebens.net - siteMonitor: http://listenarr.listenarr:80 + - Books: + - Ephemera: + icon: sh-ephemera.webp + description: Books + href: https://ephemera.alexlebens.net + siteMonitor: http://ephemera.ephemera:80 statusStyle: dot - CWA Downloader: icon: sh-calibre.webp - description: Calibre Web Automated Book Downloader + description: Books href: https://calibre-downloader.alexlebens.net siteMonitor: http://calibre-web-automated-downloader.calibre-web-automated:8084 statusStyle: dot + - Listenarr: + icon: sh-listenarr.webp + description: Audiobooks + href: https://listenarr.alexlebens.net + siteMonitor: http://listenarr.listenarr:80 + statusStyle: dot - Other Homes: - Dev: icon: sh-homepage.webp diff --git a/clusters/cl01tl/services/blocky/values.yaml b/clusters/cl01tl/services/blocky/values.yaml index 6aef653d8..f97389ddd 100644 --- a/clusters/cl01tl/services/blocky/values.yaml +++ b/clusters/cl01tl/services/blocky/values.yaml @@ -111,10 +111,12 @@ blocky: authentik IN CNAME traefik-cl01tl backrest IN CNAME traefik-cl01tl bazarr IN CNAME traefik-cl01tl + booklore IN CNAME traefik-cl01tl calibre IN CNAME traefik-cl01tl calibre-downloader IN CNAME traefik-cl01tl ceph IN CNAME traefik-cl01tl code-server IN CNAME traefik-cl01tl + ephemera IN CNAME traefik-cl01tl garage-s3 IN CNAME traefik-cl01tl garage-webui IN CNAME traefik-cl01tl gatus IN CNAME traefik-cl01tl diff --git a/hosts/ps08rp/blocky/config.yml b/hosts/ps08rp/blocky/config.yml index 95453fd67..70e467fc6 100644 --- a/hosts/ps08rp/blocky/config.yml +++ b/hosts/ps08rp/blocky/config.yml @@ -87,10 +87,12 @@ customDNS: authentik IN CNAME traefik-cl01tl backrest IN CNAME traefik-cl01tl bazarr IN CNAME traefik-cl01tl + booklore IN CNAME traefik-cl01tl calibre IN CNAME traefik-cl01tl calibre-downloader IN CNAME traefik-cl01tl ceph IN CNAME traefik-cl01tl code-server IN CNAME traefik-cl01tl + ephemera IN CNAME traefik-cl01tl garage-s3 IN CNAME traefik-cl01tl garage-webui IN CNAME traefik-cl01tl gatus IN CNAME traefik-cl01tl diff --git a/hosts/ps09rp/blocky/config.yml b/hosts/ps09rp/blocky/config.yml index 95453fd67..70e467fc6 100644 --- a/hosts/ps09rp/blocky/config.yml +++ b/hosts/ps09rp/blocky/config.yml @@ -87,10 +87,12 @@ customDNS: authentik IN CNAME traefik-cl01tl backrest IN CNAME traefik-cl01tl bazarr IN CNAME traefik-cl01tl + booklore IN CNAME traefik-cl01tl calibre IN CNAME traefik-cl01tl calibre-downloader IN CNAME traefik-cl01tl ceph IN CNAME traefik-cl01tl code-server IN CNAME traefik-cl01tl + ephemera IN CNAME traefik-cl01tl garage-s3 IN CNAME traefik-cl01tl garage-webui IN CNAME traefik-cl01tl gatus IN CNAME traefik-cl01tl