mirror of
https://github.com/auricom/home-cluster.git
synced 2025-09-30 23:45:25 +02:00
♻️ web-tools
This commit is contained in:
@@ -25,8 +25,6 @@ spec:
|
||||
- name: postgres
|
||||
namespace: default
|
||||
values:
|
||||
global:
|
||||
nameOverride: *app
|
||||
image:
|
||||
repository: freshrss/freshrss
|
||||
tag: 1.20.0
|
||||
@@ -44,6 +42,8 @@ spec:
|
||||
enabled: true
|
||||
existingClaim: freshrss-config
|
||||
mountPath: /var/www/FreshRSS/data
|
||||
podAnnotations:
|
||||
secret.reloader.stakater.com/reload: *app
|
||||
ingress:
|
||||
main:
|
||||
enabled: true
|
||||
|
67
cluster/apps/web-tools/joplin/helm-release.yaml
Normal file
67
cluster/apps/web-tools/joplin/helm-release.yaml
Normal file
@@ -0,0 +1,67 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: &app joplin
|
||||
namespace: default
|
||||
spec:
|
||||
interval: 15m
|
||||
chart:
|
||||
spec:
|
||||
chart: app-template
|
||||
version: 0.1.1
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: bjw-s-charts
|
||||
namespace: flux-system
|
||||
install:
|
||||
createNamespace: true
|
||||
remediation:
|
||||
retries: 5
|
||||
upgrade:
|
||||
remediation:
|
||||
retries: 5
|
||||
dependsOn:
|
||||
- name: postgres
|
||||
namespace: default
|
||||
values:
|
||||
global:
|
||||
nameOverride: *app
|
||||
image:
|
||||
repository: joplin/server
|
||||
tag: 2.7.4-beta
|
||||
env:
|
||||
APP_BASE_URL: https://joplin.${SECRET_CLUSTER_DOMAIN}
|
||||
APP_PORT: 80
|
||||
DB_CLIENT: pg
|
||||
POSTGRES_HOST: postgres-rw.default.svc.cluster.local
|
||||
POSTGRES_PORT: 5432
|
||||
POSTGRES_DATABASE: joplin
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: *app
|
||||
podAnnotations:
|
||||
secret.reloader.stakater.com/reload: *app
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
http:
|
||||
port: 80
|
||||
ingress:
|
||||
main:
|
||||
enabled: true
|
||||
ingressClassName: "nginx"
|
||||
annotations:
|
||||
external-dns.home.arpa/enabled: "true"
|
||||
hosts:
|
||||
- host: &host "{{ .Release.Name }}.${SECRET_CLUSTER_DOMAIN}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
- *host
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 256Mi
|
7
cluster/apps/web-tools/joplin/kustomization.yaml
Normal file
7
cluster/apps/web-tools/joplin/kustomization.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- helm-release.yaml
|
||||
- secret.sops.yaml
|
||||
patchesStrategicMerge:
|
||||
- patches/postgres.yaml
|
31
cluster/apps/web-tools/joplin/patches/postgres.yaml
Normal file
31
cluster/apps/web-tools/joplin/patches/postgres.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: joplin
|
||||
namespace: default
|
||||
spec:
|
||||
values:
|
||||
initContainers:
|
||||
init-db:
|
||||
image: ghcr.io/onedr0p/postgres-initdb:14.5
|
||||
env:
|
||||
- name: POSTGRES_HOST
|
||||
value: postgres-rw.default.svc.cluster.local
|
||||
- name: POSTGRES_DB
|
||||
value: joplin
|
||||
- name: POSTGRES_SUPER_PASS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgres-superuser
|
||||
key: password
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: joplin
|
||||
key: POSTGRES_USER
|
||||
- name: POSTGRES_PASS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: joplin
|
||||
key: POSTGRES_PASSWORD
|
30
cluster/apps/web-tools/joplin/secret.sops.yaml
Normal file
30
cluster/apps/web-tools/joplin/secret.sops.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
# yamllint disable
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: joplin
|
||||
namespace: default
|
||||
type: Opaque
|
||||
stringData:
|
||||
POSTGRES_USER: ENC[AES256_GCM,data:jNdktSC6,iv:MMJlnCvXm5w5fWU/oe3bJINrZNbzkJIs3bAqGswrEFA=,tag:iw38sQO32V1eR8XNyAV2gQ==,type:str]
|
||||
POSTGRES_PASSWORD: ENC[AES256_GCM,data:cDAlN/Hr30o+sWpaSQNHMw==,iv:0/eswlxH8w2IQc3ca7XWcEmEojUnJQ6bo61NK+ip1pg=,tag:CnI75YyzApe9n5o8m7MZKw==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1hhurqwmfvl9m3vh3hk8urulfzcdsrep2ax2neazqt435yhpamu3qj20asg
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJaU16anJNV2pBZmxPR3h2
|
||||
bWREUnpjcTFvd05ZQ2E4VVBDdm1FL2k4WEYwCkdQSStTNWtpdjNkUW51WS9MekdC
|
||||
VkpTUUFjSjY2a1JMOUtqOVh5M0JRR2sKLS0tIDRmcWpJSEVvaUp4U1lsaTZYZGNw
|
||||
OGVKWU0zNUZJSFh4aFJxQWFsYm1VeFkKaDeI/hl7z0Qh8t5W39Kxu9ert1dt4xo+
|
||||
LX+MjpVqxiZNcfwROD4bkWeQSN+VsxoGOOyj4L15BlggNnlg+L7Hww==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2022-09-15T21:00:13Z"
|
||||
mac: ENC[AES256_GCM,data:MLJDC9OZG0lgOSI93kOso4XDwnh6plwn3RddjS5zG34Ja/T+i5BG52HwdYs+XUgQWFvawX9ZUGwarCrNmJTMaYAJzjDBEF4TzR+sF9pGAlAtraL5RKM5H8cr9Hwy7UkQxNvVJu1kZ7rCUDWhYp7x9jEuGzXpiZwlwDq+C1XwD3A=,iv:GAc/oGqtc8gkHM1XCuAB+N7+T8vxBHQ7WPQxXOSZUIY=,tag:JlXR6ANyyEZZHrONHkNSTg==,type:str]
|
||||
pgp: []
|
||||
encrypted_regex: ^(data|stringData)$
|
||||
version: 3.7.3
|
@@ -4,5 +4,8 @@ kind: Kustomization
|
||||
namespace: default
|
||||
resources:
|
||||
- freshrss
|
||||
- joplin
|
||||
- music-transcode
|
||||
- theme-park
|
||||
- vaultwarden
|
||||
- whoogle
|
||||
|
88
cluster/apps/web-tools/vaultwarden/helm-release.yaml
Normal file
88
cluster/apps/web-tools/vaultwarden/helm-release.yaml
Normal file
@@ -0,0 +1,88 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: &app vaultwarden
|
||||
namespace: default
|
||||
spec:
|
||||
interval: 15m
|
||||
chart:
|
||||
spec:
|
||||
chart: app-template
|
||||
version: 0.1.1
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: bjw-s-charts
|
||||
namespace: flux-system
|
||||
install:
|
||||
createNamespace: true
|
||||
remediation:
|
||||
retries: 5
|
||||
upgrade:
|
||||
remediation:
|
||||
retries: 5
|
||||
dependsOn:
|
||||
- name: postgres
|
||||
namespace: default
|
||||
values:
|
||||
image:
|
||||
repository: vaultwarden/server
|
||||
tag: 1.25.2
|
||||
env:
|
||||
DATA_FOLDER: "data"
|
||||
ICON_CACHE_FOLDER: "data/icon_cache"
|
||||
ATTACHMENTS_FOLDER: "data/attachments"
|
||||
DOMAIN: "https://vaultwarden.${SECRET_CLUSTER_DOMAIN}"
|
||||
TZ: "${TIMEZONE}"
|
||||
SIGNUPS_ALLOWED: "false"
|
||||
WEBSOCKET_ENABLED: "true"
|
||||
WEBSOCKET_ADDRESS: 0.0.0.0
|
||||
WEBSOCKET_PORT: 3012
|
||||
SMTP_HOST: smtp-relay.default.svc.cluster.local
|
||||
SMTP_FROM: vaultwarden@${SECRET_DOMAIN}
|
||||
SMTP_FROM_NAME: vaultwarden
|
||||
SMTP_PORT: 2525
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: *app
|
||||
podAnnotations:
|
||||
secret.reloader.stakater.com/reload: *app
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
http:
|
||||
port: 80
|
||||
websocket:
|
||||
enabled: true
|
||||
port: 3012
|
||||
persistence:
|
||||
data:
|
||||
enabled: true
|
||||
existingClaim: vaultwarden-data
|
||||
mountPath: /data
|
||||
ingress:
|
||||
main:
|
||||
enabled: true
|
||||
ingressClassName: "nginx"
|
||||
annotations:
|
||||
external-dns.home.arpa/enabled: "true"
|
||||
hosts:
|
||||
- host: &host "{{ .Release.Name }}.${SECRET_CLUSTER_DOMAIN}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
- path: /notifications/hub
|
||||
pathType: Prefix
|
||||
- path: /notifications/hub/negotiate
|
||||
pathType: Prefix
|
||||
service:
|
||||
port: 3012
|
||||
tls:
|
||||
- hosts:
|
||||
- *host
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
limits:
|
||||
memory: 2Gi
|
7
cluster/apps/web-tools/vaultwarden/kustomization.yaml
Normal file
7
cluster/apps/web-tools/vaultwarden/kustomization.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- helm-release.yaml
|
||||
- secret.sops.yaml
|
||||
patchesStrategicMerge:
|
||||
- patches/postgres.yaml
|
31
cluster/apps/web-tools/vaultwarden/patches/postgres.yaml
Normal file
31
cluster/apps/web-tools/vaultwarden/patches/postgres.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: vaultwarden
|
||||
namespace: default
|
||||
spec:
|
||||
values:
|
||||
initContainers:
|
||||
init-db:
|
||||
image: ghcr.io/onedr0p/postgres-initdb:14.5
|
||||
env:
|
||||
- name: POSTGRES_HOST
|
||||
value: postgres-rw.default.svc.cluster.local
|
||||
- name: POSTGRES_DB
|
||||
value: vaultwarden
|
||||
- name: POSTGRES_SUPER_PASS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgres-superuser
|
||||
key: password
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: vaultwarden
|
||||
key: POSTGRES_USER
|
||||
- name: POSTGRES_PASS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: vaultwarden
|
||||
key: POSTGRES_PASS
|
32
cluster/apps/web-tools/vaultwarden/secret.sops.yaml
Normal file
32
cluster/apps/web-tools/vaultwarden/secret.sops.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
# yamllint disable
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: vaultwarden
|
||||
namespace: default
|
||||
type: Opaque
|
||||
stringData:
|
||||
ADMIN_TOKEN: ENC[AES256_GCM,data:lckmNXsxah0qbl0Lj+U9ow9iL8i2UcELDBVHX/auyfqW+1Lp6QzutQ9A20m04y9RHRU8ifXo4mfaA5Bn6FvuYQ==,iv:qWBB0oeZJ7Bju+nGdrGZm/hjODi7vPVnRb6Qiw0jmFY=,tag:Sg5nfHjFx5jo6GD0GGglwg==,type:str]
|
||||
DATABASE_URL: ENC[AES256_GCM,data:u4ImZ9qoL26ZuSb+swKYYwA2b9TFLoCK4kikUDn1MjuL3VUEnc9s4+vGoNpUfIEeDVSiss2HS8hwovGZaATmHHZ2ZYbCvHEzkWeZFzRESAALRcySoJvWdc2MBztUlnR17OI=,iv:nQ8308NeVmdRane6aF9RJABhsrNcjpcKLiBwlWfrnoU=,tag:rqiOJyrCAama+0+O0y1EiQ==,type:str]
|
||||
POSTGRES_USER: ENC[AES256_GCM,data:C8AE1A15q9TnIqk=,iv:4B+9fmpVu6B4HyQ2FF6tiCBYBP8q88ExRfLZuyIbbIA=,tag:tCPk0oYjP2uQfKu6a4HP4g==,type:str]
|
||||
POSTGRES_PASS: ENC[AES256_GCM,data:er6JHXy0vxBperPCq3fWOWYh,iv:aUh/ZwFb4XWirA5V0/9O8dIsQHQlWJIqe8cq5WXAlv4=,tag:M++5dqnSyY5DVKyxaoCkMg==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1hhurqwmfvl9m3vh3hk8urulfzcdsrep2ax2neazqt435yhpamu3qj20asg
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJaU16anJNV2pBZmxPR3h2
|
||||
bWREUnpjcTFvd05ZQ2E4VVBDdm1FL2k4WEYwCkdQSStTNWtpdjNkUW51WS9MekdC
|
||||
VkpTUUFjSjY2a1JMOUtqOVh5M0JRR2sKLS0tIDRmcWpJSEVvaUp4U1lsaTZYZGNw
|
||||
OGVKWU0zNUZJSFh4aFJxQWFsYm1VeFkKaDeI/hl7z0Qh8t5W39Kxu9ert1dt4xo+
|
||||
LX+MjpVqxiZNcfwROD4bkWeQSN+VsxoGOOyj4L15BlggNnlg+L7Hww==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2022-09-15T21:35:50Z"
|
||||
mac: ENC[AES256_GCM,data:tFXnYyC/p3WV9675X1MdeVXZR67Byr5W0U6jIoAepTDvZNasFazUtyJbYoPTE+Jgw4KUeoPUuAi0THkTEu8h+qeXiCBAMw9RZzfYXgMqED0dc93fVpcqf/8FD4X4jG0EToFTkbwcVF3/WeRwVI4iCDZ255Cr+EAowIbGw5PrkuI=,iv:ZDOjJfrUNKIRrpz7/mAQqJ2hgkObLQS2zQVLJx2YSVA=,tag:SXUHk074gTFc/ErTD3j9FA==,type:str]
|
||||
pgp: []
|
||||
encrypted_regex: ^(data|stringData)$
|
||||
version: 3.7.3
|
74
cluster/apps/web-tools/whoogle/helm-release.yaml
Normal file
74
cluster/apps/web-tools/whoogle/helm-release.yaml
Normal file
@@ -0,0 +1,74 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: &app whoogle
|
||||
namespace: default
|
||||
spec:
|
||||
interval: 15m
|
||||
chart:
|
||||
spec:
|
||||
chart: app-template
|
||||
version: 0.1.1
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: bjw-s-charts
|
||||
namespace: flux-system
|
||||
install:
|
||||
createNamespace: true
|
||||
remediation:
|
||||
retries: 5
|
||||
upgrade:
|
||||
remediation:
|
||||
retries: 5
|
||||
values:
|
||||
controller:
|
||||
replicas: 2
|
||||
strategy: RollingUpdate
|
||||
image:
|
||||
repository: docker.io/benbusby/whoogle-search
|
||||
tag: 0.7.4
|
||||
env:
|
||||
WHOOGLE_ALT_TW: farside.link/nitter
|
||||
WHOOGLE_ALT_YT: farside.link/invidious
|
||||
WHOOGLE_ALT_IG: imginn.com
|
||||
WHOOGLE_ALT_RD: farside.link/libreddit
|
||||
WHOOGLE_ALT_MD: farside.link/scribe
|
||||
WHOOGLE_ALT_TL: farside.link/lingva
|
||||
WHOOGLE_ALT_IMG: farside.link/rimgo
|
||||
WHOOGLE_CONFIG_ALTS: 1
|
||||
WHOOGLE_CONFIG_COUNTRY: FR
|
||||
WHOOGLE_CONFIG_THEME: system
|
||||
WHOOGLE_CONFIG_URL: https://whoogle.${SECRET_CLUSTER_DOMAIN}/
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
http:
|
||||
port: 5000
|
||||
ingress:
|
||||
main:
|
||||
enabled: true
|
||||
ingressClassName: "nginx"
|
||||
annotations:
|
||||
external-dns.home.arpa/enabled: "true"
|
||||
hosts:
|
||||
- host: &host "{{ .Release.Name }}.${SECRET_CLUSTER_DOMAIN}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
- *host
|
||||
topologySpreadConstraints:
|
||||
- maxSkew: 1
|
||||
topologyKey: kubernetes.io/hostname
|
||||
whenUnsatisfiable: DoNotSchedule
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: *app
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 50Mi
|
||||
limits:
|
||||
memory: 250Mi
|
5
cluster/apps/web-tools/whoogle/kustomization.yaml
Normal file
5
cluster/apps/web-tools/whoogle/kustomization.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- helm-release.yaml
|
Reference in New Issue
Block a user