♻️ web-tools

This commit is contained in:
auricom
2022-09-15 23:39:14 +02:00
parent 1dca665577
commit be649e6ae3
14 changed files with 379 additions and 9 deletions

View File

@@ -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

View 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

View File

@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- helm-release.yaml
- secret.sops.yaml
patchesStrategicMerge:
- patches/postgres.yaml

View 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

View 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

View File

@@ -4,5 +4,8 @@ kind: Kustomization
namespace: default
resources:
- freshrss
- joplin
- music-transcode
- theme-park
- vaultwarden
- whoogle

View 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

View File

@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- helm-release.yaml
- secret.sops.yaml
patchesStrategicMerge:
- patches/postgres.yaml

View 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

View 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

View 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

View File

@@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- helm-release.yaml