1 Commits

Author SHA1 Message Date
2a1d7ef396 Update rmcrackan/libation Docker tag to v12.2.0
All checks were successful
lint-and-test-charts / lint-test (pull_request) Successful in 15s
renovate/stability-days Updates have met minimum release age requirement
2025-03-22 21:30:56 +00:00
537 changed files with 3696 additions and 9389 deletions

View File

@@ -1,80 +0,0 @@
name: lint-test-docker
on:
push:
branches:
- main
paths:
- 'hosts/**'
- ! 'hosts/archive'
pull_request:
branches:
- main
paths:
- 'hosts/**'
- ! 'hosts/archive'
jobs:
docker-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check Branch Exists
id: check-branch-exists
uses: GuillaumeFalourd/branch-exists@v1.1
with:
branch: "origin/${{ github.base_ref }}"
- name: Branch Does Not Exist
if: steps.check-branch-exists.outputs.exists == 'false'
run: echo "Branch origin/${{ github.base_ref }} was not found, likely already merged"
- name: Set up Node.js
if: steps.check-branch-exists.outputs.exists == 'true'
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Lint Docker Compose
if: steps.check-branch-exists.outputs.exists == 'true'
run: |
set -e # Exit immediately if a command exits with a non-zero status.
TARGET_BRANCH="origin/${{ github.base_ref }}"
echo ">> Target branch for diff is: $TARGET_BRANCH"
CHANGED_FILES=$(git diff --name-only "$TARGET_BRANCH" -- 'hosts/**')
echo ">> Found changed files:"
echo "$CHANGED_FILES"
# For each changed file, find its parent chart directory (the one with compose.yaml).
# Then, create a unique list of those directories.
CHANGED_COMPOSE=$(echo "$CHANGED_FILES" | while read -r file; do
dir=$(dirname "$file")
while [[ "$dir" != "." && ! -f "$dir/compose.yaml" ]]; do
dir=$(dirname "$dir")
done
if [[ "$dir" != "." ]]; then
echo "$dir"
fi
done | sort -u)
if [[ -z "$CHANGED_COMPOSE" ]]; then
echo ">> Could not determine changed compose files. This will happen if only files outside a compose file were changed."
exit 0
fi
echo ">> Running dclint on changed compose files:"
echo "$CHANGED_COMPOSE"
echo "$CHANGED_COMPOSE" | while read -r compose; do
echo ">> Linting $compose ..."
npx dclint $compose
done

View File

@@ -1,82 +0,0 @@
name: lint-test-helm
on:
push:
branches:
- main
paths:
- 'clusters/**'
- ! 'clusters/*/archive'
pull_request:
branches:
- main
paths:
- 'clusters/**'
- ! 'clusters/*/archive'
jobs:
helm-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check Branch Exists
id: check-branch-exists
uses: GuillaumeFalourd/branch-exists@v1.1
with:
branch: "origin/${{ github.base_ref }}"
- name: Branch Does Not Exist
if: steps.check-branch-exists.outputs.exists == 'false'
run: echo "Branch origin/${{ github.base_ref }} was not found, likely already merged"
- name: Set up Helm
if: steps.check-branch-exists.outputs.exists == 'true'
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: latest
- name: Lint Helm Chart
if: steps.check-branch-exists.outputs.exists == 'true'
run: |
set -e # Exit immediately if a command exits with a non-zero status.
TARGET_BRANCH="origin/${{ github.base_ref }}"
echo ">> Target branch for diff is: $TARGET_BRANCH"
CHANGED_FILES=$(git diff --name-only "$TARGET_BRANCH" -- 'clusters/**')
echo ">> Found changed files:"
echo "$CHANGED_FILES"
# For each changed file, find its parent chart directory (the one with Chart.yaml).
# Then, create a unique list of those directories.
CHANGED_CHARTS=$(echo "$CHANGED_FILES" | while read -r file; do
dir=$(dirname "$file")
while [[ "$dir" != "." && ! -f "$dir/Chart.yaml" ]]; do
dir=$(dirname "$dir")
done
if [[ "$dir" != "." ]]; then
echo "$dir"
fi
done | sort -u)
if [[ -z "$CHANGED_CHARTS" ]]; then
echo ">> Could not determine changed charts. This could happen if only files outside a chart were changed."
exit 0
fi
echo ">> Running helm lint on changed charts:"
echo "$CHANGED_CHARTS"
echo "$CHANGED_CHARTS" | while read -r chart; do
echo ">> Building dependency for "$chart" ..."
helm dependency build "$chart"
echo ">> Linting $chart..."
helm lint "$chart"
done

View File

@@ -0,0 +1,37 @@
name: lint-and-test-charts
on: pull_request
jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: latest
- uses: actions/setup-python@v5
with:
python-version: "3.13"
check-latest: true
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.7.0
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Run chart-testing (lint)
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --target-branch ${{ github.event.repository.default_branch }}

View File

@@ -1,32 +0,0 @@
name: renovate
on:
schedule:
- cron: "@hourly"
push:
branches:
- main
workflow_dispatch:
jobs:
renovate:
runs-on: ubuntu-latest
container: ghcr.io/renovatebot/renovate:41
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Renovate
run: renovate
env:
RENOVATE_PLATFORM: gitea
RENOVATE_ENDPOINT: ${{ vars.INSTANCE_URL }}
RENOVATE_REPOSITORIES: alexlebens/infrastructure
RENOVATE_GIT_AUTHOR: Renovate Bot <renovate-bot@alexlebens.net>
LOG_LEVEL: info
RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }}
RENOVATE_GIT_PRIVATE_KEY: ${{ secrets.RENOVATE_GIT_PRIVATE_KEY }}
RENOVATE_GITHUB_COM_TOKEN: ${{ secrets.RENOVATE_GITHUB_COM_TOKEN }}
RENOVATE_REDIS_URL: ${{ vars.RENOVATE_REDIS_URL }}

View File

@@ -1,21 +0,0 @@
apiVersion: v2
name: actual
version: 1.0.0
description: Actual
keywords:
- actual
- budget
home: https://wiki.alexlebens.dev/s/86192f45-94b7-45de-872c-6ef3fec7df5e
sources:
- https://github.com/actualbudget/actual
- https://github.com/actualbudget/actual/pkgs/container/actual
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: actual
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.2.0
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/actual-budget.png
appVersion: v25.5.0

View File

@@ -1,55 +0,0 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: actual-data-backup-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: actual-data-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 }}` }}/actual/actual-data"
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

@@ -1,56 +0,0 @@
actual:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/actualbudget/actual
tag: 25.8.0
pullPolicy: IfNotPresent
env:
- name: TZ
value: US/Central
resources:
requests:
cpu: 10m
memory: 128Mi
probes:
liveness:
enabled: true
custom: true
spec:
exec:
command:
- /usr/bin/env
- bash
- -c
- node src/scripts/health-check.js
failureThreshold: 5
initialDelaySeconds: 60
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 10
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 5006
protocol: HTTP
persistence:
data:
forceRename: actual-data
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 2Gi
retain: true
advancedMounts:
main:
main:
- path: /data
readOnly: false

View File

@@ -7,17 +7,17 @@ keywords:
- books - books
- podcasts - podcasts
- audiobooks - audiobooks
home: https://wiki.alexlebens.dev/s/d4d6719f-cd1c-4b6e-b78e-2d2d7a5097d7 home: https://wiki.alexlebens.dev/doc/audiobookshelf-uNciuFjzDw
sources: sources:
- https://github.com/advplyr/audiobookshelf - https://github.com/advplyr/audiobookshelf
- https://github.com/advplyr/audiobookshelf/pkgs/container/audiobookshelf - https://github.com/advplyr/audiobookshelf/pkgs/container/audiobookshelf
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: audiobookshelf alias: audiobookshelf
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/audiobookshelf.png icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/audiobookshelf.png
appVersion: 2.21.0 appVersion: 2.17.5

View File

@@ -1,27 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: audiobookshelf-apprise-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: audiobookshelf-apprise-config
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: ntfy-url
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/audiobookshelf/apprise
metadataPolicy: None
property: ntfy-url
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: audiobookshelf-config-backup-secret name: audiobookshelf-config-backup-secret
@@ -29,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: audiobookshelf-config-backup-secret app.kubernetes.io/name: audiobookshelf-config-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -78,7 +57,7 @@ spec:
property: secret_key property: secret_key
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: audiobookshelf-metadata-backup-secret name: audiobookshelf-metadata-backup-secret
@@ -86,6 +65,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: audiobookshelf-metadata-backup-secret app.kubernetes.io/name: audiobookshelf-metadata-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-audiobookshelf app.kubernetes.io/name: http-route-audiobookshelf
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: audiobookshelf-nfs-storage-backup app.kubernetes.io/name: audiobookshelf-nfs-storage-backup
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeMode: Filesystem volumeMode: Filesystem
@@ -25,6 +27,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: audiobookshelf-nfs-storage app.kubernetes.io/name: audiobookshelf-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: audiobookshelf-nfs-storage volumeName: audiobookshelf-nfs-storage

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: audiobookshelf-nfs-storage app.kubernetes.io/name: audiobookshelf-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: audiobookshelf-config-backup-source app.kubernetes.io/name: audiobookshelf-config-backup-source
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
sourcePVC: audiobookshelf-config sourcePVC: audiobookshelf-config
@@ -33,6 +35,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: audiobookshelf-metadata-backup-source app.kubernetes.io/name: audiobookshelf-metadata-backup-source
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
sourcePVC: audiobookshelf-metadata sourcePVC: audiobookshelf-metadata

View File

@@ -1,19 +0,0 @@
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: audiobookshelf-apprise
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: audiobookshelf-apprise
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
endpoints:
- port: apprise
interval: 30s
scrapeTimeout: 15s
path: /metrics
selector:
matchLabels:
app.kubernetes.io/name: audiobookshelf
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -9,7 +9,7 @@ audiobookshelf:
main: main:
image: image:
repository: ghcr.io/advplyr/audiobookshelf repository: ghcr.io/advplyr/audiobookshelf
tag: 2.28.0 tag: 2.20.0
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: TZ - name: TZ
@@ -18,29 +18,8 @@ audiobookshelf:
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 128Mi
apprise-api: serviceAccount:
image: create: true
repository: caronc/apprise
tag: 1.2.1
pullPolicy: IfNotPresent
env:
- name: TZ
value: US/Central
- name: APPRISE_STORAGE_MODE
value: memory
- name: APPRISE_STATEFUL_MODE
value: disabled
- name: APPRISE_WORKER_COUNT
value: 1
- name: APPRISE_STATELESS_URLS
valueFrom:
secretKeyRef:
name: audiobookshelf-apprise-config
key: ntfy-url
resources:
requests:
cpu: 10m
memory: 128Mi
service: service:
main: main:
controller: main controller: main
@@ -49,10 +28,6 @@ audiobookshelf:
port: 80 port: 80
targetPort: 80 targetPort: 80
protocol: HTTP protocol: HTTP
apprise:
port: 8000
targetPort: 8000
protocol: HTTP
persistence: persistence:
config: config:
storageClass: ceph-block storageClass: ceph-block

View File

@@ -1,23 +0,0 @@
apiVersion: v2
name: bazarr
version: 1.0.0
description: Bazarr
keywords:
- bazarr
- servarr
- subtitles
home: https://wiki.alexlebens.dev/s/92784d53-1d43-42fd-b509-f42c73454226
sources:
- https://github.com/morpheus65535/bazarr
- https://github.com/linuxserver/docker-bazarr
- https://github.com/linuxserver/docker-bazarr/pkgs/container/bazarr
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: bazarr
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.2.0
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/bazarr.png
appVersion: 1.5.2

View File

@@ -1,55 +0,0 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: bazarr-config-backup-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: bazarr-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 }}` }}/bazarr/bazarr-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

@@ -1,28 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: http-route-bazarr
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: http-route-bazarr
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:
- bazarr.alexlebens.net
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- group: ''
kind: Service
name: bazarr
port: 80
weight: 100

View File

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

View File

@@ -1,23 +0,0 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: bazarr-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: bazarr-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
server: synologybond.alexlebens.net
mountOptions:
- vers=4
- minorversion=1
- noac

View File

@@ -1,57 +0,0 @@
bazarr:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
pod:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
containers:
main:
image:
repository: ghcr.io/linuxserver/bazarr
tag: 1.5.2@sha256:591793af49156dacb5f3c2a48d19e4b1522e37d16ca3aeaea0f6616f1ce7924d
pullPolicy: IfNotPresent
env:
- name: TZ
value: US/Central
- name: PUID
value: 1000
- name: PGID
value: 1000
resources:
requests:
cpu: 10m
memory: 256Mi
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 6767
protocol: HTTP
persistence:
config:
forceRename: bazarr-config
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 5Gi
retain: true
advancedMounts:
main:
main:
- path: /config
readOnly: false
media:
existingClaim: bazarr-nfs-storage
advancedMounts:
main:
main:
- path: /mnt/store
readOnly: false

View File

@@ -5,17 +5,17 @@ description: Calibre Web Automated
keywords: keywords:
- calibre-web-automated - calibre-web-automated
- books - books
home: https://wiki.alexlebens.dev/s/fdcfdb7e-8f73-438e-b59c-3c2de2081885 home: https://wiki.alexlebens.dev/doc/calibre-web-automated-1SMf1jPFsb
sources: sources:
- https://github.com/crocodilestick/Calibre-Web-Automator - https://github.com/crocodilestick/Calibre-Web-Automator
- https://hub.docker.com/r/crocodilestick/calibre-web-automated - https://hub.docker.com/r/crocodilestick/calibre-web-automated
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: calibre-web-automated alias: calibre-web-automated
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/calibre-web.png icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/calibre-web.png
appVersion: V3.0.4 appVersion: V2.1.2

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: calibre-web-automated-gmail-config name: calibre-web-automated-gmail-config
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: calibre-web-automated-gmail-config app.kubernetes.io/name: calibre-web-automated-gmail-config
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -21,7 +23,7 @@ spec:
property: gmail.json property: gmail.json
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: calibre-web-automated-config-backup-secret name: calibre-web-automated-config-backup-secret
@@ -29,6 +31,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: calibre-web-automated-config-backup-secret app.kubernetes.io/name: calibre-web-automated-config-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-calibre app.kubernetes.io/name: http-route-calibre
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:
@@ -36,6 +38,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-calibre-downloader app.kubernetes.io/name: http-route-calibre-downloader
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: calibre-web-automated-nfs-storage app.kubernetes.io/name: calibre-web-automated-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: calibre-web-automated-nfs-storage volumeName: calibre-web-automated-nfs-storage
@@ -25,6 +27,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: calibre-web-automated-ingest-nfs-storage app.kubernetes.io/name: calibre-web-automated-ingest-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: calibre-web-automated-ingest-nfs-storage volumeName: calibre-web-automated-ingest-nfs-storage

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: calibre-web-automated-nfs-storage app.kubernetes.io/name: calibre-web-automated-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
@@ -31,6 +33,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: calibre-web-automated-ingest-nfs-storage app.kubernetes.io/name: calibre-web-automated-ingest-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: calibre-web-automated-config-backup-source app.kubernetes.io/name: calibre-web-automated-config-backup-source
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
sourcePVC: calibre-web-automated-config sourcePVC: calibre-web-automated-config

