From c7ed28c9cf558328c2872c50ed44c1c943ea3091 Mon Sep 17 00:00:00 2001 From: David Liaw Date: Fri, 17 Jan 2025 20:04:31 +1100 Subject: [PATCH] feat(Hoarder): Initial commit --- apps/home/hoarder/app.yaml | 19 ++++++ apps/home/hoarder/app/helm-release.yaml | 65 +++++++++++++++++++ apps/home/hoarder/app/hoarder-data.yaml | 11 ++++ .../hoarder/app/hoarder-secrets.sops.yaml | 31 +++++++++ apps/home/hoarder/app/kustomization.yaml | 8 +++ apps/home/hoarder/app/meili-data.yaml | 11 ++++ apps/home/hoarder/kustomization.yaml | 5 ++ apps/home/kustomization.yaml | 3 +- 8 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 apps/home/hoarder/app.yaml create mode 100644 apps/home/hoarder/app/helm-release.yaml create mode 100644 apps/home/hoarder/app/hoarder-data.yaml create mode 100644 apps/home/hoarder/app/hoarder-secrets.sops.yaml create mode 100644 apps/home/hoarder/app/kustomization.yaml create mode 100644 apps/home/hoarder/app/meili-data.yaml create mode 100644 apps/home/hoarder/kustomization.yaml diff --git a/apps/home/hoarder/app.yaml b/apps/home/hoarder/app.yaml new file mode 100644 index 000000000..374597654 --- /dev/null +++ b/apps/home/hoarder/app.yaml @@ -0,0 +1,19 @@ +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: hoarder-app + namespace: flux-system +spec: + path: ./apps/home/hoarder/app + targetNamespace: home + interval: 10m + prune: true + sourceRef: + kind: GitRepository + name: flux-system + healthChecks: + - apiVersion: helm.toolkit.fluxcd.io/v2beta1 + kind: HelmRelease + name: hoarder + namespace: home diff --git a/apps/home/hoarder/app/helm-release.yaml b/apps/home/hoarder/app/helm-release.yaml new file mode 100644 index 000000000..a6ae949c9 --- /dev/null +++ b/apps/home/hoarder/app/helm-release.yaml @@ -0,0 +1,65 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: hoarder +spec: + interval: 5m + chart: + spec: + chart: app-template + version: 3.6.0 + sourceRef: + kind: HelmRepository + name: bjw-s-charts + namespace: flux-system + values: + controllers: + main: + containers: + main: + image: + repository: ghcr.io/hoarder-app/hoarder + tag: 0.21.0 + envFrom: + - secretRef: + name: hoarder-secrets + meili: + containers: + main: + image: + repository: getmeili/meilisearch + tag: v1.12.4 + envFrom: + - secretRef: + name: hoarder-secrets + service: + main: + controller: main + ports: + http: + port: 3000 + meili: + controller: meili + ports: + http: + port: 7700 + persistence: + hoarder-data: + existingClaim: hoarder-data + globalMounts: + - path: /data + meili-data: + existingClaim: meili-data + globalMounts: + - path: /meili_data + ingress: + main: + enabled: true + hosts: + - host: "hoard.${PUBLIC_HOSTNAME}" + paths: + - path: / + pathType: Prefix + service: + name: hoarder + port: 3000 \ No newline at end of file diff --git a/apps/home/hoarder/app/hoarder-data.yaml b/apps/home/hoarder/app/hoarder-data.yaml new file mode 100644 index 000000000..16bb05cfa --- /dev/null +++ b/apps/home/hoarder/app/hoarder-data.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: hoarder-data +spec: + storageClassName: longhorn-backup + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi \ No newline at end of file diff --git a/apps/home/hoarder/app/hoarder-secrets.sops.yaml b/apps/home/hoarder/app/hoarder-secrets.sops.yaml new file mode 100644 index 000000000..b514ed4c3 --- /dev/null +++ b/apps/home/hoarder/app/hoarder-secrets.sops.yaml @@ -0,0 +1,31 @@ +apiVersion: v1 +data: + CORE_DATABASE_URL: ENC[AES256_GCM,data:1LpFe21EEzPKk5D0CLtwW8xTiKLw+ho+Sh6FqPcGuGBpTw1Ueoo3dScV2Aj066/2LR0AkNPA2QrqSPlUwfGkftk1Rwh5yeGY6vy+NJzqjTykc0xh6pgn0f9WQqwhB6SVqmxOPNWizyo=,iv:8iCEpX24AnN63ZCdw1jRC2FplmL6bZB+/TqjVykVHx0=,tag:v+9VANvjQ5bNk0eZGovwew==,type:str] + NEXTAUTH_URL: ENC[AES256_GCM,data:STZG+7g1Pam2tCLreBEVW/gE5DygIJrkL00Z3Q==,iv:qZ5YM9Zz//zGBF+vkw1lfFDGX5/A2PIe0n0u15r25Iw=,tag:gpMhcHbThpFK6jJ5HzduLA==,type:str] + MEILI_MASTER_KEY: ENC[AES256_GCM,data:ErdBgVQzZkdmUIG0FUwzO7XVkzviygpAJl9q1SAqWyr7vlJ8Us1SM5lmahk1354RsoGzaI36M9sH/DGYwJ/30Q==,iv:XucBflxSwwQX2GfHYXjFDszcunv2wid1PWOTwLhXTgc=,tag:d+PCKNZKjiboRO8dWrFsXA==,type:str] + NEXTAUTH_SECRET: ENC[AES256_GCM,data:5DgPM1Te1WJx8/wV3mbdiOmapZorsT6OFqu61vgLhW5+dVnU46fipx9XbbgnDgGjRYfaAZhvAZLvl50EXCbMHQ==,iv:eVYpwZBGDXxhvcP7iMVpTGx90lNOK7AjTS3UFwtEJiY=,tag:OCIna+X4P9m7Kw5HiYF/Dg==,type:str] + MEILI_ADDR: ENC[AES256_GCM,data:wwOlHM9SXcCUM1HNJn/qXokAhQzvIMyv,iv:xQb5MqPYnc9sZjTTUrU4cBgZbxXdsJ39H578+1oplOM=,tag:1Egpu7l5xLbOiH1cG690XA==,type:str] + DATA_DIR: ENC[AES256_GCM,data:NqVt9UQDs5Q=,iv:Jj4PPPrN7/lMgvcY1/cJJAIsinAIjQgsPz3QcD+s9cg=,tag:N2m1negCpGCjBNaGsDJ/Vg==,type:str] +kind: Secret +metadata: + name: hoarder-secrets +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1mt3e0vdhgcxtcqfv0jhfdeejkk8f48elacyua387nekmnfufsd4qhtwmqn + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3bCs4QThvS1N1UFlSWmpp + UStxc1pNeU5ETmlIZ1l2Yy9xRkdoSlJmWmpRCkJJd3Jpb0Q4ZFVjblBuMzRNNHJP + ckMrSnJBRE92UTgreFVmRHB5b3NhTlUKLS0tIEoxM2hNVEd1TDJGajhva3EyV05s + eEhOdmhJMFJlbW4zRnJwbUVDdHErYmcKH1yCdGdtSqerlYQN8NCNHSHyph+Mehww + IcIoRV4dMx+r3i2DZ43qsUnodb+u/GNQeU8UjskWANgQAUEcK2bTuA== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-01-17T09:01:24Z" + mac: ENC[AES256_GCM,data:8FK48bwsUQCl+UTZ7rQ/7zvuFPC45aTWvxUOOEBBfKj1pFItzbz2ne7cgXDu5MSOy8tqpdBCHrlAvlgtqAKKAR/dkQp0AFNGd4T5ueH0yPzJGy2wAWaowRsP6QBFrqVOtJxwvUKfEk+nnEQX+gnkSyEBl4rbUqRpqTqfb3Y6PTs=,iv:xHErn4gzuq/1/VLFRiG412Gm+sg/BuB93reLXQ5rqrU=,tag:doZ8m1vnjJ7qjVsQvfvZSw==,type:str] + pgp: [] + encrypted_regex: ^(data|stringData)$ + version: 3.9.3 diff --git a/apps/home/hoarder/app/kustomization.yaml b/apps/home/hoarder/app/kustomization.yaml new file mode 100644 index 000000000..838eae6ff --- /dev/null +++ b/apps/home/hoarder/app/kustomization.yaml @@ -0,0 +1,8 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- helm-release.yaml +- hoarder-data.yaml +- meili-data.yaml +- hoarder-secrets.sops.yaml diff --git a/apps/home/hoarder/app/meili-data.yaml b/apps/home/hoarder/app/meili-data.yaml new file mode 100644 index 000000000..e875264b3 --- /dev/null +++ b/apps/home/hoarder/app/meili-data.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: meili-data +spec: + storageClassName: longhorn-backup + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi \ No newline at end of file diff --git a/apps/home/hoarder/kustomization.yaml b/apps/home/hoarder/kustomization.yaml new file mode 100644 index 000000000..118a517a7 --- /dev/null +++ b/apps/home/hoarder/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- app.yaml diff --git a/apps/home/kustomization.yaml b/apps/home/kustomization.yaml index 68fda580e..d92756072 100644 --- a/apps/home/kustomization.yaml +++ b/apps/home/kustomization.yaml @@ -4,4 +4,5 @@ kind: Kustomization resources: - namespace.yaml - home-assistant -- adguard +- hoarder +- adguard \ No newline at end of file