Compare commits

..
Author SHA1 Message Date
Gitea Actions Bot e7f67ed204 Auto-update README with current k8s applications
Keycloak Terraform / Terraform (pull_request) Successful in 12s
Generated by CI/CD workflow on 2026-09-12 04:20:14

This PR updates the README.md file with the current list of applications found in the k8s/ directory structure.
2026-09-12 04:20:14 +00:00
ab 29c5b00c16 Added airtrail deployment
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Check with kubeconform / lint (push) Successful in 7s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-09-12 07:18:56 +03:00
ab 76b2090ccc Added airtrail psql user
Check with kubeconform / lint (push) Successful in 9s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 10s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-09-12 07:11:22 +03:00
ab bc83f7dd24 Update k8s/apps/pasarguard/deployment.yaml
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 20s
Check with kubeconform / lint (push) Successful in 14s
Auto-update README / Generate README and Create MR (push) Successful in 21s
2026-09-02 08:48:55 +00:00
Aleksandr Bogomiakov 5768a4ff3b fix grafana datasource
Check with kubeconform / lint (push) Successful in 7s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-09-01 23:06:49 +01:00
Aleksandr Bogomiakov 7ce98c4982 fix loki helm chart path
Check with kubeconform / lint (push) Successful in 5s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 12s
2026-09-01 22:35:02 +01:00
Aleksandr Bogomiakov 18f2654ff1 updated prom 84.3.0 -> 88.6.2, loki 6.29.0 -> 18.11.7, promtail 6.16.6 -> 6.17.1
Auto-update README / Generate README and Create MR (push) Successful in 11s
Check with kubeconform / lint (push) Successful in 6s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
2026-09-01 22:30:43 +01:00
Aleksandr Bogomiakov 2fb63dded8 updated longhorn 1.12.0 -> 1.12.1
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 8s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 5s
2026-09-01 22:25:34 +01:00
Aleksandr Bogomiakov 46bf1dc41b updated keycloak 7.1.11 -> 7.3.1
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 5s
Check with kubeconform / lint (push) Successful in 5s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-09-01 22:23:48 +01:00
Aleksandr Bogomiakov eda408aaea updated external-secrets 1.1.0 -> 2.10.0
Check with kubeconform / lint (push) Successful in 15s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 9s
Auto-update README / Generate README and Create MR (push) Successful in 12s
2026-09-01 22:21:37 +01:00
Aleksandr Bogomiakov 7b9da9236f updated cert-manager 1.20.0 -> 1.21.1
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 20s
2026-09-01 22:19:01 +01:00
Aleksandr Bogomiakov f2a607fda1 Updated k3s v1.36.1+k3s1 -> v1.36.4+k3s1
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 9s
Check with kubeconform / lint (push) Successful in 7s
2026-09-01 22:14:55 +01:00
Aleksandr Bogomiakov d57bb01608 Updated argoCD
Check with kubeconform / lint (push) Successful in 7s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Auto-update README / Generate README and Create MR (push) Successful in 12s
2026-09-01 22:06:58 +01:00
Aleksandr Bogomiakov 76f77fbc56 Fixed GITEA__webhook__ALLOWED_HOST_LIST -> GITEA__security__ALLOWED_HOST_LIST
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 23s
Check with kubeconform / lint (push) Successful in 10s
Auto-update README / Generate README and Create MR (push) Successful in 8s
2026-09-01 21:51:08 +01:00
Ultradesu e90efbd016 Added proxy
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 7s
2026-08-14 10:55:52 +01:00
Ultradesu b0378ffb40 Added macos exporter
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 8s
Check with kubeconform / lint (push) Successful in 8s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-08-11 11:30:32 +01:00
Ultradesu 5c2e7d0e33 Removed nodeselector for web-petting
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 11s
Check with kubeconform / lint (push) Successful in 11s
Auto-update README / Generate README and Create MR (push) Successful in 30s
2026-08-08 11:59:07 +01:00
Ultradesu b9052a99f1 Fixed matrix secrets
Check with kubeconform / lint (push) Successful in 6s
Auto-update README / Generate README and Create MR (push) Successful in 7s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 5s
2026-08-07 11:17:50 +01:00
Ultradesu d41171955b Moved traefik-ai to kube-system-custom, fixed lan-play ingress
Check with kubeconform / lint (push) Successful in 7s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 7s
Auto-update README / Generate README and Create MR (push) Successful in 9s
2026-08-05 13:44:30 +01:00
27 changed files with 385 additions and 22 deletions
+1
View File
@@ -42,6 +42,7 @@ ArgoCD homelab project
| Application | Status |
| :--- | :---: |
| **airtrail** | [![airtrail](https://ag.hexor.cy/api/badge?name=airtrail&revision=true)](https://ag.hexor.cy/applications/argocd/airtrail) |
| **amnezia** | [![amnezia](https://ag.hexor.cy/api/badge?name=amnezia&revision=true)](https://ag.hexor.cy/applications/argocd/amnezia) |
| **comfyui** | [![comfyui](https://ag.hexor.cy/api/badge?name=comfyui&revision=true)](https://ag.hexor.cy/applications/argocd/comfyui) |
| **doka2-lobby-list** | [![doka2-lobby-list](https://ag.hexor.cy/api/badge?name=doka2-lobby-list&revision=true)](https://ag.hexor.cy/applications/argocd/doka2-lobby-list) |
+20
View File
@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: airtrail
namespace: argocd
spec:
project: apps
destination:
namespace: airtrail
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/airtrail
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
+66
View File
@@ -0,0 +1,66 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: airtrail
labels:
app: airtrail
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: airtrail
template:
metadata:
labels:
app: airtrail
spec:
securityContext:
fsGroup: 1000
containers:
- name: airtrail
image: johly/airtrail:latest
imagePullPolicy: Always
ports:
- name: http
containerPort: 3000
env:
- name: ORIGIN
value: https://at.hexor.cy
- name: DB_URL
valueFrom:
secretKeyRef:
name: airtrail-creds
key: DB_URL
- name: UPLOAD_LOCATION
value: /app/uploads
- name: BODY_SIZE_LIMIT
value: 20M
volumeMounts:
- name: uploads
mountPath: /app/uploads
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 1000m
memory: 1Gi
startupProbe:
tcpSocket:
port: http
periodSeconds: 10
failureThreshold: 30
readinessProbe:
tcpSocket:
port: http
periodSeconds: 10
livenessProbe:
tcpSocket:
port: http
periodSeconds: 30
volumes:
- name: uploads
persistentVolumeClaim:
claimName: airtrail-uploads
+25
View File
@@ -0,0 +1,25 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: airtrail-creds
spec:
target:
name: airtrail-creds
deletionPolicy: Delete
template:
type: Opaque
data:
DB_URL: |-
postgresql://airtrail:{{ .airtrail | trim | urlquery | replace "+" "%20" }}@psql.psql.svc:5432/airtrail
data:
- secretKey: airtrail
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[21].value
+25
View File
@@ -0,0 +1,25 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: airtrail-tls-ingress
annotations:
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"
spec:
ingressClassName: traefik
rules:
- host: at.hexor.cy
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: airtrail
port:
number: 3000
tls:
- secretName: airtrail-tls
hosts:
- at.hexor.cy
+10
View File
@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- external-secrets.yaml
- storage.yaml
- deployment.yaml
- service.yaml
- ingress.yaml
+15
View File
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: airtrail
labels:
app: airtrail
spec:
type: ClusterIP
selector:
app: airtrail
ports:
- name: http
protocol: TCP
port: 3000
targetPort: http
+11
View File
@@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: airtrail-uploads
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 1Gi
-1
View File
@@ -10,7 +10,6 @@ resources:
- postgres.yaml
- storage.yaml
- storage-prep.yaml
- traefik-ai.yaml
- network-policy.yaml
helmCharts:
+1
View File
@@ -8,3 +8,4 @@ resources:
- ingress.yaml
- deployment.yaml
- servicemonitor.yaml
- socks-proxy.yaml
+106
View File
@@ -0,0 +1,106 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: furumi-socks-proxy
labels:
app: furumi-socks-proxy
spec:
replicas: 1
selector:
matchLabels:
app: furumi-socks-proxy
template:
metadata:
labels:
app: furumi-socks-proxy
spec:
nodeSelector:
kubernetes.io/hostname: ai.tail2fe2d.ts.net
tolerations:
- key: workload
operator: Equal
value: ai
effect: NoSchedule
containers:
- name: socks-proxy
image: serjs/go-socks5-proxy:v0.0.4
imagePullPolicy: IfNotPresent
env:
- name: REQUIRE_AUTH
value: "true"
- name: PROXY_USER
value: furumi
- name: PROXY_PASSWORD
value: furumi
- name: PROXY_PORT
value: "1080"
ports:
- name: socks5
containerPort: 1080
protocol: TCP
readinessProbe:
tcpSocket:
port: socks5
initialDelaySeconds: 2
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 3
livenessProbe:
tcpSocket:
port: socks5
initialDelaySeconds: 10
periodSeconds: 30
timeoutSeconds: 2
failureThreshold: 3
resources:
requests:
cpu: 10m
memory: 16Mi
limits:
cpu: 200m
memory: 64Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
securityContext:
seccompProfile:
type: RuntimeDefault
---
apiVersion: v1
kind: Service
metadata:
name: furumi-socks-proxy
labels:
app: furumi-socks-proxy
spec:
type: ClusterIP
selector:
app: furumi-socks-proxy
ports:
- name: socks5
protocol: TCP
port: 1080
targetPort: socks5
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: furumi-socks-proxy-ingress
spec:
podSelector:
matchLabels:
app: furumi-socks-proxy
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: furumi-player
ports:
- protocol: TCP
port: 1080
+1 -1
View File
@@ -48,7 +48,7 @@ spec:
value: "true"
- name: GITEA__service__CAPTCHA_TYPE
value: "cfturnstile"
- name: GITEA__webhook__ALLOWED_HOST_LIST
- name: GITEA__security__ALLOWED_HOST_LIST
value: "*"
envFrom:
- secretRef:
+4 -1
View File
@@ -45,8 +45,11 @@ apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: lan-play-local
labels:
firefly.hexor.cy/private-ai: "true"
annotations:
kubernetes.io/ingress.class: traefik-ai
spec:
ingressClassName: traefik
rules:
- host: video.lan
http:
+1 -1
View File
@@ -70,6 +70,7 @@ spec:
action: suggest
template: "{{ `{{ user.email }}` }}"
set_email_verification: always
on_conflict: replace
data:
- secretKey: oauth_client_id
sourceRef:
@@ -93,4 +94,3 @@ spec:
metadataPolicy: None
key: ca76867f-49f3-4a30-9ef3-b05af35ee49a
property: fields[1].value
on_conflict: replace
+1 -1
View File
@@ -34,7 +34,7 @@ spec:
mountPath: /templates/subscription
containers:
- name: pasarguard-web
image: pasarguard/panel:v5.0.3
image: pasarguard/panel:v5.3.0
imagePullPolicy: Always
envFrom:
- secretRef:
+1 -1
View File
@@ -18,7 +18,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
kubernetes.io/hostname: master.tail2fe2d.ts.net
# kubernetes.io/hostname: master.tail2fe2d.ts.net
volumes:
- name: data
persistentVolumeClaim:
+1 -1
View File
@@ -10,7 +10,7 @@ resources:
helmCharts:
- name: argo-cd
repo: https://argoproj.github.io/argo-helm
version: 10.2.1
version: 10.6.0
releaseName: argocd
namespace: argocd
valuesFile: values.yaml
+1 -1
View File
@@ -10,7 +10,7 @@ resources:
helmCharts:
- name: cert-manager
repo: https://charts.jetstack.io
version: 1.20.0
version: 1.21.1
releaseName: cert-manager
namespace: cert-manager
valuesFile: values.yaml
+1 -1
View File
@@ -7,7 +7,7 @@ resources:
helmCharts:
- name: external-secrets
repo: https://charts.external-secrets.io
version: 1.1.0
version: 2.10.0
releaseName: external-secrets
namespace: external-secrets
valuesFile: values.yaml
+1 -1
View File
@@ -9,7 +9,7 @@ resources:
helmCharts:
- name: keycloakx
repo: https://codecentric.github.io/helm-charts
version: 7.1.11
version: 7.3.1
releaseName: keycloak
namespace: keycloak
valuesFile: values.yaml
@@ -7,6 +7,7 @@ resources:
- coredns-internal-resolve.yaml
- https-middleware.yaml
- node-external-ip-labeler.yaml
- traefik-ai.yaml
helmCharts:
- name: csi-driver-nfs
@@ -9,11 +9,13 @@ apiVersion: v1
kind: ServiceAccount
metadata:
name: traefik-ai
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: traefik-ai
namespace: firefly-iii
rules:
- apiGroups:
- ""
@@ -52,6 +54,7 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: traefik-ai
namespace: firefly-iii
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
@@ -59,11 +62,65 @@ roleRef:
subjects:
- kind: ServiceAccount
name: traefik-ai
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: traefik-ai
namespace: lan-play
rules:
- apiGroups:
- ""
resources:
- services
- secrets
- endpoints
verbs:
- get
- list
- watch
- apiGroups:
- discovery.k8s.io
resources:
- endpointslices
verbs:
- get
- list
- watch
- apiGroups:
- networking.k8s.io
resources:
- ingresses
verbs:
- get
- list
- watch
- apiGroups:
- networking.k8s.io
resources:
- ingresses/status
verbs:
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: traefik-ai
namespace: lan-play
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: traefik-ai
subjects:
- kind: ServiceAccount
name: traefik-ai
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: firefly-traefik-ai
name: traefik-ai
rules:
- apiGroups:
- ""
@@ -85,20 +142,21 @@ rules:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: firefly-traefik-ai
name: traefik-ai
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: firefly-traefik-ai
name: traefik-ai
subjects:
- kind: ServiceAccount
name: traefik-ai
namespace: firefly-iii
namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: traefik-ai
namespace: kube-system
labels:
app.kubernetes.io/name: traefik-ai
spec:
@@ -130,7 +188,7 @@ spec:
args:
- --entrypoints.web.address=192.168.1.117:80
- --providers.kubernetesingress=true
- --providers.kubernetesingress.namespaces=firefly-iii
- --providers.kubernetesingress.namespaces=firefly-iii,lan-play
- --providers.kubernetesingress.ingressclass=traefik-ai
- --providers.kubernetesingress.labelselector=firefly.hexor.cy/private-ai=true
- --providers.kubernetescrd=false
+1 -1
View File
@@ -7,7 +7,7 @@ kind: Kustomization
helmCharts:
- name: longhorn
repo: https://charts.longhorn.io
version: 1.12.0
version: 1.12.1
releaseName: longhorn
namespace: longhorn-system
valuesFile: values.yaml
+13
View File
@@ -144,6 +144,8 @@ spec:
{{ .amnezia_fellow }}
USER_web_petting: |-
{{ .web_petting }}
USER_airtrail: |-
{{ .airtrail }}
data:
- secretKey: authentik
sourceRef:
@@ -365,3 +367,14 @@ spec:
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[20].value
- secretKey: airtrail
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[21].value
+4 -4
View File
@@ -14,15 +14,15 @@ resources:
helmCharts:
- name: kube-prometheus-stack
repo: https://prometheus-community.github.io/helm-charts
version: 84.3.0
version: 88.6.2
releaseName: prometheus
namespace: prometheus
valuesFile: prom-values.yaml
includeCRDs: true
- name: loki
repo: https://grafana.github.io/helm-charts
version: 6.29.0
repo: https://grafana-community.github.io/helm-charts
version: 18.11.7
releaseName: loki
namespace: prometheus
valuesFile: loki-values.yaml
@@ -30,7 +30,7 @@ helmCharts:
- name: promtail
repo: https://grafana.github.io/helm-charts
version: 6.16.6
version: 6.17.1
releaseName: promtail
namespace: prometheus
valuesFile: promtail-values.yaml
+9
View File
@@ -75,6 +75,10 @@ prometheus:
static_configs:
- targets: ['prom-a2s-exporter.counter-strike.svc:9841']
labels: {instance: master}
- job_name: macos_prom_exporter
static_configs:
- targets: ['macbook-pro.tail2fe2d.ts.net:9100']
labels: {instance: ultrabook-pro}
retention: "380d"
retentionSize: "0"
@@ -91,6 +95,11 @@ prometheus:
grafana:
enabled: true
sidecar:
datasources:
alertmanager:
uid: ff9iga3xqregwc
serviceAccount:
create: true
+2 -2
View File
@@ -18,7 +18,7 @@ spec:
serviceAccountName: system-upgrade
upgrade:
image: rancher/k3s-upgrade
version: v1.36.1+k3s1
version: v1.36.4+k3s1
---
# Agent plan
apiVersion: upgrade.cattle.io/v1
@@ -43,4 +43,4 @@ spec:
serviceAccountName: system-upgrade
upgrade:
image: rancher/k3s-upgrade
version: v1.36.1+k3s1
version: v1.36.4+k3s1