View File

@@ -20,7 +20,7 @@ calibre-web-automated:
value: 100 value: 100
resources: resources:
requests: requests:
cpu: 10m cpu: 100m
memory: 256Mi memory: 256Mi
downloader: downloader:
type: deployment type: deployment
@@ -31,7 +31,7 @@ calibre-web-automated:
main: main:
image: image:
repository: ghcr.io/calibrain/calibre-web-automated-book-downloader repository: ghcr.io/calibrain/calibre-web-automated-book-downloader
tag: latest@sha256:b68b3d014818fdf358f4a0655c5ba94fc6f58014e664c895f25790ac5b4d0cca tag: latest@sha256:e4c205932b0ece06d76de09ba8569d5aa30768cc46d04beb3a24ddc0106043d6
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: FLASK_PORT - name: FLASK_PORT
@@ -55,12 +55,14 @@ calibre-web-automated:
bypass: bypass:
image: image:
repository: ghcr.io/sarperavci/cloudflarebypassforscraping repository: ghcr.io/sarperavci/cloudflarebypassforscraping
tag: latest@sha256:9ac4cd4d6d5dfc270a92502b92761d9039297abfb123f4a2a3abca5209d9eec5 tag: latest@sha256:8e99847ae05bce24fe8a400bb9b30990a4cec32853f3975905eab95e05febefa
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
resources: resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 128Mi
serviceAccount:
create: true
service: service:
main: main:
controller: main controller: main
@@ -78,7 +80,6 @@ calibre-web-automated:
protocol: HTTP protocol: HTTP
persistence: persistence:
config: config:
forceRename: calibre-web-automated-config
storageClass: ceph-block storageClass: ceph-block
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 5Gi size: 5Gi

View File

@@ -6,23 +6,23 @@ keywords:
- code-server - code-server
- code - code
- ide - ide
home: https://wiki.alexlebens.dev/s/233f96bb-db70-47e4-8b22-a8efcbb0f93d home: https://wiki.alexlebens.dev/doc/code-server-1WziinqCFS
sources: sources:
- https://github.com/coder/code-server - https://github.com/coder/code-server
- https://github.com/cloudflare/cloudflared - https://github.com/cloudflare/cloudflared
- https://hub.docker.com/r/linuxserver/code-server - https://hub.docker.com/r/linuxserver/code-server
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/cloudflared - https://github.com/alexlebens/helm-charts/tree/main/charts/cloudflared
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: code-server alias: code-server
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
- name: cloudflared - name: cloudflared
alias: cloudflared alias: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts repository: https://gitea.alexlebens.dev/api/packages/alexlebens/helm
version: 1.20.0 version: 1.14.3
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/visual-studio-code.png icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/code-server.png
appVersion: 4.100.2 appVersion: 4.96.1

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: codeserver-password-secret name: codeserver-password-secret
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: codeserver-password-secret app.kubernetes.io/name: codeserver-password-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -28,7 +30,7 @@ spec:
property: SUDO_PASSWORD property: SUDO_PASSWORD
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: code-server-cloudflared-secret name: code-server-cloudflared-secret
@@ -36,6 +38,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: code-server-cloudflared-secret app.kubernetes.io/name: code-server-cloudflared-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-code-server app.kubernetes.io/name: http-route-code-server
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: code-server-nfs-storage app.kubernetes.io/name: code-server-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeMode: Filesystem volumeMode: Filesystem

View File

@@ -9,7 +9,7 @@ code-server:
main: main:
image: image:
repository: ghcr.io/linuxserver/code-server repository: ghcr.io/linuxserver/code-server
tag: 4.103.0@sha256:88cb90d06bbf300d99681be396e75b013429d561aa3c2f2a3fcbfb42d1bf8253 tag: 4.98.2@sha256:87fbf594ae4a6494d0623967fc4c7a42774945c9cf032b55c57128ca675f2221
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: TZ - name: TZ
@@ -27,6 +27,8 @@ code-server:
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 128Mi
serviceAccount:
create: true
service: service:
main: main:
controller: main controller: main

View File

@@ -5,29 +5,40 @@ description: Directus
keywords: keywords:
- directus - directus
- cms - cms
home: https://wiki.alexlebens.dev/s/c2d242de-dcaa-4801-86a2-c4761dc8bf9b home: https://wiki.alexlebens.dev/doc/directus-EvV9wese9H
sources: sources:
- https://github.com/directus/directus - https://github.com/directus/directus
- https://github.com/minio/operator
- https://github.com/valkey-io/valkey
- https://github.com/cloudflare/cloudflared - https://github.com/cloudflare/cloudflared
- https://github.com/cloudnative-pg/cloudnative-pg - https://github.com/cloudnative-pg/cloudnative-pg
- https://hub.docker.com/r/directus/directus - https://hub.docker.com/r/directus/directus
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/cloudflared - https://github.com/minio/operator/tree/master/helm/tenant
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/postgres-cluster - https://github.com/bitnami/charts/tree/main/bitnami/valkey
- https://github.com/alexlebens/helm-charts/charts/cloudflared
- https://github.com/alexlebens/helm-charts/charts/postgres-cluster
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: directus alias: directus
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
- name: tenant
alias: minio
version: 7.0.1
repository: https://operator.min.io/
- name: valkey
version: 2.4.6
repository: oci://harbor.alexlebens.net/proxy-registry-1.docker.io/bitnamicharts
- name: cloudflared - name: cloudflared
alias: cloudflared-directus alias: cloudflared-directus
repository: oci://harbor.alexlebens.net/helm-charts repository: https://gitea.alexlebens.dev/api/packages/alexlebens/helm
version: 1.20.0 version: 1.14.3
- name: postgres-cluster - name: postgres-cluster
alias: postgres-17-cluster alias: postgres-17-cluster
version: 6.4.4 version: 4.2.1
repository: oci://harbor.alexlebens.net/helm-charts repository: https://gitea.alexlebens.dev/api/packages/alexlebens/helm
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/directus.png icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/directus.png
appVersion: 11.7.2 appVersion: 11.3.2

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: directus-config name: directus-config
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: directus-config app.kubernetes.io/name: directus-config
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -42,37 +44,16 @@ spec:
property: key property: key
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: directus-metric-token name: directus-valkey-config
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: directus-metric-token app.kubernetes.io/name: directus-valkey-config
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: metric-token
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/directus/metrics
metadataPolicy: None
property: metric-token
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: directus-redis-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: directus-redis-config
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -83,19 +64,19 @@ spec:
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: /cl01tl/directus/redis key: /cl01tl/directus/valkey
metadataPolicy: None metadataPolicy: None
property: user property: user
- secretKey: password - secretKey: password
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: /cl01tl/directus/redis key: /cl01tl/directus/valkey
metadataPolicy: None metadataPolicy: None
property: password property: password
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: directus-oidc-secret name: directus-oidc-secret
@@ -103,6 +84,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: directus-oidc-secret app.kubernetes.io/name: directus-oidc-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -125,7 +108,89 @@ spec:
property: secret property: secret
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: directus-minio-user-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: directus-minio-user-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: AWS_ACCESS_KEY_ID
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/directus/minio/auth
metadataPolicy: None
property: AWS_ACCESS_KEY_ID
- secretKey: AWS_SECRET_ACCESS_KEY
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/directus/minio/auth
metadataPolicy: None
property: AWS_SECRET_ACCESS_KEY
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: directus-minio-root-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: directus-minio-root-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: config.env
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/directus/minio/config
metadataPolicy: None
property: root-config.env
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: directus-minio-config-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: directus-minio-config-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: config.env
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/directus/minio/config
metadataPolicy: None
property: config.env
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: directus-cloudflared-secret name: directus-cloudflared-secret
@@ -133,6 +198,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: directus-cloudflared-secret app.kubernetes.io/name: directus-cloudflared-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -148,7 +215,7 @@ spec:
property: token property: token
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: directus-postgresql-17-cluster-backup-secret name: directus-postgresql-17-cluster-backup-secret
@@ -156,6 +223,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: directus-postgresql-17-cluster-backup-secret app.kubernetes.io/name: directus-postgresql-17-cluster-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: database
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -1,11 +1,13 @@
apiVersion: gateway.networking.k8s.io/v1 apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute kind: HTTPRoute
metadata: metadata:
name: http-route-eigenfocus name: http-route-directus-minio
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: http-route-eigenfocus app.kubernetes.io/name: http-route-directus-minio
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:
@@ -14,7 +16,7 @@ spec:
name: traefik-gateway name: traefik-gateway
namespace: traefik namespace: traefik
hostnames: hostnames:
- eigenfocus.alexlebens.net - minio-directus.alexlebens.net
rules: rules:
- matches: - matches:
- path: - path:
@@ -23,6 +25,6 @@ spec:
backendRefs: backendRefs:
- group: '' - group: ''
kind: Service kind: Service
name: eigenfocus name: minio-directus-console
port: 80 port: 9090
weight: 100 weight: 100

View File

@@ -1,11 +0,0 @@
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: ceph-bucket-directus
labels:
app.kubernetes.io/name: ceph-bucket-directus
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
generateBucketName: bucket-directus
storageClassName: ceph-bucket

View File

@@ -1,35 +0,0 @@
apiVersion: redis.redis.opstreelabs.in/v1beta2
kind: RedisReplication
metadata:
name: redis-replication-directus
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: redis-replication-directus
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
clusterSize: 3
podSecurityContext:
runAsUser: 1000
fsGroup: 1000
kubernetesConfig:
image: quay.io/opstree/redis:v8.0.3
imagePullPolicy: IfNotPresent
redisSecret:
name: directus-redis-config
key: password
resources:
requests:
cpu: 50m
memory: 128Mi
storage:
volumeClaimTemplate:
spec:
storageClassName: ceph-block
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
redisExporter:
enabled: true
image: quay.io/opstree/redis-exporter:v1.48.0

View File

@@ -1,43 +0,0 @@
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: directus
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: directus
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
selector:
matchLabels:
app.kubernetes.io/name: directus
app.kubernetes.io/instance: {{ .Release.Name }}
endpoints:
- port: http
interval: 30s
scrapeTimeout: 15s
path: /metrics
bearerTokenSecret:
name: directus-metric-token
key: metric-token
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: redis-replication-directus
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: redis-replication-directus
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
redis-operator: "true"
env: production
spec:
selector:
matchLabels:
redis_setup_type: replication
endpoints:
- port: redis-exporter
interval: 30s
scrapeTimeout: 10s

View File

@@ -9,7 +9,7 @@ directus:
main: main:
image: image:
repository: directus/directus repository: directus/directus
tag: 11.10.0 tag: 11.5.1
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: PUBLIC_URL - name: PUBLIC_URL
@@ -66,18 +66,18 @@ directus:
- name: REDIS_ENABLED - name: REDIS_ENABLED
value: true value: true
- name: REDIS_HOST - name: REDIS_HOST
value: redis-replication-directus-master value: directus-valkey-primary
- name: REDIS_PORT - name: REDIS_PORT
value: 6379 value: 6379
- name: REDIS_USERNAME - name: REDIS_USERNAME
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: directus-redis-config name: directus-valkey-config
key: user key: user
- name: REDIS_PASSWORD - name: REDIS_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: directus-redis-config name: directus-valkey-config
key: password key: password
- name: STORAGE_LOCATIONS - name: STORAGE_LOCATIONS
value: s3 value: s3
@@ -86,24 +86,21 @@ directus:
- name: STORAGE_S3_KEY - name: STORAGE_S3_KEY
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: ceph-bucket-directus name: directus-minio-user-secret
key: AWS_ACCESS_KEY_ID key: AWS_ACCESS_KEY_ID
- name: STORAGE_S3_SECRET - name: STORAGE_S3_SECRET
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: ceph-bucket-directus name: directus-minio-user-secret
key: AWS_SECRET_ACCESS_KEY key: AWS_SECRET_ACCESS_KEY
- name: STORAGE_S3_BUCKET - name: STORAGE_S3_BUCKET
valueFrom: value: directus
configMapKeyRef:
name: ceph-bucket-directus
key: BUCKET_NAME
- name: STORAGE_S3_REGION - name: STORAGE_S3_REGION
value: us-east-1 value: us-east-1
- name: STORAGE_S3_ENDPOINT - name: STORAGE_S3_ENDPOINT
value: http://rook-ceph-rgw-ceph-objectstore.rook-ceph.svc:80 value: http://minio.directus:80
- name: STORAGE_S3_FORCE_PATH_STYLE - name: STORAGE_S3_FORCE_PATH_STYLE
value: true value: "true"
- name: AUTH_PROVIDERS - name: AUTH_PROVIDERS
value: AUTHENTIK value: AUTHENTIK
- name: AUTH_AUTHENTIK_DRIVER - name: AUTH_AUTHENTIK_DRIVER
@@ -130,17 +127,12 @@ directus:
value: Authentik value: Authentik
- name: TELEMETRY - name: TELEMETRY
value: false value: false
- name: METRICS_ENABLED
value: true
- name: METRICS_TOKENS
valueFrom:
secretKeyRef:
name: directus-metric-token
key: metric-token
resources: resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 256Mi memory: 256Mi
serviceAccount:
create: true
service: service:
main: main:
controller: main controller: main
@@ -149,31 +141,58 @@ directus:
port: 80 port: 80
targetPort: 8055 targetPort: 8055
protocol: TCP protocol: TCP
minio:
existingSecret:
name: directus-minio-root-secret
tenant:
name: minio-directus
configuration:
name: directus-minio-config-secret
pools:
- servers: 3
name: pool
volumesPerServer: 2
size: 10Gi
storageClassName: ceph-block
mountPath: /export
subPath: /data
metrics:
enabled: true
port: 9000
protocol: http
certificate:
requestAutoCert: false
ingress:
console:
enabled: false
valkey:
architecture: standalone
auth:
enabled: true
existingSecret: directus-valkey-config
existingSecretPasswordKey: password
usePasswordFiles: false
primary:
persistence:
enabled: false
replica:
persistence:
enabled: false
cloudflared-directus: cloudflared-directus:
name: cloudflared-directus name: cloudflared-directus
existingSecretName: directus-cloudflared-secret existingSecretName: directus-cloudflared-secret
postgres-17-cluster: postgres-17-cluster:
mode: standalone mode: standalone
cluster: cluster:
storage:
storageClass: local-path
walStorage: walStorage:
storageClass: local-path storageClass: local-path
storage:
storageClass: local-path
monitoring: monitoring:
enabled: true enabled: true
prometheusRule:
enabled: true
recovery:
method: objectStore
objectStore:
endpointURL: https://nyc3.digitaloceanspaces.com
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/directus/directus-postgresql-17-cluster
endpointCredentials: directus-postgresql-17-cluster-backup-secret
recoveryIndex: 2
backup: backup:
enabled: true enabled: true
endpointURL: https://nyc3.digitaloceanspaces.com endpointURL: https://nyc3.digitaloceanspaces.com
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/directus/directus-postgresql-17-cluster destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/directus/directus-postgresql-17-cluster
endpointCredentials: directus-postgresql-17-cluster-backup-secret endpointCredentials: directus-postgresql-17-cluster-backup-secret
backupIndex: 2 backupIndex: 2
retentionPolicy: "7d"

