feat: add rybbit
Some checks failed
lint-test-helm / lint-helm (push) Successful in 18s
render-manifests-push / render-manifests-push (push) Successful in 1m8s
renovate / renovate (push) Failing after 4m5s

This commit is contained in:
2026-02-13 12:35:52 -06:00
parent 77f8e89bfa
commit 3110d3c4ee
6 changed files with 349 additions and 2 deletions

View File

@@ -164,6 +164,9 @@ gatus:
- name: booklore - name: booklore
url: https://booklore.alexlebens.net url: https://booklore.alexlebens.net
<<: *defaults <<: *defaults
- name: directus
url: https://directus.alexlebens.net
<<: *defaults
- name: home-assistant - name: home-assistant
url: https://home-assistant.alexlebens.net url: https://home-assistant.alexlebens.net
<<: *defaults <<: *defaults
@@ -338,8 +341,8 @@ gatus:
url: https://www.alexlebens.dev url: https://www.alexlebens.dev
<<: *defaults <<: *defaults
group: external group: external
- name: directus - name: rybbit
url: https://directus.alexlebens.net url: https://rybbit.alexlebens.dev
<<: *defaults <<: *defaults
group: external group: external
- name: postiz - name: postiz

View File

@@ -209,6 +209,12 @@ homepage:
href: https://directus.alexlebens.net href: https://directus.alexlebens.net
siteMonitor: http://directus.directus:80 siteMonitor: http://directus.directus:80
statusStyle: dot statusStyle: dot
- Analytics:
icon: sh-rybbit-light.webp
description: Rybbit
href: https://rybbit.alexlebens.dev
siteMonitor: http://rybbit-client.rybbit:80
statusStyle: dot
- Social Media Management: - Social Media Management:
icon: sh-postiz.webp icon: sh-postiz.webp
description: Postiz description: Postiz

View File

@@ -0,0 +1,15 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts
version: 2.3.0
- name: postgres-cluster
repository: oci://harbor.alexlebens.net/helm-charts
version: 7.5.1
- name: volsync-target
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.7.0
digest: sha256:b6b1968814ea914c329acfb41d7c40db8f33cdf4603832d28d12c9d7425504ff
generated: "2026-02-13T12:16:35.695373-06:00"

View File

@@ -0,0 +1,34 @@
apiVersion: v2
name: rybbit
version: 1.0.0
description: Rybbit
keywords:
- rybbit
- analytics
home: https://wiki.alexlebens.dev/s/
sources:
- https://github.com/rybbit-io/rybbit
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/cloudflared
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/postgres-cluster
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: rybbit
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts
version: 2.3.0
- name: postgres-cluster
alias: postgres-18-cluster
version: 7.5.1
repository: oci://harbor.alexlebens.net/helm-charts
- name: volsync-target
alias: volsync-target-config
version: 0.7.0
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/rybbit.webp
# renovate: datasource=github-releases depName=rybbit-io/rybbit
appVersion: v2.4.0

View File

@@ -0,0 +1,42 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: rybbit-config-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: rybbit-config-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: clickhouse-user
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/rybbit/clickhouse
metadataPolicy: None
property: user
- secretKey: clickhouse-password
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/rybbit/clickhouse
metadataPolicy: None
property: password
- secretKey: better-auth-secret
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/rybbit/auth
metadataPolicy: None
property: better-auth-secret
- secretKey: mapbox-token
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/rybbit/auth
metadataPolicy: None
property: mapbox-token

View File

