Compare commits

..

120 Commits

Author SHA1 Message Date
ab
3d1658f41d Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 12s
2025-07-03 15:52:04 +00:00
ab
51a8cc1834 Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 27s
2025-07-03 12:13:58 +00:00
ab
5dcbc9b11f Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 25s
2025-07-03 12:00:36 +00:00
ab
aed859b8e9 Update k8s/apps/gitea/external-secrets.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 11s
2025-07-03 12:00:09 +00:00
ab
05f277c8cd Update k8s/apps/gitea/external-secrets.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 11s
2025-07-03 11:43:01 +00:00
ab
e25e9a8608 Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-07-03 11:38:16 +00:00
ab
2ef7b23c69 Update k8s/apps/gitea/external-secrets.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-07-03 11:37:59 +00:00
ab
4184534c8c Update k8s/apps/gitea/external-secrets.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-07-03 11:31:56 +00:00
ab
145bdcaca1 Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-07-03 11:30:54 +00:00
ab
e0ef44d8bd Update k8s/apps/gitea/external-secrets.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 11s
2025-07-03 11:30:40 +00:00
ab
628c250a0b Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 22s
2025-07-03 11:25:59 +00:00
ab
2e0df4ad1b Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 11s
2025-07-03 11:18:30 +00:00
ab
120d68bd57 Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 11s
2025-07-03 11:16:40 +00:00
ab
6f7fc0b796 Update k8s/apps/gitea/external-secrets.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 11s
2025-07-03 11:15:21 +00:00
ab
a4f043c5c6 Update k8s/apps/gitea/external-secrets.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 27s
2025-07-03 11:14:03 +00:00
ab
640447a4e0 Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 21s
2025-06-25 22:11:12 +00:00
ab
b55e1b936b Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 18s
2025-06-25 22:07:10 +00:00
ab
e939b14796 Update k8s/games/minecraft/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 14s
2025-06-25 21:51:03 +00:00
ab
a9d63a7c0c Merge pull request 'main' (#1) from xelnagamex/homelab:main into main
All checks were successful
Check with kubeconform / lint (push) Successful in 29s
Reviewed-on: #1
2025-06-25 21:42:51 +00:00
ab
73a14e1397 Merge pull request 'Update k8s/games/minecraft/deployments.yaml' (#1) from xelnagamex-patch-1 into main
Reviewed-on: xelnagamex/homelab#1
2025-06-25 21:41:56 +00:00
07ff8b97f3 Update k8s/games/minecraft/deployments.yaml
pin prism launcher link to version 8.4
2025-06-25 21:40:50 +00:00
66d4383ef2 Bump bw cli
All checks were successful
Check with kubeconform / lint (push) Successful in 15s
2025-06-19 15:45:50 +01:00
ab
a59dfe8bba Update k8s/apps/syncthing/syncthing-master.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 15s
2025-06-18 21:57:55 +00:00
ab
bb1a142356 Bump syncthing image
All checks were successful
Check with kubeconform / lint (push) Successful in 14s
2025-06-18 21:54:56 +00:00
ab
26c344063d Update k8s/apps/syncthing/syncthing-khv.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 20s
2025-06-18 21:52:50 +00:00
36a78797bd Added iris.khv syncthing
All checks were successful
Check with kubeconform / lint (push) Successful in 15s
2025-06-18 13:21:29 +01:00
ab
710192091c Update k8s/core/system-upgrade/app.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 13s
2025-06-16 21:07:49 +00:00
51c8df6243 Update k3s
All checks were successful
Check with kubeconform / lint (push) Successful in 37s
2025-06-16 20:02:53 +01:00
ab
b38952e4d9 Update k8s/apps/gitea/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 19s
2025-06-16 17:37:34 +00:00
ab
44d43aaf1a Update k8s/core/authentik/values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 18s
Bump authentik
2025-05-30 15:26:14 +00:00
A B
7e2523c123 Added stirling-pdf
All checks were successful
Check with kubeconform / lint (push) Successful in 16s
2025-05-27 11:58:43 +00:00
A B
067eb27169 Added stirling-pdf
All checks were successful
Check with kubeconform / lint (push) Successful in 18s
2025-05-27 11:55:39 +00:00
ab
d3af58a78e Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 22s
2025-05-24 15:01:24 +00:00
ab
d909cdd9ab Update k8s/core/postgresql/kustomization.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 12s
2025-05-14 22:06:34 +00:00
ab
77c2dd5ffb Update k8s/core/cert-manager/self-signed.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 12s
2025-05-14 14:29:49 +00:00
ab
0e059d83a8 Update k8s/apps/immich/service.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-05-14 14:06:19 +00:00
ab
5ed3c725d5 Update k8s/core/cert-manager/kustomization.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-14 14:04:00 +00:00
ab
cb6e7405e6 Add k8s/core/cert-manager/self-signed.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 11s
2025-05-14 14:03:43 +00:00
ab
cda74b9323 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 13s
2025-05-14 13:39:06 +00:00
ab
7e7df0af96 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-13 21:22:56 +00:00
ab
d23477264d Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 15:58:31 +00:00
ab
24abf15321 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 15:53:07 +00:00
ab
1b68a1b3ba Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 12s
2025-05-13 15:43:41 +00:00
ab
13a2ffe5b5 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 11s
2025-05-13 15:41:28 +00:00
ab
716010bc8f Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-05-13 15:26:41 +00:00
ab
812f16c0f5 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 15:05:07 +00:00
ab
824ace57ed Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 14:35:00 +00:00
ab
e7e1e431c3 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 14:34:14 +00:00
ab
2214558138 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 14:33:27 +00:00
ab
138a6af120 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-05-13 14:29:02 +00:00
ab
c512a9ec1e Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 14:25:51 +00:00
ab
25f15fa9f7 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-13 14:25:08 +00:00
A B
dc4077879e Added nas DB
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-13 14:12:45 +00:00
A B
797b4da72f Added nas DB
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 14:10:03 +00:00
ab
c751dfde17 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 13:54:54 +00:00
ab
e6bed27097 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 12:50:21 +00:00
ab
79d3365463 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 11:55:46 +00:00
ab
067746cf76 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-13 11:51:51 +00:00
ab
769f8ccdae Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-05-13 11:48:27 +00:00
ab
2ed804abe3 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-13 11:46:45 +00:00
ab
91f66f950c Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-13 11:44:00 +00:00
ab
cd38254e8d Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-13 00:19:49 +00:00
ab
3232917bff Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-05-13 00:15:12 +00:00
ab
6e30de8f4b Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 11s
2025-05-12 17:06:38 +00:00
A B
b82d93e31e immich scheduling
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-12 17:04:42 +00:00
ab
bf883f9586 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-12 16:58:01 +00:00
ab
298752e10a Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-12 16:37:02 +00:00
ab
c75ddebea1 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-05-12 16:32:20 +00:00
ab
2955164a49 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 6s
2025-05-12 16:31:14 +00:00
ab
664870f8c4 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-05-12 16:30:32 +00:00
ab
2f8b47a5e5 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 11s
2025-05-12 16:28:13 +00:00
ab
a65ed22621 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-12 16:24:46 +00:00
ab
17249696e1 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-12 16:21:55 +00:00
ab
46feecaa93 Update k8s/core/external-secrets/kustomization.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-05-12 16:01:42 +00:00
ab
0099abe890 Roll back v1.32.3+k3s1 -> v1.32.4+k3s1
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-12 16:00:23 +00:00
ab
af8222ff73 Roll back v1.32.4+k3s1 -> v1.32.3+k3s1
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-12 15:55:32 +00:00
ab
9bedb4c519 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-12 15:52:11 +00:00
ab
c56cad53b3 Bump k3s v1.32.3+k3s1 -> v1.32.4+k3s1
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-12 15:41:57 +00:00
ab
e20bd0db0a Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-12 14:26:28 +00:00
ab
8e46c2a45e Update k8s/core/postgresql/pgadmin4-values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-11 23:15:34 +00:00
ab
1b934b8caa Update k8s/core/postgresql/pgadmin4-values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 6s
2025-05-11 23:14:52 +00:00
ab
b86d6083e1 Update k8s/core/postgresql/kustomization.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-11 23:14:39 +00:00
ab
124678bcee Bumped authentik from a toilet
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-05-07 16:07:26 +00:00
ab
dca9c592f7 Update k8s/apps/paperless/paperless-values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-05-02 12:32:46 +00:00
ab
e2371a9ae6 Update k8s/apps/paperless/paperless-values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-05-02 12:27:34 +00:00
ab
630c676ad3 Update k8s/apps/paperless/paperless-values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 6s
2025-05-02 12:24:13 +00:00
ab
a4b6555d99 Add k8s/apps/paperless/gotenberg-values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-02 12:21:33 +00:00
ab
ca8da87d38 Add k8s/apps/paperless/tika-values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-05-02 12:20:55 +00:00
ab
40b09dc36f Update k8s/apps/paperless/paperless-values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 5s
2025-05-02 12:19:59 +00:00
ab
2083a540c7 Update k8s/apps/paperless/kustomization.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 5s
2025-05-02 12:19:53 +00:00
ab
7b962b70e9 Update k8s/apps/paperless/kustomization.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-05-02 12:19:37 +00:00
ab
e2ec54df39 Update k8s/apps/khm/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-04-29 21:13:58 +00:00
A B
40fb583daa Added rustdesk
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-04-29 20:07:00 +00:00
A B
f8196d197d Added rustdesk
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-04-29 20:02:21 +00:00
A B
b747756839 Added rustdesk
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-04-29 20:01:29 +00:00
ab
fd6ac8e9cf Update k8s/apps/khm/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-04-29 19:38:58 +00:00
ab
334ec66c3f Update k8s/apps/khm/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-04-29 19:27:23 +00:00
ab
94a4b46c24 Update k8s/apps/khm/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-04-29 18:55:03 +00:00
ab
76ba50f9d0 Update k8s/apps/khm/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-04-29 18:34:55 +00:00
ab
52f40c318b Update k8s/apps/khm/deployment.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-04-29 18:31:56 +00:00
ab
9fdb5a64e0 Update k8s/apps/immich/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-04-29 18:28:01 +00:00
ab
19fdf962b7 Update k8s/apps/paperless/values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-04-28 17:38:19 +00:00
ab
33f157949b Update k8s/apps/paperless/values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-04-28 17:35:09 +00:00
ab
5c444b50f9 Update k8s/apps/paperless/values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-04-28 17:28:24 +00:00
ab
361b9cb886 Update k8s/apps/paperless/values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-04-28 17:18:46 +00:00
ab
a10aa3eb5f Update k8s/core/authentik/values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-04-28 13:26:43 +00:00
ab
85a42340bb Update k8s/apps/paperless/values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 9s
2025-04-27 12:28:15 +00:00
A B
a8f96aa60d Added qbt to nas
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-04-27 11:45:41 +00:00
ab
0b46c48b08 Update k8s/games/minecraft/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 10s
2025-04-24 21:58:55 +00:00
ab
43340ce3aa Update k8s/core/authentik/values.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-04-24 21:41:04 +00:00
A B
43dbe09f2b Added Minecraft
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-04-24 21:23:37 +00:00
A B
9b4d256555 Added games project
All checks were successful
Check with kubeconform / lint (push) Successful in 6s
2025-04-24 21:21:21 +00:00
A B
99e604e178 Added games project
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-04-24 21:18:44 +00:00
A B
3849dc3def Added games project
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-04-24 19:02:36 +00:00
c89fa45994 Changed qbt directory
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-04-23 18:53:43 +03:00
1b6d0ce1d3 Added bazarr
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-04-23 18:46:52 +03:00
c897ef8b2e Added bazarr
All checks were successful
Check with kubeconform / lint (push) Successful in 7s
2025-04-23 18:12:09 +03:00
66f69ddd0f Added bazarr
All checks were successful
Check with kubeconform / lint (push) Successful in 8s
2025-04-23 18:10:51 +03:00
646e8943f8 Added prowlarr
All checks were successful
Check with kubeconform / lint (push) Successful in 6s
2025-04-23 17:37:14 +03:00
f48d479e81 Added prowlarr
All checks were successful
Check with kubeconform / lint (push) Successful in 5s
2025-04-23 17:32:00 +03:00
41 changed files with 969 additions and 170 deletions

View File

@ -30,6 +30,20 @@ spec:
containers:
- name: gitea
image: 'gitea/gitea:latest'
env:
- name: GITEA__service__REGISTER_MANUAL_CONFIRM
value: "true"
- name: GITEA__service__ENABLE_CAPTCHA
value: "false"
- name: GITEA__service__REQUIRE_CAPTCHA_FOR_LOGIN
value: "true"
- name: GITEA__service__REQUIRE_EXTERNAL_REGISTRATION_CAPTCHA
value: "true"
- name: GITEA__service__CAPTCHA_TYPE
value: "hcaptcha"
envFrom:
- secretRef:
name: gitea-recapcha-creds
ports:
- name: http
containerPort: 3000
@ -56,19 +70,23 @@ spec:
app: gitea-runner
spec:
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
kubernetes.io/hostname: home.homenet
volumes:
- name: docker-sock
hostPath:
#path: /var/run/k3s/containerd/containerd.sock
path: /var/run/docker.sock
type: Socket
- name: runner-data
persistentVolumeClaim:
claimName: gitea-runner-pvc
containers:
- name: gitea-runner
image: gitea/act_runner:nightly
volumeMounts:
- name: docker-sock
mountPath: /var/run/docker.sock
- name: runner-data
mountPath: /data
env:
- name: GITEA_INSTANCE_URL
value: "https://gt.hexor.cy"
@ -82,3 +100,16 @@ spec:
- name: GITEA_RUNNER_LABELS
value: "ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-latest,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-20.04:docker://ghcr.io/catthehacker/ubuntu:act-20.04"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gitea-runner-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: local-path

View File

@ -23,3 +23,37 @@ spec:
key: e475b5ab-ea3c-48a5-bb4c-a6bc552fc064
property: login.password
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: gitea-recapcha-creds
spec:
refreshInterval: 1m
target:
name: gitea-recapcha-creds
deletionPolicy: Delete
template:
type: Opaque
data:
GITEA__service__HCAPTCHA_SITEKEY: |-
{{ .HCAPTCHA_SITEKEY }}
GITEA__service__HCAPTCHA_SECRET: |-
{{ .HCAPTCHA_SECRET }}
data:
- secretKey: HCAPTCHA_SITEKEY
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
key: 89c8d8d2-6b53-42c5-805f-38a341ef163e
property: login.username
- secretKey: HCAPTCHA_SECRET
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
key: 89c8d8d2-6b53-42c5-805f-38a341ef163e
property: login.password

View File

@ -14,53 +14,78 @@ spec:
app: immich-server
spec:
containers:
- name: immich-server
image: ghcr.io/immich-app/immich-server:release
ports:
- containerPort: 2283
env:
- name: UPLOAD_LOCATION
value: /usr/src/app/upload
- name: DB_PASSWORD
value: postgres
- name: DB_USERNAME
value: postgres
- name: DB_DATABASE_NAME
value: immich
- name: REDIS_HOST
value: redis
- name: REDIS_PORT
value: "6379"
- name: TZ
value: Asia/Nicosia
volumeMounts:
- mountPath: /usr/src/app/upload
name: upload-storage
- mountPath: /GPHOTO
name: gphoto-storage
- mountPath: /etc/localtime
name: localtime
readOnly: true
nodeSelector:
kubernetes.io/hostname: nas.homenet
- name: immich-server
image: ghcr.io/immich-app/immich-server:release
imagePullPolicy: Always
ports:
- containerPort: 2283
env:
- name: UPLOAD_LOCATION
value: /usr/src/app/upload
- name: DB_URL
value: postgresql://postgres:postgres@immich-rw.immich:5432/immich
- name: REDIS_HOST
value: redis
- name: REDIS_PORT
value: "6379"
- name: TZ
value: Asia/Nicosia
volumeMounts:
- mountPath: /usr/src/app/upload
name: upload-storage
- mountPath: /GPHOTO
name: gphoto-storage
- mountPath: /Camera
name: camera
- mountPath: /etc/localtime
name: localtime
readOnly: true
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- home.homenet
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- home.homenet
- nas.homenet
volumes:
- name: upload-storage
persistentVolumeClaim:
claimName: immich-upload-pvc
- name: gphoto-storage
persistentVolumeClaim:
claimName: immich-gphoto-pvc
- name: localtime
hostPath:
path: /etc/localtime
type: File
- name: upload-storage
nfs:
server: nas.homenet
path: /mnt/storage/Storage/k8s/immich/library/
readOnly: false
- name: gphoto-storage
nfs:
server: nas.homenet
path: /mnt/storage/Storage/k8s/immich/GPHOTO/
readOnly: false
- name: camera
nfs:
server: nas.homenet
path: /mnt/storage/Storage/Photos/Phone/
readOnly: true
- name: localtime
hostPath:
path: /etc/localtime
type: File
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: immich-machine-learning
spec:
replicas: 1
replicas: 4
selector:
matchLabels:
app: immich-ml
@ -69,20 +94,68 @@ spec:
labels:
app: immich-ml
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- home.homenet
- master.tail2fe2d.ts.net
- nas.homenet
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 4
preference:
matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- home.homenet
- weight: 6
preference:
matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- master.tail2fe2d.ts.net
- weight: 1
preference:
matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- home.homenet
topologySpreadConstraints:
- maxSkew: 2
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: immich-ml
containers:
- name: immich-ml
image: ghcr.io/immich-app/immich-machine-learning:release
env:
- name: TZ
value: Asia/Nicosia
volumeMounts:
- mountPath: /cache
name: model-cache
nodeSelector:
kubernetes.io/hostname: nas.homenet
- name: immich-ml
image: ghcr.io/immich-app/immich-machine-learning:release
imagePullPolicy: Always
env:
- name: TZ
value: Asia/Nicosia
- name: IMMICH_MACHINE_LEARNING_MODEL_FACE
value: buffalo_l
- name: IMMICH_MACHINE_LEARNING_MODEL_CLIP
value: ViT-L/14
- name: IMMICH_MACHINE_LEARNING_USE_GPU
value: "true"
volumeMounts:
- mountPath: /cache
name: model-cache
volumes:
- name: model-cache
emptyDir: {}
- name: model-cache
emptyDir: {}
---
apiVersion: apps/v1
kind: Deployment
@ -106,60 +179,3 @@ spec:
command: ["redis-cli", "ping"]
nodeSelector:
kubernetes.io/hostname: nas.homenet
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: database
spec:
replicas: 1
selector:
matchLabels:
app: database
template:
metadata:
labels:
app: database
spec:
securityContext:
fsGroup: 999
containers:
- name: immich-postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0
securityContext:
runAsUser: 999
runAsGroup: 999
env:
- name: POSTGRES_PASSWORD
value: postgres
- name: POSTGRES_USER
value: postgres
- name: POSTGRES_DB
value: immich
- name: POSTGRES_INITDB_ARGS
value: '--data-checksums'
- name: TZ
value: Asia/Nicosia
command: ["postgres"]
args:
- "-c"
- "shared_preload_libraries=vectors.so"
- "-c"
- "search_path='\"$user\", public, vectors'"
- "-c"
- "logging_collector=on"
- "-c"
- "max_wal_size=2GB"
- "-c"
- "shared_buffers=512MB"
- "-c"
- "wal_compression=on"
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: db-storage
nodeSelector:
kubernetes.io/hostname: nas.homenet
volumes:
- name: db-storage
persistentVolumeClaim:
claimName: immich-db-pvc

View File

@ -97,6 +97,24 @@ spec:
name: immich-server
port:
number: 2283
tls:
- secretName: immich-tls
hosts:
- photos.hexor.cy
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: immich-homenet-tls-ingress
annotations:
ingressClassName: traefik
cert-manager.io/cluster-issuer: hexor-lab
traefik.ingress.kubernetes.io/router.middlewares: |
kube-system-https-redirect@kubernetescrd, immich-upload-buffering@kubernetescrd
acme.cert-manager.io/http01-edit-in-place: "true"
spec:
rules:
- host: photos.homenet
http:
paths:
@ -108,7 +126,6 @@ spec:
port:
number: 2283
tls:
- secretName: immich-tls
- secretName: immich-homenet-tls
hosts:
- photos.hexor.cy
- photos.homenet

View File

@ -54,7 +54,7 @@ spec:
type: DirectoryOrCreate
- name: media
hostPath:
path: /k8s/jellyfin/media
path: /k8s/media/downloads
type: DirectoryOrCreate
containers:
- name: qbittorrent

View File

@ -15,7 +15,7 @@ persistence:
isPvc: false
customVolume:
hostPath:
path: /k8s/jellyfin/media
path: /k8s/media/downloads
type: DirectoryOrCreate
ingress:

View File

@ -22,11 +22,12 @@ spec:
containers:
- name: khm
image: 'ultradesu/khm:latest'
imagePullPolicy: Always
command:
- /bin/sh
- -c
- |
/usr/local/bin/khm --server --db-user=${PG_USER} --db-password=${PG_PASS} --flows=default --db-host=psql.psql.svc --ip=0.0.0.0
/usr/local/bin/khm --server --db-user=${PG_USER} --db-password=${PG_PASS} --flows=private,work --db-host=psql.psql.svc --ip=0.0.0.0
env:
- name: PG_USER
valueFrom:

View File

@ -0,0 +1,20 @@
replicaCount: 1
image:
repository: gotenberg/gotenberg
tag: "8"
nodeSelector:
kubernetes.io/hostname: nas.homenet
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 200m
memory: 256Mi
service:
type: ClusterIP
port: 3000

View File

@ -11,6 +11,20 @@ helmCharts:
version: 0.24.1
releaseName: paperless-ngx
namespace: paperless
valuesFile: values.yaml
valuesFile: paperless-values.yaml
includeCRDs: true
- name: tika
repo: https://apache.jfrog.io/artifactory/tika
version: 2.9.0
releaseName: apache-tika
namespace: paperless
valuesFile: tika-values.yaml
includeCRDs: true
- name: gotenberg
repo: https://maikumori.github.io/helm-charts
version: 1.12.0
releaseName: gotenberg
namespace: paperless
valuesFile: gotenberg-values.yaml
includeCRDs: true

View File

@ -1,11 +1,11 @@
image:
tag: 2.15.1
tag: 2.15.3
initContainers:
install-tesseract-langs:
image: ghcr.io/paperless-ngx/paperless-ngx:2.15.1
command: ["/bin/sh", "-c"]
args:
- apt-get update && apt-get install -y --reinstall tesseract-ocr-rus tesseract-ocr-eng tesseract-ocr-ell && cp -v -r /usr/share/tesseract-ocr/5/tessdata/* /custom-tessdata/
- apt-get update && apt-get install -y --reinstall tesseract-ocr-rus tesseract-ocr-jpn tesseract-ocr-chi-sim tesseract-ocr-eng tesseract-ocr-ell && cp -v -r /usr/share/tesseract-ocr/5/tessdata/* /custom-tessdata/
volumeMounts:
- name: tessdata
mountPath: /custom-tessdata
@ -15,9 +15,13 @@ env:
TZ: Asia/Nicosia
PAPERLESS_URL: https://docs.hexor.cy
PAPERLESS_ALLOWED_HOSTS: docs.hexor.cy
PAPERLESS_REDIS: redis://:NOTSECUREBUTMAYBELOCAL@paperless-ngx-redis-master
PAPERLESS_CSRF_TRUSTED_ORIGINS: https://idm.hexor.cy
PAPERLESS_OCR_LANGUAGE: "eng+rus+ell"
PAPERLESS_OCR_LANGUAGE: "eng+rus+ell+jpn+chi_sim"
TESSDATA_PREFIX: /custom-tessdata
PAPERLESS_TIKA_ENABLED: "1"
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: "http://gotenberg.paperless.svc:3000"
PAPERLESS_TIKA_ENDPOINT: "http://apache-tika.paperless.svc:9998"
PAPERLESS_DBENGINE: postgresql
PAPERLESS_DBHOST: psql-nas.psql.svc
PAPERLESS_DBPORT: "5432"
@ -87,6 +91,17 @@ persistence:
hostPath: /mnt/storage/Storage/k8s/paperless/consume
globalMounts:
- path: /usr/src/paperless/consume
redis:
enabled: true
master:
nodeSelector:
kubernetes.io/hostname: nas.homenet
replica:
nodeSelector:
kubernetes.io/hostname: nas.homenet
global:
redis:
password: "NOTSECUREBUTMAYBELOCAL"
postgresql:
enabled: false
mariadb:

View File

@ -0,0 +1,20 @@
replicaCount: 1
image:
repository: apache/tika
tag: "latest"
nodeSelector:
kubernetes.io/hostname: nas.homenet
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
service:
type: ClusterIP
port: 9998

View File

@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: qbittorent-nas
namespace: argocd
spec:
project: apps
destination:
namespace: qbittorent-nas
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/qbittorent-nas
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

View File

@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- qbittorent.yaml

View File

@ -0,0 +1,62 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: qbittorent-nas
labels:
app: qbittorent-nas
annotations:
reloader.stakater.com/auto: "true"
spec:
selector:
matchLabels:
app: qbittorent-nas
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: qbittorent-nas
spec:
nodeSelector:
kubernetes.io/hostname: nas.homenet
volumes:
- name: config
hostPath:
path: /mnt/storage/Storage/configs/qbittorrent
type: DirectoryOrCreate
- name: media
hostPath:
path: /mnt/storage/Storage/Donwloads
type: DirectoryOrCreate
containers:
- name: qbittorrent
image: 'linuxserver/qbittorrent:latest'
ports:
- name: http
containerPort: 8080
protocol: TCP
volumeMounts:
- name: config
mountPath: /config
- name: media
mountPath: /downloads
---
apiVersion: v1
kind: Service
metadata:
name: qbittorent-nas
spec:
type: NodePort
selector:
app: qbittorent-nas
ports:
- port: 8080
targetPort: 8080
nodePort: 31337
protocol: TCP

View File

@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: rustdesk
namespace: argocd
spec:
project: apps
destination:
namespace: rustdesk
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/rustdesk
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

View File

@ -0,0 +1,66 @@
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: postgres-creds
spec:
target:
name: postgres-creds
deletionPolicy: Delete
template:
type: Opaque
data:
psql_user: paperless
psql_pass: |-
{{ .psql_pass }}
oauth_config: |-
{
"openid_connect": {
"APPS": [
{
"provider_id": "authentik",
"name": "Authentik",
"client_id": "{{ .oauth_id }}",
"secret": "{{ .oauth_secret }}",
"settings": {
"server_url": "{{ .server_url }}"
}
}
],
"OAUTH_PKCE_ENABLED": "True"
}
}
data:
- secretKey: psql_pass
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[5].value
- secretKey: oauth_id
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
key: 07d4efd9-597c-4a4c-a78d-13bfc43e6055
property: fields[0].value
- secretKey: oauth_secret
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
key: 07d4efd9-597c-4a4c-a78d-13bfc43e6055
property: fields[1].value
- secretKey: server_url
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
key: 07d4efd9-597c-4a4c-a78d-13bfc43e6055
property: fields[2].value

View File

@ -0,0 +1,16 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
#- external-secrets.yaml
helmCharts:
- name: rustdesk-server-oss
repo: https://schich.tel/helm-charts
version: 0.2.2
releaseName: rustdesk
namespace: rustdesk
valuesFile: values.yaml
includeCRDs: true

View File

@ -0,0 +1,87 @@
replicaCount: 1
image:
repository: docker.io/rustdesk/rustdesk-server
pullPolicy: IfNotPresent
tag: 1
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
ingress:
enabled: true
className: "traefik"
annotations:
ingressClassName: traefik
cert-manager.io/cluster-issuer: letsencrypt
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
acme.cert-manager.io/http01-edit-in-place: "true"
hosts:
- rd.hexor.cy
tls:
- secretName: rustdesk-tls
hosts:
- rd.hexor.cy
service:
type: LoadBalancer
externalTrafficPolicy: Cluster
loadBalancerIP: null
enableWebClientSupport: false
hbbr:
replayPort:
port: 21117
targetPort: 21117
clientPort:
port: 21119
targetPort: 21119
hbbs:
natPort:
port: 21115
targetPort: 21115
registryPort:
port: 21116
targetPort: 21116
heartbeatPort:
port: 21116
targetPort: 21116
webPort:
port: 21118
targetPort: 21118
resources:
hbbrResource: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
hbbsResource: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
# Additional volumes on the output Deployment definition.
volume: {}
# - name: foo
# secret:
# secretName: mysecret
# optional: false
# - name: foo
# mountPath: "/etc/foo"
# readOnly: true

View File

@ -0,0 +1,13 @@
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
volumes:
- name: downloads
hostPath:
path: /k8s/media/downloads
type: DirectoryOrCreate
volumeMounts:
- name: downloads
mountPath: /downloads
readOnly: false

View File

@ -13,8 +13,6 @@ helmCharts:
namespace: sonarr-stack
valuesFile: sonarr-values.yaml
includeCRDs: true
helmCharts:
- name: prowlarr
repo: https://charts.pree.dev
version: 1.42.0
@ -22,4 +20,11 @@ helmCharts:
namespace: sonarr-stack
valuesFile: sonarr-values.yaml
includeCRDs: true
- name: bazarr
repo: oci://ghcr.io/m0nsterrr/helm-charts
version: 2.0.3
releaseName: bazarr
namespace: sonarr-stack
valuesFile: bazarr-values.yaml
includeCRDs: true

View File

@ -7,5 +7,3 @@ persistence:
config:
enabled: true
mountPath: /config
accessMode: ReadWriteOnce
size: 1Gi

View File

@ -6,13 +6,10 @@ nodeSelector:
persistence:
config:
enabled: true
mountPath: /config
accessMode: ReadWriteOnce
size: 1Gi
downloads:
enabled: true
type: hostPath
hostPath: /k8s/jellyfin/media
hostPath: /k8s/media/downloads
mountPath: /downloads
accessMode: ReadWriteOnce

View File

@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: stirling-pdf
namespace: argocd
spec:
project: apps
destination:
namespace: stirling-pdf
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/stirling-pdf
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

View File

@ -0,0 +1,15 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
helmCharts:
- name: stirling-pdf-chart
repo: https://stirling-tools.github.io/Stirling-PDF-chart
version: 1.10.0
releaseName: stirling-pdf
namespace: stirling-pdf
valuesFile: values.yaml
includeCRDs: true

View File

@ -0,0 +1,56 @@
replicaCount: 1
image:
registry: docker.stirlingpdf.com
repository: stirlingtools/stirling-pdf
tag: "latest"
pullPolicy: Always
securityContext:
enabled: true
fsGroup: 1000
ingress:
enabled: true
ingressClassName: "traefik"
pathType: "Prefix"
annotations:
cert-manager.io/cluster-issuer: "letsencrypt"
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
labels:
app: stirling-pdf
hosts:
- name: pdf.hexor.cy
path: /
tls: true
tlsSecret: pdf-hexor-cy-tls
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
probes:
liveness:
enabled: true
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
readiness:
enabled: true
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 3
envs:
- name: UI_APP_NAME
value: "Stirling PDF"
- name: UI_HOME_DESCRIPTION
value: "Your locally hosted one-stop-shop for all your PDF needs."

View File

@ -9,8 +9,15 @@ helmCharts:
- name: syncthing
repo: https://k8s-home-lab.github.io/helm-charts
version: 4.0.0
releaseName: syncthing
releaseName: syncthing-master
namespace: syncthing
valuesFile: syncthing-values.yaml
valuesFile: syncthing-master.yaml
includeCRDs: true
- name: syncthing
repo: https://k8s-home-lab.github.io/helm-charts
version: 4.0.0
releaseName: syncthing-khv
namespace: syncthing
valuesFile: syncthing-khv.yaml
includeCRDs: true

View File

@ -0,0 +1,42 @@
image:
tag: latest
persistence:
config:
enabled: true
type: hostPath
hostPath: "/k8s/syncthing"
mountPath: "/var/syncthing"
storage:
enabled: true
type: hostPath
hostPath: "/home/share"
mountPath: "/storage"
nodeSelector:
kubernetes.io/hostname: iris.khv
service:
main:
ports:
http:
port: 8384
listen:
enabled: true
type: LoadBalancer
ports:
listen:
enabled: true
port: 30023
protocol: TCP
targetPort: 22000
selector:
app.kubernetes.io/name: syncthing
discovery:
enabled: true
type: NodePort
externalTrafficPolicy: Cluster
ports:
discovery:
enabled: true
port: 21027
protocol: UDP
targetPort: 21027

View File

@ -1,3 +1,6 @@
image:
tag: latest
persistence:
config:
enabled: true

View File

@ -30,3 +30,20 @@ spec:
server: https://kubernetes.default.svc
sourceRepos:
- ssh://git@gt.hexor.cy:30022/ab/homelab.git
---
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: games
namespace: argocd
spec:
clusterResourceWhitelist:
- group: '*'
kind: '*'
description: Hexor Home Lab Games
destinations:
- namespace: '*'
server: https://kubernetes.default.svc
sourceRepos:
- ssh://git@gt.hexor.cy:30022/ab/homelab.git

View File

@ -1,6 +1,9 @@
global:
image:
tag: "2025.4.1"
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
authentik:
error_reporting:
enabled: true
@ -16,8 +19,6 @@ server:
envFrom:
- secretRef:
name: authentik-creds
image:
tag: "2025.2.4"
ingress:
enabled: true
ingressClassName: traefik
@ -26,17 +27,18 @@ server:
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
hosts:
- idm.hexor.cy
- nas.hexor.cy # TrueNAS Limassol
- nc.hexor.cy # NaxtCloud
- of.hexor.cy # Outfleet-v2
- master.hexor.cy # k8s dashboard
- qbt.hexor.cy # qBittorent for Jellyfin
- prom.hexor.cy # Prometheus
- ss.hexor.cy # Syncthing UI
- khm.hexor.cy # Known Hosts keys Manager
- backup.hexor.cy # Kopia Backup UI
- fm.hexor.cy # Filemanager
- hexound.hexor.cy # Hexound
- nas.hexor.cy # TrueNAS Limassol
- nc.hexor.cy # NaxtCloud
- of.hexor.cy # Outfleet-v2
- master.hexor.cy # k8s dashboard
- qbt.hexor.cy # qBittorent for Jellyfin
- prom.hexor.cy # Prometheus
- ss.hexor.cy # Syncthing UI
- khm.hexor.cy # Known Hosts keys Manager
- backup.hexor.cy # Kopia Backup UI
- fm.hexor.cy # Filemanager
- hexound.hexor.cy # Hexound
- minecraft.hexor.cy # Minecraft UI and server
tls:
- secretName: idm-tls
hosts:

View File

@ -5,6 +5,7 @@ resources:
- app.yaml
- external-secrets.yaml
- issuer.yaml
- self-signed.yaml
helmCharts:
- name: cert-manager

View File

@ -0,0 +1,30 @@
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: selfsigned
spec:
selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: hexor-ca-root
spec:
isCA: true
duration: 87600h # 10y
commonName: hexor-ca
secretName: hexor-ca-root-secret
issuerRef:
name: selfsigned
kind: ClusterIssuer
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: hexor-lab
spec:
ca:
secretName: hexor-ca-root-secret

View File

@ -1,6 +1,6 @@
FROM debian:sid
ENV BW_CLI_VERSION=2024.7.2
ENV BW_CLI_VERSION=2025.5.0
RUN apt update && \
apt install -y wget unzip && \
@ -12,15 +12,15 @@ RUN apt update && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
// Entrypoint content
#!/bin/sh
set -e
bw config server ${BW_HOST}
export BW_SESSION=$(bw login ${BW_USER} --passwordenv BW_PASSWORD --raw)
bw unlock --check
echo 'Running `bw server` on port 8087'
bw serve --hostname 0.0.0.0 #--disable-origin-protection
// End Entrypoint content
# Build entrypoint script
RUN echo '#!/bin/sh\n\
set -e\n\
bw config server ${BW_HOST}\n\
export BW_SESSION=$(bw login ${BW_USER} --passwordenv BW_PASSWORD --raw)\n\
bw unlock --check\n\
echo "Running \`bw server\` on port 8087"\n\
bw serve --hostname 0.0.0.0\n' > /entrypoint.sh && \
chmod +x /entrypoint.sh
CMD ["/entrypoint.sh"]
COPY entrypoint.sh /
CMD ["/entrypoint.sh"]

View File

@ -37,7 +37,7 @@ spec:
kubernetes.io/hostname: master.tail2fe2d.ts.net
containers:
- name: bitwarden-cli
image: ultradesu/bitwarden-client:2024.7.2
image: ultradesu/bitwarden-client:2025.5.0
imagePullPolicy: Always
env:
- name: BW_HOST

View File

@ -8,7 +8,7 @@ resources:
helmCharts:
- name: external-secrets
repo: https://charts.external-secrets.io
version: 0.15.1
version: 0.16.2
releaseName: external-secrets
namespace: external-secrets
valuesFile: values.yaml

View File

@ -6,6 +6,7 @@ resources:
- app.yaml
- external-secrets.yaml
- main-db.yaml
- nas.yaml
- nas-db.yaml
@ -15,6 +16,12 @@ helmCharts:
version: 1.37.0
releaseName: pgmanager
namespace: psql
valuesFile: values.yaml
valuesFile: pgadmin4-values.yaml
includeCRDs: true
- name: cloudnative-pg
repo: https://cloudnative-pg.github.io/charts
version: 0.23.2
releaseName: cnpg
namespace: psql
includeCRDs: true

View File

@ -0,0 +1,141 @@
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: immich-pv
namespace: immich
spec:
capacity:
storage: 50Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-storage
nfs:
server: nas.homenet
path: /mnt/storage/Storage/k8s/immich/db-vector
readOnly: false
volumeMode: Filesystem
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-storage
provisioner: kubernetes.io/no-provisioner
reclaimPolicy: Retain
volumeBindingMode: Immediate
---
apiVersion: v1
data:
password: cG9zdGdyZXM=
username: cG9zdGdyZXM=
kind: Secret
metadata:
name: immich-db-pass
namespace: immich
type: kubernetes.io/basic-auth
---
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: immich
namespace: immich
spec:
description: "PostgreSQL cluster for Immich with vector support"
imageName: ghcr.io/tensorchord/cloudnative-pgvecto.rs:14-v0.3.0
enableSuperuserAccess: true
instances: 1
startDelay: 300
primaryUpdateStrategy: unsupervised
postgresql:
parameters:
shared_buffers: "512MB"
max_wal_size: "2GB"
wal_compression: "on"
shared_preload_libraries:
- "vectors.so"
pg_hba:
- host all all 0.0.0.0/0 md5
bootstrap:
initdb:
database: immich
owner: postgres
dataChecksums: true
secret:
name: immich-db-pass
postInitApplicationSQL:
- ALTER SYSTEM SET search_path TO "$user", public, vectors;
- SET search_path TO "$user", public, vectors;
- CREATE EXTENSION IF NOT EXISTS "vectors";
- ALTER SCHEMA vectors OWNER TO "postgres";
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA vectors TO "postgres";
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "postgres";
- CREATE EXTENSION IF NOT EXISTS cube;
- CREATE EXTENSION IF NOT EXISTS earthdistance;
storage:
size: 50Gi
storageClass: nfs-storage
pvcTemplate:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
storageClassName: nfs-storage
volumeMode: Filesystem
resources:
requests:
memory: "1Gi"
cpu: "500m"
limits:
memory: "2Gi"
cpu: "1"
affinity:
enablePodAntiAffinity: true
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- nas.homenet
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- home.homenet
- nas.homenet
tolerations:
- key: cnpg.io/cluster
effect: NoSchedule
value: immich-db
operator: Equal
additionalPodAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.component
operator: In
values:
- "pg-cluster"
topologyKey: topology.kubernetes.io/zone
monitoring:
enablePodMonitor: true

View File

@ -1,5 +1,5 @@
image:
tag: "9.2"
tag: "9.3"
pullPolicy: Always
env:
email: "postgres@hexor.cy"

View File

@ -13,9 +13,6 @@ spec:
targetRevision: HEAD
path: k8s/core/system-upgrade
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

View File

@ -16,7 +16,7 @@ spec:
serviceAccountName: system-upgrade
upgrade:
image: rancher/k3s-upgrade
version: v1.32.3+k3s1
version: v1.33.1+k3s1
---
# Agent plan
apiVersion: upgrade.cattle.io/v1
@ -39,5 +39,5 @@ spec:
serviceAccountName: system-upgrade
upgrade:
image: rancher/k3s-upgrade
version: v1.32.3+k3s1
version: v1.33.1+k3s1

View File

@ -18,7 +18,7 @@ data:
location / {
proxy_pass http://localhost:8123;
sub_filter 'Minecraft Dynamic Map' "Hexor's MC server";
sub_filter "</body>" '<p style="background-color: #CEC6CB; color: black; padding: 10px 10px; text-align: center; font-size: large; text-decoration: none; display: inline-block; border-radius: 4px; position: absolute; top: 10px; left: 150px;">Get <a href="https://prismlauncher.org/" >Prism Launcher</a> and <a href="/clients/1.12.2.zip" >client.zip</a> for this server</p></body>';
sub_filter "</body>" '<p style="background-color: #CEC6CB; color: black; padding: 10px 10px; text-align: center; font-size: large; text-decoration: none; display: inline-block; border-radius: 4px; position: absolute; top: 10px; left: 150px;">Get <a href="https://github.com/PrismLauncher/PrismLauncher/releases/tag/8.4" >Prism Launcher</a> and <a href="/clients/1.12.2.zip" >client.zip</a> for this server. Server address <b>minecraft.hexor.cy:30565</b></p></body>';
sub_filter_once off;
}
location /clients/ {
@ -61,7 +61,7 @@ spec:
- name: storage
hostPath:
path: /k8s/mc-server/
type: Directory
type: DirectoryOrCreate
- name: nginx-config
configMap:
name: nginx-config
@ -82,8 +82,8 @@ spec:
image: 'openjdk:8-jdk-alpine'
command: ["java"]
args:
- -Xms12G
- -Xmx12G
- -Xms4G
- -Xmx4G
- -XX:+UseG1GC
- -XX:+ParallelRefProcEnabled
- -XX:MaxGCPauseMillis=200
@ -108,10 +108,10 @@ spec:
workingDir: /mc/
resources:
limits:
memory: 15Gi
memory: 8Gi
#cpu: 1
requests:
memory: 10Gi
memory: 5Gi
#cpu: 100m
ports:
- name: game