View File

@@ -1,21 +0,0 @@
apiVersion: v2
name: eigenfocus
version: 1.0.0
description: Eigenfocus
keywords:
- eigenfocus
- projects
home: https://wiki.alexlebens.dev/s/82548c75-cefe-4ad2-b60c-0b101127c31b
sources:
- https://github.com/Eigenfocus/eigenfocus
- https://hub.docker.com/r/eigenfocus/eigenfocus
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: eigenfocus
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.2.0
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/eigenfocus.png
appVersion: 1.1.0

View File

@@ -1,55 +0,0 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: eigenfocus-data-backup-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: eigenfocus-data-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 }}` }}/eigenfocus/eigenfocus-data"
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

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

View File

@@ -1,40 +0,0 @@
eigenfocus:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: eigenfocus/eigenfocus
tag: 1.2.0-free
pullPolicy: IfNotPresent
env:
- name: DEFAULT_HOST_URL
value: https://eigenfocus.alexlebens.net
resources:
requests:
cpu: 10m
memory: 128Mi
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 3000
protocol: HTTP
persistence:
data:
forceRename: eigenfocus-data
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 2Gi
retain: true
advancedMounts:
main:
main:
- path: /eigenfocus-app/app-data
readOnly: false

View File

@@ -6,22 +6,22 @@ keywords:
- element-web - element-web
- chat - chat
- matrix - matrix
home: https://wiki.alexlebens.dev/s/e3b03481-1a1d-4b56-8cd9-e75a8dcc0f6c home: https://wiki.alexlebens.dev/doc/element-web-R4dzXXspgr
sources: sources:
- https://github.com/element-hq/element-web - https://github.com/element-hq/element-web
- https://github.com/cloudflare/cloudflared - https://github.com/cloudflare/cloudflared
- https://hub.docker.com/r/vectorim/element-web - https://hub.docker.com/r/vectorim/element-web
- https://gitlab.com/ananace/charts/-/tree/master/charts/element-web - https://gitlab.com/ananace/charts/-/tree/master/charts/element-web
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/cloudflared - https://github.com/alexlebens/helm-charts/tree/main/charts/cloudflared
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: element-web - name: element-web
version: 1.4.16 version: 1.4.5
repository: https://ananace.gitlab.io/charts repository: https://ananace.gitlab.io/charts
- name: cloudflared - name: cloudflared
alias: cloudflared alias: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts repository: https://gitea.alexlebens.dev/api/packages/alexlebens/helm
version: 1.20.0 version: 1.14.3
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/element.png icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/element.png
appVersion: v1.11.100 appVersion: v1.11.88

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: element-web-cloudflared-secret name: element-web-cloudflared-secret
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: element-web-cloudflared-secret app.kubernetes.io/name: element-web-cloudflared-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -2,7 +2,7 @@ element-web:
replicaCount: 1 replicaCount: 1
image: image:
repository: vectorim/element-web repository: vectorim/element-web
tag: v1.11.109 tag: v1.11.95
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
defaultServer: defaultServer:
url: https://matrix.alexlebens.dev url: https://matrix.alexlebens.dev
@@ -12,8 +12,8 @@ element-web:
disable_3pid_login: true disable_3pid_login: true
brand: "Alex Lebens" brand: "Alex Lebens"
branding: branding:
welcome_background_url: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/background-5.png welcome_background_url: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/background-4.jpg
auth_header_logo_url: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.png auth_header_logo_url: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/icon_white.png
sso_redirect_options: sso_redirect_options:
immediate: true immediate: true
default_theme: dark default_theme: dark

View File

@@ -5,29 +5,29 @@ description: FreshRSS
keywords: keywords:
- freshrss - freshrss
- rss - rss
home: https://wiki.alexlebens.dev/s/251cb7cb-2797-4bbb-8597-32757aa96391 home: https://wiki.alexlebens.dev/doc/freshrss-W6nFVTmKJw
sources: sources:
- https://github.com/FreshRSS/FreshRSS - https://github.com/FreshRSS/FreshRSS
- https://github.com/cloudflare/cloudflared - https://github.com/cloudflare/cloudflared
- https://github.com/cloudnative-pg/cloudnative-pg - https://github.com/cloudnative-pg/cloudnative-pg
- https://hub.docker.com/r/freshrss/freshrss - https://hub.docker.com/r/freshrss/freshrss
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/cloudflared - https://github.com/alexlebens/helm-charts/tree/main/charts/cloudflared
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/postgres-cluster - https://github.com/alexlebens/helm-charts/tree/main/charts/postgres-cluster
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: freshrss alias: freshrss
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
- name: cloudflared - name: cloudflared
alias: cloudflared alias: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts repository: https://gitea.alexlebens.dev/api/packages/alexlebens/helm
version: 1.20.0 version: 1.14.3
- name: postgres-cluster - name: postgres-cluster
alias: postgres-17-cluster alias: postgres-17-cluster
version: 6.4.4 version: 4.2.1
repository: oci://harbor.alexlebens.net/helm-charts repository: https://gitea.alexlebens.dev/api/packages/alexlebens/helm
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/freshrss.png icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/freshrss.png
appVersion: 1.26.2 appVersion: 1.24.3

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: freshrss-install-secret name: freshrss-install-secret
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: freshrss-install-secret app.kubernetes.io/name: freshrss-install-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -35,14 +37,16 @@ spec:
property: ADMIN_API_PASSWORD property: ADMIN_API_PASSWORD
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: freshrss-oidc-secret name: freshrss-oidc-secret
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: freshrss-oidc-secret app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -72,7 +76,7 @@ spec:
property: crypto-key property: crypto-key
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: freshrss-cloudflared-secret name: freshrss-cloudflared-secret
@@ -80,6 +84,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: freshrss-cloudflared-secret app.kubernetes.io/name: freshrss-cloudflared-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -95,7 +101,7 @@ spec:
property: token property: token
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: freshrss-data-backup-secret name: freshrss-data-backup-secret
@@ -103,6 +109,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: freshrss-data-backup-secret app.kubernetes.io/name: freshrss-data-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -152,7 +160,7 @@ spec:
property: secret_key property: secret_key
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: freshrss-postgresql-17-cluster-backup-secret name: freshrss-postgresql-17-cluster-backup-secret
@@ -160,6 +168,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: freshrss-postgresql-17-cluster-backup-secret app.kubernetes.io/name: freshrss-postgresql-17-cluster-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: database
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: freshrss-data-backup-source app.kubernetes.io/name: freshrss-data-backup-source
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
sourcePVC: freshrss-data sourcePVC: freshrss-data

View File

@@ -11,7 +11,7 @@ freshrss:
runAsUser: 0 runAsUser: 0
image: image:
repository: alpine repository: alpine
tag: 3.22.1 tag: 3.21.3
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
command: command:
- /bin/sh - /bin/sh
@@ -28,14 +28,14 @@ freshrss:
chown -R 568:568 /var/www/FreshRSS/extensions/xExtension-YouTubeChannel2RssFeed chown -R 568:568 /var/www/FreshRSS/extensions/xExtension-YouTubeChannel2RssFeed
resources: resources:
requests: requests:
cpu: 10m cpu: 100m
memory: 128Mi memory: 128Mi
init-download-extension-2: init-download-extension-2:
securityContext: securityContext:
runAsUser: 0 runAsUser: 0
image: image:
repository: alpine repository: alpine
tag: 3.22.1 tag: 3.21.3
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
command: command:
- /bin/sh - /bin/sh
@@ -49,38 +49,16 @@ freshrss:
git checkout; git checkout;
rm -rf /var/www/FreshRSS/extensions/xExtension-ImageProxy rm -rf /var/www/FreshRSS/extensions/xExtension-ImageProxy
cp -r xExtension-ImageProxy /var/www/FreshRSS/extensions cp -r xExtension-ImageProxy /var/www/FreshRSS/extensions
chown -R 568:568 /var/www/FreshRSS/extensions/xExtension-ImageProxy chown -R 568:568 /var/www/FreshRSS/extensions/xExtension-YouTubeChannel2RssFeed
resources: resources:
requests: requests:
cpu: 10m cpu: 100m
memory: 128Mi
init-download-extension-3:
securityContext:
runAsUser: 0
image:
repository: alpine
tag: 3.22.1
pullPolicy: IfNotPresent
command:
- /bin/sh
- -ec
- |
cd /tmp;
wget https://github.com/zimmra/xExtension-karakeep-button/archive/refs/tags/v1.1.tar.gz;
tar -xvzf *.tar.gz;
rm -rf /var/www/FreshRSS/extensions/xExtension-karakeep-button
mkdir /var/www/FreshRSS/extensions/xExtension-karakeep-button
cp -r /tmp/xExtension-karakeep-button-*/* /var/www/FreshRSS/extensions/xExtension-karakeep-button
chown -R 568:568 /var/www/FreshRSS/extensions/xExtension-karakeep-button
resources:
requests:
cpu: 10m
memory: 128Mi memory: 128Mi
containers: containers:
main: main:
image: image:
repository: freshrss/freshrss repository: freshrss/freshrss
tag: 1.26.3 tag: 1.26.1
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: PGID - name: PGID
@@ -153,6 +131,8 @@ freshrss:
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 128Mi
serviceAccount:
create: true
service: service:
main: main:
controller: main controller: main
@@ -185,9 +165,6 @@ freshrss:
init-download-extension-2: init-download-extension-2:
- path: /var/www/FreshRSS/extensions - path: /var/www/FreshRSS/extensions
readOnly: false readOnly: false
init-download-extension-3:
- path: /var/www/FreshRSS/extensions
readOnly: false
main: main:
- path: /var/www/FreshRSS/extensions - path: /var/www/FreshRSS/extensions
readOnly: false readOnly: false
@@ -196,25 +173,15 @@ cloudflared:
postgres-17-cluster: postgres-17-cluster:
mode: standalone mode: standalone
cluster: cluster:
storage:
storageClass: local-path
walStorage: walStorage:
storageClass: local-path storageClass: local-path
storage:
storageClass: local-path
monitoring: monitoring:
enabled: true enabled: true
prometheusRule:
enabled: true
recovery:
method: objectStore
objectStore:
endpointURL: https://nyc3.digitaloceanspaces.com
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/freshrss/freshrss-postgresql-17-cluster
endpointCredentials: freshrss-postgresql-17-cluster-backup-secret
recoveryIndex: 3
backup: backup:
enabled: true enabled: true
endpointURL: https://nyc3.digitaloceanspaces.com endpointURL: https://nyc3.digitaloceanspaces.com
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/freshrss/freshrss-postgresql-17-cluster destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/freshrss/freshrss-postgresql-17-cluster
endpointCredentials: freshrss-postgresql-17-cluster-backup-secret endpointCredentials: freshrss-postgresql-17-cluster-backup-secret
backupIndex: 3 backupIndex: 3
retentionPolicy: "7d"

View File

@@ -0,0 +1,32 @@
apiVersion: v2
name: hoarder
version: 1.0.0
description: Hoarder
keywords:
- hoarder
- bookmarks
home: https://wiki.alexlebens.dev/doc/hoarder-
sources:
- https://github.com/hoarder-app/hoarder
- https://github.com/cloudflare/cloudflared
- https://github.com/meilisearch/meilisearch
- https://github.com/hoarder-app/hoarder/pkgs/container/hoarder
- https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
- https://github.com/alexlebens/helm-charts/tree/main/charts/cloudflared
- https://github.com/meilisearch/meilisearch-kubernetes/tree/main/charts/meilisearch
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: hoarder
repository: https://bjw-s.github.io/helm-charts/
version: 3.7.3
- name: meilisearch
version: 0.12.0
repository: https://meilisearch.github.io/meilisearch-kubernetes
- name: cloudflared
alias: cloudflared
repository: https://gitea.alexlebens.dev/api/packages/alexlebens/helm
version: 1.14.3
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/svg/hoarder.svg
appVersion: 0.19.0

View File

@@ -1,11 +1,13 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: karakeep-key-secret name: hoarder-key-secret
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: karakeep-key-secret app.kubernetes.io/name: hoarder-key-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -16,26 +18,21 @@ spec:
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: /cl01tl/karakeep/key key: /cl01tl/hoarder/key
metadataPolicy: None metadataPolicy: None
property: key property: key
- secretKey: prometheus-token
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/karakeep/key
metadataPolicy: None
property: prometheus-token
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: karakeep-oidc-secret name: hoarder-oidc-secret
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: karakeep-oidc-secret app.kubernetes.io/name: hoarder-oidc-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -46,26 +43,28 @@ spec:
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: /authentik/oidc/karakeep key: /authentik/oidc/hoarder
metadataPolicy: None metadataPolicy: None
property: client property: client
- secretKey: AUTHENTIK_CLIENT_SECRET - secretKey: AUTHENTIK_CLIENT_SECRET
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: /authentik/oidc/karakeep key: /authentik/oidc/hoarder
metadataPolicy: None metadataPolicy: None
property: secret property: secret
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: karakeep-meilisearch-master-key-secret name: hoarder-meilisearch-master-key-secret
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: karakeep-meilisearch-master-key-secret app.kubernetes.io/name: hoarder-meilisearch-master-key-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: meilisearch
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -76,19 +75,21 @@ spec:
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: /cl01tl/karakeep/meilisearch key: /cl01tl/hoarder/meilisearch
metadataPolicy: None metadataPolicy: None
property: MEILI_MASTER_KEY property: MEILI_MASTER_KEY
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: karakeep-cloudflared-secret name: hoarder-cloudflared-secret
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: karakeep-cloudflared-secret app.kubernetes.io/name: hoarder-cloudflared-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -99,19 +100,21 @@ spec:
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: /cloudflare/tunnels/karakeep key: /cloudflare/tunnels/hoarder
metadataPolicy: None metadataPolicy: None
property: token property: token
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: karakeep-data-backup-secret name: hoarder-data-backup-secret
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: karakeep-data-backup-secret app.kubernetes.io/name: hoarder-data-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -122,7 +125,7 @@ spec:
mergePolicy: Merge mergePolicy: Merge
engineVersion: v2 engineVersion: v2
data: data:
RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/karakeep/karakeep-data" RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/hoarder/hoarder-data"
data: data:
- secretKey: BUCKET_ENDPOINT - secretKey: BUCKET_ENDPOINT
remoteRef: remoteRef:

View File

@@ -1,19 +1,21 @@
apiVersion: volsync.backube/v1alpha1 apiVersion: volsync.backube/v1alpha1
kind: ReplicationSource kind: ReplicationSource
metadata: metadata:
name: actual-data-backup-source name: hoarder-data-backup-source
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: actual-data-backup-source app.kubernetes.io/name: hoarder-data-backup-source
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
sourcePVC: actual-data sourcePVC: hoarder-data
trigger: trigger:
schedule: 0 4 * * * schedule: 0 4 * * *
restic: restic:
pruneIntervalDays: 7 pruneIntervalDays: 7
repository: actual-data-backup-secret repository: hoarder-data-backup-secret
retain: retain:
hourly: 1 hourly: 1
daily: 3 daily: 3

View File

@@ -1,4 +1,4 @@
karakeep: hoarder:
controllers: controllers:
main: main:
type: deployment type: deployment
@@ -8,82 +8,54 @@ karakeep:
containers: containers:
main: main:
image: image:
repository: ghcr.io/karakeep-app/karakeep repository: ghcr.io/hoarder-app/hoarder
tag: 0.26.0 tag: 0.23.0
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: DATA_DIR - name: DATA_DIR
value: /data value: /data
- name: DB_WAL_MODE
value: true
- name: NEXTAUTH_URL - name: NEXTAUTH_URL
value: https://karakeep.alexlebens.dev/ value: https://hoarder.alexlebens.dev/
- name: NEXTAUTH_SECRET - name: NEXTAUTH_SECRET
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: karakeep-key-secret name: hoarder-key-secret
key: key key: key
- name: PROMETHEUS_AUTH_TOKEN
valueFrom:
secretKeyRef:
name: karakeep-key-secret
key: prometheus-token
- name: ASSET_STORE_S3_ENDPOINT
value: http://rook-ceph-rgw-ceph-objectstore.rook-ceph.svc:80
- name: ASSET_STORE_S3_REGION
value: us-east-1
- name: ASSET_STORE_S3_BUCKET
valueFrom:
configMapKeyRef:
name: ceph-bucket-karakeep
key: BUCKET_NAME
- name: ASSET_STORE_S3_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: ceph-bucket-karakeep
key: AWS_ACCESS_KEY_ID
- name: ASSET_STORE_S3_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: ceph-bucket-karakeep
key: AWS_SECRET_ACCESS_KEY
- name: ASSET_STORE_S3_FORCE_PATH_STYLE
value: true
- name: MEILI_ADDR - name: MEILI_ADDR
value: http://karakeep-meilisearch.karakeep:7700 value: http://hoarder-meilisearch.hoarder:7700
- name: MEILI_MASTER_KEY - name: MEILI_MASTER_KEY
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: karakeep-meilisearch-master-key-secret name: hoarder-meilisearch-master-key-secret
key: MEILI_MASTER_KEY key: MEILI_MASTER_KEY
- name: BROWSER_WEB_URL - name: BROWSER_WEB_URL
value: http://karakeep.karakeep:9222 value: http://hoarder.hoarder:9222
- name: DISABLE_SIGNUPS - name: DISABLE_SIGNUPS
value: false value: false
- name: OAUTH_PROVIDER_NAME - name: OAUTH_PROVIDER_NAME
value: "Authentik" value: "Authentik"
- name: OAUTH_WELLKNOWN_URL - name: OAUTH_WELLKNOWN_URL
value: https://auth.alexlebens.dev/application/o/karakeep/.well-known/openid-configuration value: https://auth.alexlebens.dev/application/o/hoarder/.well-known/openid-configuration
- name: OAUTH_SCOPE - name: OAUTH_SCOPE
value: "openid email profile" value: "openid email profile"
- name: OAUTH_CLIENT_ID - name: OAUTH_CLIENT_ID
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: karakeep-oidc-secret name: hoarder-oidc-secret
key: AUTHENTIK_CLIENT_ID key: AUTHENTIK_CLIENT_ID
- name: OAUTH_CLIENT_SECRET - name: OAUTH_CLIENT_SECRET
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: karakeep-oidc-secret name: hoarder-oidc-secret
key: AUTHENTIK_CLIENT_SECRET key: AUTHENTIK_CLIENT_SECRET
- name: OLLAMA_BASE_URL - name: OLLAMA_BASE_URL
value: http://ollama-server-3.ollama:11434 value: http://ollama-server-1.ollama:11434
- name: OLLAMA_KEEP_ALIVE - name: OLLAMA_KEEP_ALIVE
value: 5m value: 5m
- name: INFERENCE_TEXT_MODEL - name: INFERENCE_TEXT_MODEL
value: gemma3:4b value: llama3.1:8b
- name: INFERENCE_IMAGE_MODEL - name: INFERENCE_IMAGE_MODEL
value: granite3.2-vision:2b value: llama3.2-vision:11b
- name: EMBEDDING_TEXT_MODEL - name: EMBEDDING_TEXT_MODEL
value: mxbai-embed-large value: mxbai-embed-large
- name: INFERENCE_JOB_TIMEOUT_SEC - name: INFERENCE_JOB_TIMEOUT_SEC
@@ -108,6 +80,8 @@ karakeep:
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 128Mi
serviceAccount:
create: true
service: service:
main: main:
controller: main controller: main
@@ -135,9 +109,8 @@ meilisearch:
environment: environment:
MEILI_NO_ANALYTICS: true MEILI_NO_ANALYTICS: true
MEILI_ENV: production MEILI_ENV: production
MEILI_EXPERIMENTAL_DUMPLESS_UPGRADE: true
auth: auth:
existingMasterKeySecret: karakeep-meilisearch-master-key-secret existingMasterKeySecret: hoarder-meilisearch-master-key-secret
service: service:
type: ClusterIP type: ClusterIP
port: 7700 port: 7700
@@ -152,4 +125,4 @@ meilisearch:
serviceMonitor: serviceMonitor:
enabled: true enabled: true
cloudflared: cloudflared:
existingSecretName: karakeep-cloudflared-secret existingSecretName: hoarder-cloudflared-secret

View File

@@ -6,18 +6,18 @@ keywords:
- home-assistant - home-assistant
- home - home
- automation - automation
home: https://wiki.alexlebens.dev/s/5462c17e-cd39-4082-ad01-94545a2fa3ca home: https://wiki.alexlebens.dev/doc/home-assistant-
sources: sources:
- https://www.home-assistant.io/ - https://www.home-assistant.io/
- https://github.com/home-assistant/core - https://github.com/home-assistant/core
- https://github.com/home-assistant/core/pkgs/container/home-assistant - https://github.com/home-assistant/core/pkgs/container/home-assistant
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: home-assistant alias: home-assistant
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/home-assistant.png icon: https://cdn.jsdelivr.net/gh/selfhst/icons/webp/home-assistant.webp
appVersion: 2025.5.2 appVersion: 2025.3.1

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: home-assistant-code-server-password-secret name: home-assistant-code-server-password-secret
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: home-assistant-code-server-password-secret app.kubernetes.io/name: home-assistant-code-server-password-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -26,26 +28,3 @@ spec:
key: /cl01tl/home-assistant/code-server/auth key: /cl01tl/home-assistant/code-server/auth
metadataPolicy: None metadataPolicy: None
property: SUDO_PASSWORD property: SUDO_PASSWORD
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: home-assistant-token-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: home-assistant-token-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: bearer-token
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/home-assistant/auth
metadataPolicy: None
property: bearer-token

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-home-assistant app.kubernetes.io/name: http-route-home-assistant
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:
@@ -36,6 +38,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-home-assistant-code-server app.kubernetes.io/name: http-route-home-assistant-code-server
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:

View File

@@ -6,12 +6,13 @@ metadata:
labels: labels:
app.kubernetes.io/name: home-assistant app.kubernetes.io/name: home-assistant
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: metrics
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
selector: selector:
matchLabels: matchLabels:
app.kubernetes.io/name: home-assistant app.kubernetes.io/name: home-assistant
app.kubernetes.io/service: home-assistant-main
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
endpoints: endpoints:
- port: http - port: http
@@ -19,5 +20,5 @@ spec:
scrapeTimeout: 1m scrapeTimeout: 1m
path: /api/prometheus path: /api/prometheus
bearerTokenSecret: bearerTokenSecret:
name: home-assistant-token-secret name: secretName
key: bearer-token key: secretKey

View File

@@ -9,19 +9,19 @@ home-assistant:
main: main:
image: image:
repository: ghcr.io/home-assistant/home-assistant repository: ghcr.io/home-assistant/home-assistant
tag: 2025.8.1 tag: 2025.3.3
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: TZ - name: TZ
value: US/Central value: US/Central
resources: resources:
requests: requests:
cpu: 50m cpu: 1
memory: 512Mi memory: 2Gi
code-server: code-server:
image: image:
repository: ghcr.io/linuxserver/code-server repository: ghcr.io/linuxserver/code-server
tag: 4.103.0@sha256:88cb90d06bbf300d99681be396e75b013429d561aa3c2f2a3fcbfb42d1bf8253 tag: 4.98.2@sha256:87fbf594ae4a6494d0623967fc4c7a42774945c9cf032b55c57128ca675f2221
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: TZ - name: TZ
@@ -39,6 +39,8 @@ home-assistant:
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 128Mi
serviceAccount:
create: true
service: service:
main: main:
controller: main controller: main
@@ -56,7 +58,6 @@ home-assistant:
protocol: HTTP protocol: HTTP
persistence: persistence:
config: config:
forceRename: home-assistant-config
storageClass: ceph-block storageClass: ceph-block
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 5Gi size: 5Gi

View File

@@ -5,23 +5,23 @@ description: Homepage
keywords: keywords:
- homepage - homepage
- dashboard - dashboard
home: https://wiki.alexlebens.dev/s/a5fabd91-3d89-4e2b-9417-06111aedaeaa home: https://wiki.alexlebens.dev/doc/homepage-dev-crZPAd8FEj
sources: sources:
- https://github.com/gethomepage/homepage - https://github.com/gethomepage/homepage
- https://github.com/cloudflare/cloudflared - https://github.com/cloudflare/cloudflared
- https://github.com/gethomepage/homepage/pkgs/container/homepage - https://github.com/gethomepage/homepage/pkgs/container/homepage
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/cloudflared - https://github.com/alexlebens/helm-charts/tree/main/charts/cloudflared
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: homepage alias: homepage
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
- name: cloudflared - name: cloudflared
alias: cloudflared alias: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts repository: https://gitea.alexlebens.dev/api/packages/alexlebens/helm
version: 1.20.0 version: 1.14.3
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/homepage.png icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/homepage.png
appVersion: v1.2.0 appVersion: v0.10.0

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: homepage-dev-cloudflared-secret name: homepage-dev-cloudflared-secret
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: homepage-dev-cloudflared-secret app.kubernetes.io/name: homepage-dev-cloudflared-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -11,7 +11,7 @@ homepage:
main: main:
image: image:
repository: ghcr.io/gethomepage/homepage repository: ghcr.io/gethomepage/homepage
tag: v1.4.5 tag: v1.0.4
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: HOMEPAGE_ALLOWED_HOSTS - name: HOMEPAGE_ALLOWED_HOSTS
@@ -20,6 +20,8 @@ homepage:
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 128Mi
serviceAccount:
create: true
configMaps: configMaps:
config: config:
enabled: true enabled: true
@@ -27,18 +29,18 @@ homepage:
docker.yaml: "" docker.yaml: ""
kubernetes.yaml: "" kubernetes.yaml: ""
settings.yaml: | settings.yaml: |
favicon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.svg favicon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/icon_white.png
headerStyle: clean headerStyle: clean
hideVersion: true hideVersion: true
color: zinc color: zinc
background: background:
image: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/background-5.png image: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/background-4.jpg
brightness: 50 brightness: 50
theme: dark theme: dark
disableCollapse: true disableCollapse: true
widgets.yaml: | widgets.yaml: |
- logo: - logo:
icon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.png icon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/icon_white.png
- datetime: - datetime:
text_size: xl text_size: xl
format: format:
@@ -57,25 +59,19 @@ homepage:
services.yaml: | services.yaml: |
- Applications: - Applications:
- Auth: - Auth:
icon: sh-authentik.webp icon: sh-authentik.svg
description: Authentik description: Authentik
href: https://auth.alexlebens.dev href: https://auth.alexlebens.dev
siteMonitor: https://auth.alexlebens.dev siteMonitor: https://auth.alexlebens.dev
statusStyle: dot statusStyle: dot
- Gitea: - Gitea:
icon: sh-gitea.webp icon: sh-gitea.svg
description: Gitea description: Gitea
href: https://gitea.alexlebens.dev href: https://gitea.alexlebens.dev
siteMonitor: https://gitea.alexlebens.dev siteMonitor: https://gitea.alexlebens.dev
statusStyle: dot statusStyle: dot
- Code:
icon: sh-visual-studio-code.webp
description: VS Code
href: https://codeserver.alexlebens.dev
siteMonitor: https://codeserver.alexlebens.dev
statusStyle: dot
- Site: - Site:
icon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.png icon: https://d21zlbwtcn424f.cloudfront.net/icon_white.png
description: Profile Website description: Profile Website
href: https://www.alexlebens.dev href: https://www.alexlebens.dev
siteMonitor: https://www.alexlebens.dev siteMonitor: https://www.alexlebens.dev
@@ -86,38 +82,32 @@ homepage:
href: https://directus.alexlebens.dev href: https://directus.alexlebens.dev
siteMonitor: https://directus.alexlebens.dev siteMonitor: https://directus.alexlebens.dev
statusStyle: dot statusStyle: dot
- Social Media Management:
icon: sh-postiz.webp
description: Postiz
href: https://postiz.alexlebens.dev
siteMonitor: https://postiz.alexlebens.dev
statusStyle: dot
- Chat: - Chat:
icon: sh-element.webp icon: sh-element.svg
description: Matrix description: Matrix
href: https://chat.alexlebens.dev href: https://chat.alexlebens.dev
siteMonitor: https://chat.alexlebens.dev siteMonitor: https://chat.alexlebens.dev
statusStyle: dot statusStyle: dot
- Wiki: - Wiki:
icon: sh-outline.webp icon: sh-outline.svg
description: Outline description: Outline
href: https://wiki.alexlebens.dev href: https://wiki.alexlebens.dev
siteMonitor: https://wiki.alexlebens.dev siteMonitor: https://wiki.alexlebens.dev
statusStyle: dot statusStyle: dot
- Passwords: - Passwords:
icon: sh-vaultwarden-light.webp icon: sh-vaultwarden-light.svg
description: Vaultwarden description: Vaultwarden
href: https://passwords.alexlebens.dev href: https://passwords.alexlebens.dev
siteMonitor: https://passwords.alexlebens.dev siteMonitor: https://passwords.alexlebens.dev
statusStyle: dot statusStyle: dot
- Bookmarks: - Bookmarks:
icon: sh-karakeep-light.webp icon: sh-hoarder-light.svg
description: Karakeep description: Hoader
href: https://karakeep.alexlebens.dev href: https://hoarder.alexlebens.dev
siteMonitor: https://karakeep.alexlebens.dev siteMonitor: https://hoarder.alexlebens.dev
statusStyle: dot statusStyle: dot
- RSS: - RSS:
icon: sh-freshrss.webp icon: sh-freshrss.svg
description: FreshRSS description: FreshRSS
href: https://rss.alexlebens.dev href: https://rss.alexlebens.dev
siteMonitor: https://rss.alexlebens.dev siteMonitor: https://rss.alexlebens.dev
@@ -135,7 +125,7 @@ homepage:
config: config:
enabled: true enabled: true
type: configMap type: configMap
name: homepage-dev name: homepage-dev-config
advancedMounts: advancedMounts:
main: main:
main: main:

View File

@@ -5,17 +5,17 @@ description: Homepage
keywords: keywords:
- homepage - homepage
- dashboard - dashboard
home: https://wiki.alexlebens.dev/s/a5fabd91-3d89-4e2b-9417-06111aedaeaa home: https://wiki.alexlebens.dev/doc/homepage-s2clWoI5EC
sources: sources:
- https://github.com/gethomepage/homepage - https://github.com/gethomepage/homepage
- https://github.com/gethomepage/homepage/pkgs/container/homepage - https://github.com/gethomepage/homepage/pkgs/container/homepage
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: homepage alias: homepage
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/homepage.png icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/homepage.png
appVersion: v1.2.0 appVersion: v0.10.0

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: homepage app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: homepage app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
rules: rules:
- apiGroups: - apiGroups:
@@ -26,20 +28,13 @@ rules:
- get - get
- list - list
- apiGroups: - apiGroups:
- traefik.containo.us
- traefik.io - traefik.io
resources: resources:
- ingressroutes - ingressroutes
verbs: verbs:
- get - get
- list - list
- apiGroups:
- gateway.networking.k8s.io
resources:
- httproutes
- gateways
verbs:
- get
- list
- apiGroups: - apiGroups:
- metrics.k8s.io - metrics.k8s.io
resources: resources:
@@ -48,3 +43,9 @@ rules:
verbs: verbs:
- get - get
- list - list
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions/status
verbs:
- get

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: homepage-keys-secret name: homepage-keys-secret
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: homepage-keys-secret app.kubernetes.io/name: homepage-keys-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-homepage app.kubernetes.io/name: http-route-homepage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: gitea-ps10rp app.kubernetes.io/name: gitea-ps10rp
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: tailscale
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
annotations: annotations:
tailscale.com/tailnet-fqdn: gitea-ps10rp.boreal-beaufort.ts.net tailscale.com/tailnet-fqdn: gitea-ps10rp.boreal-beaufort.ts.net
@@ -22,6 +24,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: home-ps10rp app.kubernetes.io/name: home-ps10rp
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: tailscale
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
annotations: annotations:
tailscale.com/tailnet-fqdn: home-ps10rp.boreal-beaufort.ts.net tailscale.com/tailnet-fqdn: home-ps10rp.boreal-beaufort.ts.net

View File

@@ -7,15 +7,11 @@ homepage:
annotations: annotations:
reloader.stakater.com/auto: "true" reloader.stakater.com/auto: "true"
strategy: Recreate strategy: Recreate
serviceAccount:
name: homepage
pod:
automountServiceAccountToken: true
containers: containers:
main: main:
image: image:
repository: ghcr.io/gethomepage/homepage repository: ghcr.io/gethomepage/homepage
tag: v1.4.5 tag: v1.0.4
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: HOMEPAGE_ALLOWED_HOSTS - name: HOMEPAGE_ALLOWED_HOSTS
@@ -28,9 +24,8 @@ homepage:
cpu: 10m cpu: 10m
memory: 256Mi memory: 256Mi
serviceAccount: serviceAccount:
homepage: create: true
enabled: true name: homepage
staticToken: true
configMaps: configMaps:
config: config:
enabled: true enabled: true
@@ -39,12 +34,12 @@ homepage:
kubernetes.yaml: | kubernetes.yaml: |
mode: cluster mode: cluster
settings.yaml: | settings.yaml: |
favicon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.svg favicon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/icon_white.png
headerStyle: clean headerStyle: clean
hideVersion: true hideVersion: true
color: zinc color: zinc
background: background:
image: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/background-5.png image: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/background-4.jpg
brightness: 50 brightness: 50
theme: dark theme: dark
disableCollapse: true disableCollapse: true
@@ -61,9 +56,6 @@ homepage:
- Code: - Code:
tab: Tools tab: Tools
icon: mdi-code-block-braces-#ffffff icon: mdi-code-block-braces-#ffffff
- Automation:
tab: Tools
icon: mdi-wrench-#ffffff
- Monitoring: - Monitoring:
tab: Tools tab: Tools
icon: mdi-chart-line-#ffffff icon: mdi-chart-line-#ffffff
@@ -99,7 +91,7 @@ homepage:
icon: mdi-cloud-#ffffff icon: mdi-cloud-#ffffff
widgets.yaml: | widgets.yaml: |
- logo: - logo:
icon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.png icon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/icon_white.png
- kubernetes: - kubernetes:
cluster: cluster:
show: true show: true
@@ -127,62 +119,50 @@ homepage:
services.yaml: | services.yaml: |
- Media: - Media:
- Plex: - Plex:
icon: sh-plex.webp icon: sh-plex.svg
description: Media server description: Media server
href: https://plex.alexlebens.net href: https://plex.alexlebens.net
siteMonitor: http://plex.plex:32400 siteMonitor: http://plex.plex:32400
statusStyle: dot statusStyle: dot
- Media Requests: - Media Requests:
icon: sh-overseerr.webp icon: sh-overseerr.svg
description: Overseer description: Overseer
href: https://overseerr.alexlebens.net href: https://overseerr.alexlebens.net
siteMonitor: http://overseerr.overseerr:80 siteMonitor: http://overseerr.overseerr:80
statusStyle: dot statusStyle: dot
- Jellyfin: - Jellyfin:
icon: sh-jellyfin.webp icon: sh-jellyfin.svg
description: Media server description: Media server
href: https://jellyfin.alexlebens.net href: https://jellyfin.alexlebens.net
siteMonitor: http://jellyfin.jellyfin:80 siteMonitor: http://jellyfin.jellyfin:80
statusStyle: dot statusStyle: dot
- Yamtrack:
icon: sh-yamtrack.webp
description: Watched Media Tracking
href: https://yamtrack.alexlebens.net
siteMonitor: http://yamtrack.yamtrack:80
statusStyle: dot
- Youtube Archive: - Youtube Archive:
icon: sh-tube-archivist-light.webp icon: sh-tube-archivist-light.png
description: TubeAchivist description: TubeAchivist
href: https://tubearchivist.alexlebens.net/login href: https://tubearchivist.alexlebens.net/login
siteMonitor: http://tubearchivist.tubearchivist:80 siteMonitor: http://tubearchivist.tubearchivist:80
statusStyle: dot statusStyle: dot
- Photos: - Photos:
icon: sh-immich.webp icon: sh-immich.svg
description: Immich description: Immich
href: https://immich.alexlebens.net href: https://immich.alexlebens.net
siteMonitor: http://immich-main.immich:2283 siteMonitor: http://immich-main.immich:2283
statusStyle: dot statusStyle: dot
- Pictures:
icon: sh-photoview.webp
description: Photoview
href: https://photoview.alexlebens.net
siteMonitor: http://photoview.photoview:80
statusStyle: dot
- Podcasts and Audiobooks: - Podcasts and Audiobooks:
icon: sh-audiobookshelf.webp icon: sh-audiobookshelf.svg
description: Audiobookshelf description: Audiobookshelf
href: https://audiobookshelf.alexlebens.net href: https://audiobookshelf.alexlebens.net
siteMonitor: http://audiobookshelf.audiobookshelf:80 siteMonitor: http://audiobookshelf.audiobookshelf:80
statusStyle: dot statusStyle: dot
- Books: - Books:
icon: sh-calibre-web.webp icon: sh-calibre-web-light.svg
description: Calibre Web Automated description: Calibre Web Automated
href: https://calibre.alexlebens.net href: https://calibre.alexlebens.net
siteMonitor: http://calibre-web-automated-main.calibre-web-automated:8083 siteMonitor: http://calibre-web-automated-main.calibre-web-automated:8083
statusStyle: dot statusStyle: dot
- Public: - Public:
- Site: - Site:
icon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.png icon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/icon_white.png
description: Profile Website description: Profile Website
href: https://www.alexlebens.dev href: https://www.alexlebens.dev
siteMonitor: https://www.alexlebens.dev siteMonitor: https://www.alexlebens.dev
@@ -193,63 +173,45 @@ homepage:
href: https://directus.alexlebens.dev href: https://directus.alexlebens.dev
siteMonitor: https://directus.alexlebens.dev siteMonitor: https://directus.alexlebens.dev
statusStyle: dot statusStyle: dot
- Social Media Management:
icon: sh-postiz.webp
description: Postiz
href: https://postiz.alexlebens.dev
siteMonitor: https://postiz.alexlebens.dev
statusStyle: dot
- Chat: - Chat:
icon: sh-element.webp icon: sh-element.svg
description: Matrix description: Matrix
href: https://chat.alexlebens.dev href: https://chat.alexlebens.dev
siteMonitor: https://chat.alexlebens.dev siteMonitor: https://chat.alexlebens.dev
statusStyle: dot statusStyle: dot
- Wiki: - Wiki:
icon: sh-outline.webp icon: sh-outline.svg
description: Outline description: Outline
href: https://wiki.alexlebens.dev href: https://wiki.alexlebens.dev
siteMonitor: https://wiki.alexlebens.dev siteMonitor: https://wiki.alexlebens.dev
statusStyle: dot statusStyle: dot
- Passwords: - Passwords:
icon: sh-vaultwarden-light.webp icon: sh-vaultwarden-light.svg
description: Vaultwarden description: Vaultwarden
href: https://passwords.alexlebens.dev href: https://passwords.alexlebens.dev
siteMonitor: https://passwords.alexlebens.dev siteMonitor: https://passwords.alexlebens.dev
statusStyle: dot statusStyle: dot
- Bookmarks: - Bookmarks:
icon: sh-karakeep-light.webp icon: sh-hoarder-light.svg
description: Karakeep description: Hoader
href: https://karakeep.alexlebens.dev href: https://hoarder.alexlebens.dev
siteMonitor: https://karakeep.alexlebens.dev siteMonitor: https://hoarder.alexlebens.dev
statusStyle: dot statusStyle: dot
- RSS: - RSS:
icon: sh-freshrss.webp icon: sh-freshrss.svg
description: FreshRSS description: FreshRSS
href: https://rss.alexlebens.dev href: https://rss.alexlebens.dev
siteMonitor: https://rss.alexlebens.dev siteMonitor: https://rss.alexlebens.dev
statusStyle: dot statusStyle: dot
- Internal: - Internal:
- Home Automation: - Home Automation:
icon: sh-home-assistant.webp icon: sh-home-assistant.svg
description: Home Assistant description: Home Assistant
href: https://home-assistant.alexlebens.net href: https://home-assistant.alexlebens.net
siteMonitor: http://home-assistant-main.home-assistant:80 siteMonitor: http://home-assistant-main.home-assistant:80
statusStyle: dot statusStyle: dot
- Budgeting:
icon: sh-actual-budget.webp
description: Actual
href: https://actual.alexlebens.net
siteMonitor: http://actual.actual:80
statusStyle: dot
- Project Management:
icon: sh-eigenfocus.webp
description: Eigenfocus
href: https://eigenfocus.alexlebens.net
siteMonitor: http://eigenfocus.eigenfocus:80
statusStyle: dot
- AI: - AI:
icon: sh-ollama.webp icon: sh-ollama-light.svg
description: Ollama description: Ollama
href: https://ollama.alexlebens.net href: https://ollama.alexlebens.net
siteMonitor: http://ollama-web.ollama:80 siteMonitor: http://ollama-web.ollama:80
@@ -261,118 +223,102 @@ homepage:
siteMonitor: https://stable-diffusion-pd05wd.boreal-beaufort.ts.net siteMonitor: https://stable-diffusion-pd05wd.boreal-beaufort.ts.net
statusStyle: dot statusStyle: dot
- Search: - Search:
icon: sh-searxng.webp icon: sh-searxng.svg
description: Searxng description: Searxng
href: https://searxng.alexlebens.net/ href: https://searxng.alexlebens.net/
siteMonitor: http://searxng-browser.searxng:80 siteMonitor: http://searxng-browser.searxng:80
statusStyle: dot statusStyle: dot
- Email: - Email:
icon: sh-roundcube.webp icon: sh-roundcube.svg
description: Roundcube description: Roundcube
href: https://mail.alexlebens.net href: https://mail.alexlebens.net
siteMonitor: http://roundcube.roundcube:80 siteMonitor: http://roundcube.roundcube:80
statusStyle: dot statusStyle: dot
- Wiki: - Wiki:
icon: sh-kiwix-light.webp icon: sh-kiwix-light.svg
description: Kiwix description: Kiwix
href: https://kiwix.alexlebens.net href: https://kiwix.alexlebens.net
siteMonitor: http://kiwix.kiwix:80 siteMonitor: http://kiwix.kiwix:80
statusStyle: dot statusStyle: dot
- Pictures:
icon: sh-photoview.svg
description: Photoview
href: https://photoview.alexlebens.net
siteMonitor: http://photoview.photoview:80
statusStyle: dot
- Code: - Code:
- Code (Public): - Code (Public):
icon: sh-gitea.webp icon: sh-gitea.svg
description: Gitea description: Gitea
href: https://gitea.alexlebens.dev href: https://gitea.alexlebens.dev
siteMonitor: https://gitea.alexlebens.dev siteMonitor: https://gitea.alexlebens.dev
statusStyle: dot statusStyle: dot
- Code (Local): - Code (Local):
icon: sh-gitea.webp icon: sh-gitea.svg
description: Gitea description: Gitea
href: https://gitea.alexlebens.net href: https://gitea.alexlebens.net
siteMonitor: https://gitea.alexlebens.net siteMonitor: https://gitea.alexlebens.net
statusStyle: dot statusStyle: dot
- Code (ps10rp): - Code (ps10rp):
icon: sh-gitea.webp icon: sh-gitea.svg
description: Gitea description: Gitea
href: https://gitea.lebens-home.net href: https://gitea.lebens-home.net
siteMonitor: https://gitea.lebens-home.net siteMonitor: https://gitea.lebens-home.net
statusStyle: dot statusStyle: dot
- IDE (Public): - IDE (Public):
icon: sh-visual-studio-code.webp icon: sh-visual-studio-code.svg
description: VS Code description: VS Code
href: https://codeserver.alexlebens.dev href: https://codeserver.alexlebens.dev
siteMonitor: https://codeserver.alexlebens.dev siteMonitor: https://codeserver.alexlebens.dev
statusStyle: dot statusStyle: dot
- IDE (Home Assistant): - IDE (Home Assistant):
icon: sh-visual-studio-code.webp icon: sh-visual-studio-code.svg
description: Edit config for Home Assistant description: Edit config for Home Assistant
href: https://home-assistant-code-server.alexlebens.net href: https://home-assistant-code-server.alexlebens.net
siteMonitor: http://home-assistant-code-server.home-assistant:8443 siteMonitor: http://home-assistant-code-server.home-assistant:8443
statusStyle: dot statusStyle: dot
- Continuous Deployment: - Continuous Deployment:
icon: sh-argo-cd.webp icon: sh-argo-cd.svg
description: ArgoCD description: ArgoCD
href: https://argocd.alexlebens.net href: https://argocd.alexlebens.net
siteMonitor: http://argocd-server.argocd:80 siteMonitor: http://argocd-server.argocd:80
statusStyle: dot statusStyle: dot
- Docker Deployment: namespace: argocd
icon: sh-komodo-light.webp - Workflows:
description: Komodo icon: sh-argo-cd.svg
href: https://komodo.alexlebens.net
siteMonitor: http://komodo.komodo:80
statusStyle: dot
- Automation:
- Deployment Workflows:
icon: sh-argo-cd.webp
description: Argo Workflows description: Argo Workflows
href: https://argo-workflows.alexlebens.net href: https://argo-workflows.alexlebens.net
siteMonitor: http://argo-workflows-server.argo-workflows:2746 siteMonitor: http://argo-workflows-server.argo-workflows:2746
statusStyle: dot statusStyle: dot
- API Workflows: namespace: argocd
icon: sh-n8n.webp - Deployment:
description: n8n icon: sh-komodo-light.svg
href: https://n8n.alexlebens.net description: Komodo
siteMonitor: http://n8n-main.n8n:80 href: https://komodo.alexlebens.net
statusStyle: dot siteMonitor: http://komodo.komodo:80
- Jobs:
icon: https://raw.githubusercontent.com/mshade/kronic/main/static/android-chrome-192x192.png
description: Kronic
href: https://kronic.alexlebens.net
siteMonitor: http://kronic.kronic:80
statusStyle: dot
- Uptime:
icon: sh-gatus.webp
description: Gatus
href: https://gatus.alexlebens.net
siteMonitor: http://gatus.gatus:80
statusStyle: dot
- Tools:
icon: sh-omnitools.webp
description: OmniTools
href: https://omni-tools.alexlebens.net
siteMonitor: http://omni-tools.omni-tools:80
statusStyle: dot statusStyle: dot
namespace: komodo
- Monitoring: - Monitoring:
- Kubernetes: - Kubernetes:
icon: sh-headlamp.webp icon: kubernetes.png
description: Headlamp description: Headlamp
href: https://headlamp.alexlebens.net href: https://headlamp.alexlebens.net
siteMonitor: http://headlamp.headlamp:80 siteMonitor: http://headlamp.headlamp:80
statusStyle: dot statusStyle: dot
- Network Monitoring: - Network Monitoring:
icon: sh-cilium.webp icon: cilium.png
description: Hubble for Cilium description: Hubble for Cilium
href: https://hubble.alexlebens.net href: https://hubble.alexlebens.net
siteMonitor: http://hubble-ui.kube-system:80 siteMonitor: http://hubble-ui.kube-system:80
statusStyle: dot statusStyle: dot
- Dashboard: - Dashboard:
icon: sh-grafana.webp icon: sh-grafana.svg
description: Grafana description: Grafana
href: https://grafana.alexlebens.net href: https://grafana.alexlebens.net
siteMonitor: http://grafana-main-service.grafana-operator:3000/api/health siteMonitor: http://grafana.grafana:80/api/health
statusStyle: dot statusStyle: dot
- Metrics: - Metrics:
icon: sh-prometheus.webp icon: sh-prometheus.svg
description: Prometheus description: Prometheus
href: https://prometheus.alexlebens.net href: https://prometheus.alexlebens.net
siteMonitor: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090 siteMonitor: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090
@@ -380,62 +326,39 @@ homepage:
widget: widget:
type: prometheus type: prometheus
url: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090 url: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090
- Alerting:
icon: sh-prometheus-light.webp
description: Alertmanager
href: https://alertmanager.alexlebens.net
siteMonitor: http://kube-prometheus-stack-alertmanager.kube-prometheus-stack:9093
statusStyle: dot
widget:
type: prometheusmetric
url: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090
refreshInterval: 120s
metrics:
- label: Alerts Active
query: alertmanager_alerts{state="active"}
- label: Metric Database Size
query: prometheus_tsdb_storage_blocks_bytes
format:
type: bytes
- Tautulli: - Tautulli:
icon: sh-tautulli.webp icon: sh-tautulli.svg
description: Plex Monitoring description: Plex Monitoring
href: https://tautulli.alexlebens.net href: https://tautulli.alexlebens.net
siteMonitor: http://tautulli.tautulli:80 siteMonitor: http://tautulli.tautulli:80
statusStyle: dot statusStyle: dot
- Jellystat: - Jellystat:
icon: sh-jellystat.webp icon: sh-jellystat.png
description: Jellyfin Monitoring description: Jellyfin Monitoring
href: https://jellystat.alexlebens.net href: https://jellystat.alexlebens.net
siteMonitor: http://jellystat.jellystat:80 siteMonitor: http://jellystat.jellystat:80
statusStyle: dot statusStyle: dot
- Services: - Services:
- Auth (Public): - Auth (Public):
icon: sh-authentik.webp icon: sh-authentik.svg
description: Authentik description: Authentik
href: https://auth.alexlebens.dev href: https://auth.alexlebens.dev
siteMonitor: https://auth.alexlebens.dev siteMonitor: https://auth.alexlebens.dev
statusStyle: dot statusStyle: dot
- Auth (Local): - Auth (Local):
icon: sh-authentik.webp icon: sh-authentik.svg
description: Authentik description: Authentik
href: https://authentik.alexlebens.net href: https://authentik.alexlebens.net
siteMonitor: http://authentik-server.authentik:80 siteMonitor: http://authentik-server.authentik:80
statusStyle: dot statusStyle: dot
- Email: - Email:
icon: sh-stalwart.webp icon: sh-stalwart-mail-server.svg
description: Stalwart description: Stalwart
href: https://stalwart.alexlebens.net href: https://stalwart.alexlebens.net
siteMonitor: http://stalwart.stalwart:80 siteMonitor: http://stalwart.stalwart:80
statusStyle: dot statusStyle: dot
- Notifications:
icon: sh-ntfy.webp
description: ntfy
href: https://ntfy.alexlebens.net
siteMonitor: http://ntfy.ntfy:80
statusStyle: dot
- Reverse Proxy: - Reverse Proxy:
icon: sh-traefik.webp icon: sh-traefik.svg
description: Traefik description: Traefik
href: https://traefik-cl01tl.alexlebens.net/dashboard/#/ href: https://traefik-cl01tl.alexlebens.net/dashboard/#/
siteMonitor: https://traefik-cl01tl.alexlebens.net/dashboard/#/ siteMonitor: https://traefik-cl01tl.alexlebens.net/dashboard/#/
@@ -444,20 +367,20 @@ homepage:
type: traefik type: traefik
url: https://traefik-cl01tl.alexlebens.net url: https://traefik-cl01tl.alexlebens.net
- Image Cache: - Image Cache:
icon: sh-harbor.webp icon: sh-harbor.svg
description: Harbor description: Harbor
href: https://harbor.alexlebens.net href: https://harbor.alexlebens.net
siteMonitor: http://harbor-portal.harbor:80 siteMonitor: http://harbor-portal.harbor:80
statusStyle: dot statusStyle: dot
- Hardware: - Hardware:
- Network Management (alexlebens.net): - Network Management (alexlebens.net):
icon: sh-ubiquiti-unifi.webp icon: sh-ubiquiti-unifi.svg
description: Unifi description: Unifi
href: https://unifi.alexlebens.net href: https://unifi.alexlebens.net
siteMonitor: https://unifi.alexlebens.net siteMonitor: https://unifi.alexlebens.net
statusStyle: dot statusStyle: dot
- Network Attached Storage: - Network Attached Storage:
icon: sh-synology-light.webp icon: sh-synology-light.svg
description: Synology description: Synology
href: https://synology.alexlebens.net href: https://synology.alexlebens.net
siteMonitor: https://synology.alexlebens.net siteMonitor: https://synology.alexlebens.net
@@ -469,7 +392,7 @@ homepage:
password: {{ "{{HOMEPAGE_VAR_SYNOLOGY_PASSWORD}}" }} password: {{ "{{HOMEPAGE_VAR_SYNOLOGY_PASSWORD}}" }}
volume: volume_2 volume: volume_2
- TV Tuner: - TV Tuner:
icon: sh-hdhomerun.webp icon: sh-hdhomerun.svg
description: HD Homerun description: HD Homerun
href: http://hdhr.alexlebens.net href: http://hdhr.alexlebens.net
siteMonitor: http://hdhr.alexlebens.net siteMonitor: http://hdhr.alexlebens.net
@@ -480,45 +403,45 @@ homepage:
tuner: 0 tuner: 0
fields: ["channels", "hd"] fields: ["channels", "hd"]
- KVM: - KVM:
icon: sh-pikvm-light.webp icon: sh-pikvm-light.svg
description: Pi KVM description: Pi KVM
href: https://pikvm.alexlebens.net href: https://pikvm.alexlebens.net
siteMonitor: https://pikvm.alexlebens.net siteMonitor: https://pikvm.alexlebens.net
statusStyle: dot statusStyle: dot
- Server Plug:
icon: sh-shelly.webp
description: Shelly
href: http://it05sp.alexlebens.net
siteMonitor: http://it05sp.alexlebens.net
statusStyle: dot
- Storage: - Storage:
- Cluster Storage: - Cluster Storage:
icon: sh-ceph.webp icon: ceph.png
description: Ceph description: Ceph
href: https://ceph.alexlebens.net href: https://ceph.alexlebens.net
siteMonitor: http://rook-ceph-mgr-dashboard.rook-ceph:7000 siteMonitor: http://rook-ceph-mgr-dashboard.rook-ceph:7000
statusStyle: dot statusStyle: dot
- Database: - Database:
icon: sh-pgadmin-light.webp icon: sh-pgadmin-light.svg
description: PGAdmin description: PGAdmin
href: https://pgadmin.alexlebens.net href: https://pgadmin.alexlebens.net
siteMonitor: http://pgadmin.pgadmin:80 siteMonitor: http://pgadmin.pgadmin:80
statusStyle: dot statusStyle: dot
- Database:
icon: sh-whodb.webp
description: WhoDB
href: https://whodb.alexlebens.net
siteMonitor: http://whodb.whodb:80
statusStyle: dot
- Secrets: - Secrets:
icon: sh-hashicorp-vault.webp icon: sh-hashicorp-vault.svg
description: Vault description: Vault
href: https://vault.alexlebens.net href: https://vault.alexlebens.net
siteMonitor: http://vault.vault:8200 siteMonitor: http://vault.vault:8200
statusStyle: dot statusStyle: dot
- Object Storage (Outline):
icon: sh-minio.svg
description: Minio Tenant
href: https://minio-outline.alexlebens.net
siteMonitor: http://minio-outline-console.outline:9090
statusStyle: dot
- Object Storage (Directus):
icon: sh-minio.svg
description: Minio Tenant
href: https://minio-directus.alexlebens.net
siteMonitor: http://minio-directus-console.directus:9090
statusStyle: dot
- TV Shows: - TV Shows:
- Sonarr: - Sonarr:
icon: sh-sonarr.webp icon: sh-sonarr.svg
description: TV Shows description: TV Shows
href: https://sonarr.alexlebens.net href: https://sonarr.alexlebens.net
siteMonitor: http://sonarr.sonarr:80 siteMonitor: http://sonarr.sonarr:80
@@ -530,7 +453,7 @@ homepage:
fields: ["wanted", "queued", "series"] fields: ["wanted", "queued", "series"]
enableQueue: false enableQueue: false
- Sonarr 4K: - Sonarr 4K:
icon: sh-sonarr.webp icon: sh-sonarr.svg
description: TV Shows 4K description: TV Shows 4K
href: https://sonarr-4k.alexlebens.net href: https://sonarr-4k.alexlebens.net
siteMonitor: http://sonarr-4k.sonarr-4k:80 siteMonitor: http://sonarr-4k.sonarr-4k:80
@@ -542,7 +465,7 @@ homepage:
fields: ["wanted", "queued", "series"] fields: ["wanted", "queued", "series"]
enableQueue: false enableQueue: false
- Sonarr Anime: - Sonarr Anime:
icon: sh-sonarr.webp icon: sh-sonarr.svg
description: Anime Shows description: Anime Shows
href: https://sonarr-anime.alexlebens.net href: https://sonarr-anime.alexlebens.net
siteMonitor: http://sonarr-anime.sonarr-anime:80 siteMonitor: http://sonarr-anime.sonarr-anime:80
@@ -555,7 +478,7 @@ homepage:
enableQueue: false enableQueue: false
- Movies: - Movies:
- Radarr: - Radarr:
icon: sh-radarr.webp icon: sh-radarr.svg
description: Movies description: Movies
href: https://radarr.alexlebens.net href: https://radarr.alexlebens.net
siteMonitor: http://radarr.radarr:80 siteMonitor: http://radarr.radarr:80
@@ -567,7 +490,7 @@ homepage:
fields: ["wanted", "queued", "movies"] fields: ["wanted", "queued", "movies"]
enableQueue: false enableQueue: false
- Radarr 4K: - Radarr 4K:
icon: sh-radarr-4k.webp icon: sh-radarr.svg
description: Movies 4K description: Movies 4K
href: https://radarr-4k.alexlebens.net href: https://radarr-4k.alexlebens.net
siteMonitor: http://radarr-4k.radarr-4k:80 siteMonitor: http://radarr-4k.radarr-4k:80
@@ -579,7 +502,7 @@ homepage:
fields: ["wanted", "queued", "movies"] fields: ["wanted", "queued", "movies"]
enableQueue: false enableQueue: false
- Radarr Anime: - Radarr Anime:
icon: sh-radarr-anime.webp icon: sh-radarr.svg
description: Anime Movies description: Anime Movies
href: https://radarr-anime.alexlebens.net href: https://radarr-anime.alexlebens.net
siteMonitor: http://radarr-anime.radarr-anime:80 siteMonitor: http://radarr-anime.radarr-anime:80
@@ -591,7 +514,7 @@ homepage:
fields: ["wanted", "queued", "movies"] fields: ["wanted", "queued", "movies"]
enableQueue: false enableQueue: false
- Radarr Stand Up: - Radarr Stand Up:
icon: sh-radarr-light-hybrid.webp icon: sh-radarr.svg
description: Stand Up description: Stand Up
href: https://radarr-standup.alexlebens.net href: https://radarr-standup.alexlebens.net
siteMonitor: http://radarr-standup.radarr-standup:80 siteMonitor: http://radarr-standup.radarr-standup:80
@@ -604,7 +527,7 @@ homepage:
enableQueue: false enableQueue: false
- Music: - Music:
- Lidarr: - Lidarr:
icon: sh-lidarr.webp icon: sh-lidarr.svg
description: Music description: Music
href: https://lidarr.alexlebens.net href: https://lidarr.alexlebens.net
siteMonitor: http://lidarr.lidarr:80 siteMonitor: http://lidarr.lidarr:80
@@ -615,20 +538,14 @@ homepage:
key: {{ "{{HOMEPAGE_VAR_LIDARR_KEY}}" }} key: {{ "{{HOMEPAGE_VAR_LIDARR_KEY}}" }}
fields: ["wanted", "queued", "artists"] fields: ["wanted", "queued", "artists"]
- LidaTube: - LidaTube:
icon: sh-lidatube.webp icon: sh-lidatube.png
description: Searches for Music description: Searches for Music
href: https://lidatube.alexlebens.net href: https://lidatube.alexlebens.net
siteMonitor: http://lidatube.lidatube:80 siteMonitor: http://lidatube.lidatube:80
statusStyle: dot statusStyle: dot
- Soulseek:
icon: sh-slskd.webp
description: slskd
href: https://slskd.alexlebens.net
siteMonitor: http://slskd.slskd:5030
statusStyle: dot
- Services (Servarr): - Services (Servarr):
- qBittorrent: - qBittorrent:
icon: sh-qbittorrent.webp icon: sh-qbittorrent.svg
description: P2P Downloads description: P2P Downloads
href: https://qbittorrent.alexlebens.net href: https://qbittorrent.alexlebens.net
siteMonitor: http://qbittorrent.qbittorrent:8080 siteMonitor: http://qbittorrent.qbittorrent:8080
@@ -638,31 +555,25 @@ homepage:
url: http://qbittorrent.qbittorrent:8080 url: http://qbittorrent.qbittorrent:8080
enableLeechProgress: true enableLeechProgress: true
- Prowlarr: - Prowlarr:
icon: sh-prowlarr.webp icon: sh-prowlarr.svg
description: Indexers description: Indexers
href: https://prowlarr.alexlebens.net href: https://prowlarr.alexlebens.net
siteMonitor: http://prowlarr.prowlarr:80 siteMonitor: http://prowlarr.prowlarr:80
statusStyle: dot statusStyle: dot
- Bazarr: - Soulseek:
icon: sh-bazarr.webp icon: sh-slskd.png
description: Indexers description: slskd
href: https://bazarr.alexlebens.net href: https://slskd.alexlebens.net
siteMonitor: http://bazarr.bazarr:80 siteMonitor: http://slskd.slskd:5030
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 statusStyle: dot
- CWA Downloader: - CWA Downloader:
icon: sh-calibre.webp icon: sh-calibre.png
description: Calibre Web Automated Book Downloader description: Calibre Web Automated Book Downloader
href: https://calibre-downloader.alexlebens.net href: https://calibre-downloader.alexlebens.net
siteMonitor: http://calibre-web-automated-downloader.calibre-web-automated:8084 siteMonitor: http://calibre-web-automated-downloader.calibre-web-automated:8084
statusStyle: dot statusStyle: dot
- Tdarr: - Tdarr:
icon: sh-tdarr.webp icon: sh-tdarr.png
description: Media transcoding and health checks description: Media transcoding and health checks
href: https://tdarr.alexlebens.net href: https://tdarr.alexlebens.net
siteMonitor: http://tdarr-web.tdarr:8265 siteMonitor: http://tdarr-web.tdarr:8265
@@ -672,13 +583,13 @@ homepage:
url: http://tdarr-web.tdarr:8265 url: http://tdarr-web.tdarr:8265
- Other Homes: - Other Homes:
- Dev: - Dev:
icon: sh-homepage.webp icon: sh-homepage.png
description: Public Homepage description: Public Homepage
href: https://home.alexlebens.dev href: https://home.alexlebens.dev
siteMonitor: https://home.alexlebens.dev siteMonitor: https://home.alexlebens.dev
statusStyle: dot statusStyle: dot
- Lebens Home: - Lebens Home:
icon: sh-homepage.webp icon: sh-homepage.png
description: Lebens Homepage description: Lebens Homepage
href: https://home-ps10rp.boreal-beaufort.ts.net href: https://home-ps10rp.boreal-beaufort.ts.net
siteMonitor: https://home-ps10rp.boreal-beaufort.ts.net siteMonitor: https://home-ps10rp.boreal-beaufort.ts.net
@@ -688,6 +599,9 @@ homepage:
- Github: - Github:
- abbr: GH - abbr: GH
href: https://github.com/alexlebens href: https://github.com/alexlebens
- Renovate:
- abbr: RN
href: https://developer.mend.io/[platform]/alexlebens/infrastructure
- Digital Ocean: - Digital Ocean:
- abbr: DO - abbr: DO
href: https://www.digitalocean.com/ href: https://www.digitalocean.com/
@@ -743,7 +657,7 @@ homepage:
config: config:
enabled: true enabled: true
type: configMap type: configMap
name: homepage name: homepage-config
advancedMounts: advancedMounts:
main: main:
main: main:

View File

@@ -1,21 +0,0 @@
apiVersion: v2
name: huntarr
version: 1.0.0
description: Huntarr
keywords:
- huntarr
- servarr
home: https://wiki.alexlebens.dev/s/831ca16e-d308-4d7b-9213-f841834c1181
sources:
- https://github.com/plexguide/Huntarr.io
- https://hub.docker.com/r/huntarr/huntarr
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: huntarr
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.2.0
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/huntarr.png
appVersion: 7.0.0

View File

@@ -1,28 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: http-route-huntarr
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: http-route-huntarr
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:
- huntarr.alexlebens.net
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- group: ''
kind: Service
name: huntarr
port: 80
weight: 100

View File

@@ -1,39 +0,0 @@
huntarr:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/plexguide/huntarr
tag: 8.1.15
pullPolicy: IfNotPresent
env:
- name: TZ
value: US/Central
resources:
requests:
cpu: 100m
memory: 256Mi
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 9705
protocol: HTTP
persistence:
config:
forceRename: huntarr-config
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 1Gi
advancedMounts:
main:
main:
- path: /config
readOnly: false

View File

@@ -5,22 +5,27 @@ description: Immich
keywords: keywords:
- immich - immich
- photos - photos
home: https://wiki.alexlebens.dev/s/9377ae08-2041-4b6d-bc2b-61a4f5e8faae home: https://wiki.alexlebens.dev/doc/immich-AVxvAWeWQ5
sources: sources:
- https://github.com/immich-app/immich - https://github.com/immich-app/immich
- https://github.com/valkey-io/valkey
- https://github.com/cloudnative-pg/cloudnative-pg - https://github.com/cloudnative-pg/cloudnative-pg
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/postgres-cluster - https://github.com/bitnami/charts/tree/main/bitnami/valkey
- https://github.com/alexlebens/helm-charts/charts/postgres-cluster
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: immich alias: immich
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
- name: valkey
version: 2.4.6
repository: oci://harbor.alexlebens.net/proxy-registry-1.docker.io/bitnamicharts
- name: postgres-cluster - name: postgres-cluster
alias: postgres-16-cluster alias: postgres-16-cluster
version: 6.4.4 version: 4.2.1
repository: oci://harbor.alexlebens.net/helm-charts repository: https://gitea.alexlebens.dev/api/packages/alexlebens/helm
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/immich.png icon: https://raw.githubusercontent.com/immich-app/immich/main/design/immich-logo.svg
appVersion: v1.132.3 appVersion: v1.123.0

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: immich-config-secret name: immich-config-secret
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: immich-config-secret app.kubernetes.io/name: immich-config-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: config
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -21,7 +23,7 @@ spec:
property: immich.json property: immich.json
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: immich-postgresql-16-cluster-backup-secret name: immich-postgresql-16-cluster-backup-secret
@@ -29,6 +31,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: immich-postgresql-16-cluster-backup-secret app.kubernetes.io/name: immich-postgresql-16-cluster-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: database
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-immich app.kubernetes.io/name: http-route-immich
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: immich-nfs-storage app.kubernetes.io/name: immich-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: immich-nfs-storage volumeName: immich-nfs-storage

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: immich-nfs-storage app.kubernetes.io/name: immich-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain

View File

@@ -1,32 +0,0 @@
apiVersion: redis.redis.opstreelabs.in/v1beta2
kind: RedisReplication
metadata:
name: redis-replication-immich
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: redis-replication-immich
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
clusterSize: 3
podSecurityContext:
runAsUser: 1000
fsGroup: 1000
kubernetesConfig:
image: quay.io/opstree/redis:v8.0.3
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 50m
memory: 128Mi
storage:
volumeClaimTemplate:
spec:
storageClassName: ceph-block
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
redisExporter:
enabled: true
image: quay.io/opstree/redis-exporter:v1.48.0

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: immich app.kubernetes.io/name: immich
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: metrics
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
selector: selector:
@@ -21,24 +23,3 @@ spec:
interval: 3m interval: 3m
scrapeTimeout: 1m scrapeTimeout: 1m
path: /metrics path: /metrics
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: redis-replication-immich
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: redis-replication-immich
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
redis-operator: "true"
env: production
spec:
selector:
matchLabels:
redis_setup_type: replication
endpoints:
- port: redis-exporter
interval: 30s
scrapeTimeout: 10s

View File

@@ -9,7 +9,7 @@ immich:
main: main:
image: image:
repository: ghcr.io/immich-app/immich-server repository: ghcr.io/immich-app/immich-server
tag: v1.132.3 tag: v1.129.0
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: TZ - name: TZ
@@ -21,7 +21,7 @@ immich:
- name: IMMICH_MACHINE_LEARNING_URL - name: IMMICH_MACHINE_LEARNING_URL
value: http://immich-machine-learning.immich:3003 value: http://immich-machine-learning.immich:3003
- name: REDIS_HOSTNAME - name: REDIS_HOSTNAME
value: redis-replication-immich-master value: immich-valkey-primary
- name: DB_VECTOR_EXTENSION - name: DB_VECTOR_EXTENSION
value: pgvecto.rs value: pgvecto.rs
- name: DB_HOSTNAME - name: DB_HOSTNAME
@@ -84,12 +84,13 @@ immich:
timeoutSeconds: 1 timeoutSeconds: 1
failureThreshold: 30 failureThreshold: 30
resources: resources:
limits:
gpu.intel.com/i915: 1
requests: requests:
gpu.intel.com/i915: 1 gpu.intel.com/i915: 1
cpu: 10m cpu: 10m
memory: 512Mi memory: 512Mi
limits:
gpu.intel.com/i915: 1
cpu: 2
machine-learning: machine-learning:
type: deployment type: deployment
replicas: 1 replicas: 1
@@ -99,7 +100,7 @@ immich:
main: main:
image: image:
repository: ghcr.io/immich-app/immich-machine-learning repository: ghcr.io/immich-app/immich-machine-learning
tag: v1.134.0 tag: v1.129.0
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: TRANSFORMERS_CACHE - name: TRANSFORMERS_CACHE
@@ -130,12 +131,16 @@ immich:
startup: startup:
enabled: false enabled: false
resources: resources:
limits:
gpu.intel.com/i915: 1
requests: requests:
gpu.intel.com/i915: 1 gpu.intel.com/i915: 1
cpu: 10m cpu: 10m
memory: 256Mi memory: 256Mi
limits:
gpu.intel.com/i915: 1
cpu: 8
memory: 10Gi
serviceAccount:
create: true
service: service:
main: main:
controller: main controller: main
@@ -171,6 +176,13 @@ immich:
readOnly: true readOnly: true
mountPropagation: None mountPropagation: None
subPath: immich.json subPath: immich.json
media:
existingClaim: immich-nfs-storage
advancedMounts:
main:
main:
- path: /usr/src/app/upload
readOnly: false
cache: cache:
storageClass: ceph-block storageClass: ceph-block
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
@@ -181,51 +193,44 @@ immich:
main: main:
- path: /cache - path: /cache
readOnly: false readOnly: false
media: valkey:
existingClaim: immich-nfs-storage architecture: standalone
advancedMounts: auth:
main: enabled: false
main: usePasswordFiles: false
- path: /usr/src/app/upload primary:
readOnly: false persistence:
enabled: false
replica:
persistence:
enabled: false
postgres-16-cluster: postgres-16-cluster:
# Tensorchord # Tensorchord
#--- https://github.com/immich-app/immich/discussions/9060 #--- https://github.com/immich-app/immich/discussions/9060
#--- https://docs.pgvecto.rs/admin/kubernetes.html #--- https://docs.pgvecto.rs/admin/kubernetes.html
#--- https://github.com/tensorchord/cloudnative-pgvecto.rs #--- https://github.com/tensorchord/cloudnative-pgvecto.rs
#--- https://github.com/immich-app/immich/discussions/17025
type: tensorchord type: tensorchord
mode: recovery mode: standalone
cluster: cluster:
image: image:
repository: ghcr.io/tensorchord/cloudnative-pgvecto.rs repository: ghcr.io/tensorchord/cloudnative-pgvecto.rs
tag: 16.3-v0.2.1 tag: 16.3-v0.2.1
storage:
storageClass: local-path
walStorage: walStorage:
storageClass: local-path storageClass: local-path
storage:
storageClass: local-path
resources: resources:
requests: requests:
memory: 384Mi memory: 384Mi
cpu: 200m cpu: 200m
monitoring: monitoring:
enabled: true enabled: true
prometheusRule:
enabled: true
postgresql: postgresql:
parameters: parameters:
shared_buffers: 256MB shared_buffers: 256MB
recovery:
method: objectStore
objectStore:
endpointURL: https://nyc3.digitaloceanspaces.com
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/immich/immich-postgresql-17-cluster
endpointCredentials: immich-postgresql-17-cluster-backup-secret
recoveryIndex: 2
backup: backup:
enabled: true enabled: true
endpointURL: https://nyc3.digitaloceanspaces.com endpointURL: https://nyc3.digitaloceanspaces.com
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/immich/immich-postgresql-16-cluster destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/immich/immich-postgresql-16-cluster
endpointCredentials: immich-postgresql-16-cluster-backup-secret endpointCredentials: immich-postgresql-16-cluster-backup-secret
backupIndex: 2 backupIndex: 2
retentionPolicy: "7d"

View File

@@ -9,17 +9,19 @@ keywords:
- tv shows - tv shows
- books - books
- music - music
home: https://wiki.alexlebens.dev/s/a58be5b0-7935-458a-b990-b45223e39d68 home: https://wiki.alexlebens.dev/doc/jellyfin-li98lrEiuA
sources: sources:
- https://github.com/jellyfin/jellyfin - https://github.com/jellyfin/jellyfin
- https://github.com/jellyfin/jellyfin-vue
- https://hub.docker.com/r/jellyfin/jellyfin - https://hub.docker.com/r/jellyfin/jellyfin
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/jellyfin/jellyfin-vue/pkgs/container/jellyfin-vue
- https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: jellyfin alias: jellyfin
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/jellyfin.png icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/jellyfin.png
appVersion: 10.10.7 appVersion: 10.10.3

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: jellyfin-config-backup-secret name: jellyfin-config-backup-secret
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: jellyfin-config-backup-secret app.kubernetes.io/name: jellyfin-config-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-jellyfin app.kubernetes.io/name: http-route-jellyfin
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: jellyfin-nfs-storage app.kubernetes.io/name: jellyfin-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: jellyfin-nfs-storage volumeName: jellyfin-nfs-storage
@@ -25,6 +27,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: jellyfin-youtube-nfs-storage app.kubernetes.io/name: jellyfin-youtube-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: jellyfin-youtube-nfs-storage volumeName: jellyfin-youtube-nfs-storage

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: jellyfin-nfs-storage app.kubernetes.io/name: jellyfin-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
@@ -31,6 +33,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: jellyfin-youtube-nfs-storage app.kubernetes.io/name: jellyfin-youtube-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: jellyfin-config-backup-source app.kubernetes.io/name: jellyfin-config-backup-source
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
sourcePVC: jellyfin-config sourcePVC: jellyfin-config
@@ -23,4 +25,3 @@ spec:
copyMethod: Snapshot copyMethod: Snapshot
storageClassName: ceph-block storageClassName: ceph-block
volumeSnapshotClassName: ceph-blockpool-snapshot volumeSnapshotClassName: ceph-blockpool-snapshot
cacheCapacity: 10Gi

View File

@@ -9,7 +9,7 @@ jellyfin:
main: main:
image: image:
repository: ghcr.io/jellyfin/jellyfin repository: ghcr.io/jellyfin/jellyfin
tag: 10.10.7 tag: 10.10.6
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: TZ - name: TZ
@@ -19,12 +19,15 @@ jellyfin:
- name: JELLYFIN_PublishedServerUrl - name: JELLYFIN_PublishedServerUrl
value: https://jellyfin.alexlebens.net/ value: https://jellyfin.alexlebens.net/
resources: resources:
limits:
gpu.intel.com/i915: 1
requests: requests:
gpu.intel.com/i915: 1 gpu.intel.com/i915: 1
cpu: 1 cpu: 1
memory: 2Gi memory: 2Gi
limits:
gpu.intel.com/i915: 1
cpu: 4
serviceAccount:
create: true
service: service:
main: main:
controller: main controller: main
@@ -35,10 +38,9 @@ jellyfin:
protocol: HTTP protocol: HTTP
persistence: persistence:
config: config:
forceRename: jellyfin-config
storageClass: ceph-block storageClass: ceph-block
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 100Gi size: 60Gi
retain: true retain: true
advancedMounts: advancedMounts:
main: main:

View File

@@ -5,23 +5,23 @@ description: Jellystat
keywords: keywords:
- jellystat - jellystat
- jellyfin - jellyfin
home: https://wiki.alexlebens.dev/s/d3fd2bf1-d2ab-4e94-a127-ee35f2d90142 home: https://wiki.alexlebens.dev/doc/jellystat-0FixP7GqGZ
sources: sources:
- https://github.com/CyferShepard/Jellystat - https://github.com/CyferShepard/Jellystat
- https://github.com/cloudnative-pg/cloudnative-pg - https://github.com/cloudnative-pg/cloudnative-pg
- https://hub.docker.com/r/cyfershepard/jellystat - https://hub.docker.com/r/cyfershepard/jellystat
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/postgres-cluster - https://github.com/alexlebens/helm-charts/charts/postgres-cluster
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: jellystat alias: jellystat
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
- name: postgres-cluster - name: postgres-cluster
alias: postgres-17-cluster alias: postgres-17-cluster
version: 6.4.4 version: 4.2.1
repository: oci://harbor.alexlebens.net/helm-charts repository: https://gitea.alexlebens.dev/api/packages/alexlebens/helm
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/jellystat.png icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/jellystat.png
appVersion: 1.1.6 appVersion: 1.1.1

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: jellystat-secret name: jellystat-secret
@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: jellystat-secret app.kubernetes.io/name: jellystat-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -35,7 +37,7 @@ spec:
property: password property: password
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: jellystat-data-backup-secret name: jellystat-data-backup-secret
@@ -43,6 +45,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: jellystat-data-backup-secret app.kubernetes.io/name: jellystat-data-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
@@ -92,7 +96,7 @@ spec:
property: secret_key property: secret_key
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: jellystat-postgresql-17-cluster-backup-secret name: jellystat-postgresql-17-cluster-backup-secret
@@ -100,6 +104,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: jellystat-postgresql-17-cluster-backup-secret app.kubernetes.io/name: jellystat-postgresql-17-cluster-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: database
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-jellystat app.kubernetes.io/name: http-route-jellystat
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: jellystat-data-backup-source app.kubernetes.io/name: jellystat-data-backup-source
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: backup
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
sourcePVC: jellystat-data sourcePVC: jellystat-data

View File

@@ -9,7 +9,7 @@ jellystat:
main: main:
image: image:
repository: cyfershepard/jellystat repository: cyfershepard/jellystat
tag: 1.1.6 tag: 1.1.3
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: TZ - name: TZ
@@ -58,6 +58,8 @@ jellystat:
requests: requests:
cpu: 10m cpu: 10m
memory: 256Mi memory: 256Mi
serviceAccount:
create: true
service: service:
main: main:
controller: main controller: main
@@ -68,7 +70,6 @@ jellystat:
protocol: HTTP protocol: HTTP
persistence: persistence:
data: data:
forceRename: jellystat-data
storageClass: ceph-block storageClass: ceph-block
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 5Gi size: 5Gi
@@ -81,25 +82,16 @@ jellystat:
postgres-17-cluster: postgres-17-cluster:
mode: standalone mode: standalone
cluster: cluster:
storage:
storageClass: local-path
walStorage: walStorage:
storageClass: local-path storageClass: local-path
storage:
storageClass: local-path
monitoring: monitoring:
enabled: true enabled: true
prometheusRule:
enabled: true
recovery:
method: objectStore
objectStore:
endpointURL: https://nyc3.digitaloceanspaces.com
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/jellystat/jellystat-postgresql-17-cluster
endpointCredentials: jellystat-postgresql-17-cluster-backup-secret
recoveryIndex: 2
backup: backup:
enabled: true enabled: true
endpointURL: https://nyc3.digitaloceanspaces.com endpointURL: https://nyc3.digitaloceanspaces.com
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/jellystat/jellystat-postgresql-17-cluster destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/jellystat/jellystat-postgresql-17-cluster
endpointCredentials: jellystat-postgresql-17-cluster-backup-secret endpointCredentials: jellystat-postgresql-17-cluster-backup-secret
backupIndex: 2 backupIndex: 2
retentionPolicy: "3d" retentionPolicy: "7d"

View File

@@ -1,32 +0,0 @@
apiVersion: v2
name: karakeep
version: 1.0.0
description: Karakeep
keywords:
- karakeep
- bookmarks
home: https://wiki.alexlebens.dev/s/f8177591-8253-4e21-82d5-a556f0aeafad
sources:
- https://github.com/karakeep-app/karakeep
- https://github.com/cloudflare/cloudflared
- https://github.com/meilisearch/meilisearch
- https://github.com/karakeep-app/karakeep/pkgs/container/karakeep
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
- https://github.com/meilisearch/meilisearch-kubernetes/tree/main/charts/meilisearch
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/cloudflared
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: karakeep
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.2.0
- name: meilisearch
version: 0.15.0
repository: https://meilisearch.github.io/meilisearch-kubernetes
- name: cloudflared
alias: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts
version: 1.20.0
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/webp/karakeep.webp
appVersion: 0.26.0

View File

@@ -1,11 +0,0 @@
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: ceph-bucket-karakeep
labels:
app.kubernetes.io/name: ceph-bucket-karakeep
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
generateBucketName: bucket-karakeep
storageClassName: ceph-bucket

View File

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

View File

@@ -1,23 +0,0 @@
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: karakeep
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: karakeep
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
endpoints:
- port: http
interval: 30s
scrapeTimeout: 15s
path: /api/metrics
authorization:
credentials:
key: prometheus-token
name: karakeep-key-secret
selector:
matchLabels:
app.kubernetes.io/name: karakeep
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -5,17 +5,17 @@ description: Kiwix
keywords: keywords:
- kiwix - kiwix
- wikipedia - wikipedia
home: https://wiki.alexlebens.dev/s/16eaaf92-3607-421f-bc66-cb3c39eeaea0 home: https://wiki.alexlebens.dev/doc/kiwix-
sources: sources:
- https://github.com/kiwix - https://github.com/kiwix
- https://github.com/kiwix/kiwix-tools/pkgs/container/kiwix-serve - https://github.com/kiwix/kiwix-tools/pkgs/container/kiwix-serve
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: app-template - name: app-template
alias: kiwix alias: kiwix
repository: https://bjw-s-labs.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
version: 4.2.0 version: 3.7.3
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/kiwix-dark.png icon: https://cdn.jsdelivr.net/gh/selfhst/icons/svg/kiwix-light.svg
appVersion: 3.7.0 appVersion: 3.7.0

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: http-route-kiwix app.kubernetes.io/name: http-route-kiwix
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:

View File

@@ -6,6 +6,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: kiwix-nfs-storage app.kubernetes.io/name: kiwix-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: kiwix-nfs-storage volumeName: kiwix-nfs-storage

Some files were not shown because too many files have changed in this diff Show More