@@ -0,0 +1,247 @@
rybbit:
controllers:
backend:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/rybbit-io/rybbit-backend
tag: v2.4.0
pullPolicy: IfNotPresent
env:
- name: NODE_ENV
value: production
- name: CLICKHOUSE_HOST
value: http://rybbit-clickhouse.rybbit:8123
- name: CLICKHOUSE_DB
value: analytics
- name: CLICKHOUSE_USER
valueFrom:
secretKeyRef:
name: rybbit-config-secret
key: clickhouse-user
- name: CLICKHOUSE_PASSWORD
valueFrom:
secretKeyRef:
name: rybbit-config-secret
key: clickhouse-password
- name: POSTGRES_HOST
valueFrom:
secretKeyRef:
name: rybbit-postgresql-18-cluster-app
key: host
- name: POSTGRES_PORT
valueFrom:
secretKeyRef:
name: rybbit-postgresql-18-cluster-app
key: port
- name: POSTGRES_DB
valueFrom:
secretKeyRef:
name: rybbit-postgresql-18-cluster-app
key: database
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: rybbit-postgresql-18-cluster-app
key: user
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: rybbit-postgresql-18-cluster-app
key: password
- name: BETTER_AUTH_SECRET
valueFrom:
secretKeyRef:
name: rybbit-config-secret
key: better-auth-secret
- name: BASE_URL
value: https://rybbit.alexlebens.dev
- name: DISABLE_SIGNUP
value: false
- name: DISABLE_TELEMETRY
value: true
- name: MAPBOX_TOKEN
valueFrom:
secretKeyRef:
name: rybbit-config-secret
key: mapbox-token
probes:
liveness:
enabled: true
custom: true
spec:
exec:
command:
- CMD
- wget
- --no-verbose
- --tries=1
- --spider
- http://127.0.0.1:3001/api/health
failureThreshold: 5
initialDelaySeconds: 10
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
resources:
requests:
cpu: 10m
memory: 256Mi
client:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/rybbit-io/rybbit-client
tag: v2.4.0
pullPolicy: IfNotPresent
env:
- name: NODE_ENV
value: production
- name: NEXT_PUBLIC_BACKEND_URL
value: https://rybbit.alexlebens.dev
- name: NEXT_PUBLIC_DISABLE_SIGNUP
value: false
resources:
requests:
cpu: 10m
memory: 256Mi
clickhouse:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: clickhouse/clickhouse-server
tag: 25.4.2
pullPolicy: IfNotPresent
env:
- name: CLICKHOUSE_DB
value: analytics
- name: CLICKHOUSE_USER
valueFrom:
secretKeyRef:
name: rybbit-config-secret
key: clickhouse-user
- name: CLICKHOUSE_PASSWORD
valueFrom:
secretKeyRef:
name: rybbit-config-secret
key: clickhouse-password
probes:
liveness:
enabled: true
custom: true
spec:
exec:
command:
- CMD
- wget
- --no-verbose
- --tries=1
- --spider
- http://localhost:8123/ping
failureThreshold: 5
initialDelaySeconds: 10
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
resources:
requests:
cpu: 10m
memory: 256Mi
service:
backend:
controller: backend
ports:
http:
port: 3001
targetPort: 3001
protocol: HTTP
client:
controller: client
ports:
http:
port: 80
targetPort: 3002
protocol: TCP
clickhouse:
controller: clickhouse
ports:
http:
port: 8123
targetPort: 8123
protocol: TCP
persistence:
clickhouse:
forceRename: clickhouse-data
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 10Gi
retain: true
advancedMounts:
clickhouse:
main:
- path: /var/lib/clickhouse
readOnly: false
postgres-18-cluster:
mode: standalone
recovery:
method: objectStore
objectStore:
index: 1
backup:
objectStore:
- name: garage-local
index: 1
destinationBucket: postgres-backups
externalSecretCredentialPath: /garage/home-infra/postgres-backups
isWALArchiver: true
# - name: garage-remote
# index: 1
# destinationBucket: postgres-backups
# externalSecretCredentialPath: /garage/home-infra/postgres-backups
# retentionPolicy: "90d"
# data:
# compression: bzip2
# - name: external
# index: 1
# endpointURL: https://nyc3.digitaloceanspaces.com
# destinationBucket: postgres-backups-ce540ddf106d186bbddca68a
# externalSecretCredentialPath: /garage/home-infra/postgres-backups
# isWALArchiver: false
scheduledBackups:
- name: live-backup
suspend: true
immediate: true
schedule: "0 0 0 * * *"
backupName: garage-local
# - name: weekly-backup
# suspend: true
# immediate: true
# schedule: "0 0 4 * * SAT"
# backupName: garage-remote
# - name: daily-backup
# suspend: true
# immediate: true
# schedule: "0 0 0 * * *"
# backupName: external
volsync-target-clickhouse-data:
pvcTarget: clickhouse-data
local:
enabled: false
schedule: 38 11 * * *
remote:
enabled: false
external:
enabled: false
schedule: 38 12 * * *