Compare commits

..
Author SHA1 Message Date
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
10 changed files with 181 additions and 14 deletions
-5
View File
@@ -42,10 +42,7 @@ ArgoCD homelab project
| Application | Status | | Application | Status |
| :--- | :---: | | :--- | :---: |
| **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) | | **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) |
| **firefly-iii** | [![firefly-iii](https://ag.hexor.cy/api/badge?name=firefly-iii&revision=true)](https://ag.hexor.cy/applications/argocd/firefly-iii) |
| **furumi** | [![furumi](https://ag.hexor.cy/api/badge?name=furumi&revision=true)](https://ag.hexor.cy/applications/argocd/furumi) | | **furumi** | [![furumi](https://ag.hexor.cy/api/badge?name=furumi&revision=true)](https://ag.hexor.cy/applications/argocd/furumi) |
| **gitea** | [![gitea](https://ag.hexor.cy/api/badge?name=gitea&revision=true)](https://ag.hexor.cy/applications/argocd/gitea) | | **gitea** | [![gitea](https://ag.hexor.cy/api/badge?name=gitea&revision=true)](https://ag.hexor.cy/applications/argocd/gitea) |
| **greece-notifier** | [![greece-notifier](https://ag.hexor.cy/api/badge?name=greece-notifier&revision=true)](https://ag.hexor.cy/applications/argocd/greece-notifier) | | **greece-notifier** | [![greece-notifier](https://ag.hexor.cy/api/badge?name=greece-notifier&revision=true)](https://ag.hexor.cy/applications/argocd/greece-notifier) |
@@ -55,9 +52,7 @@ ArgoCD homelab project
| **jellyfin** | [![jellyfin](https://ag.hexor.cy/api/badge?name=jellyfin&revision=true)](https://ag.hexor.cy/applications/argocd/jellyfin) | | **jellyfin** | [![jellyfin](https://ag.hexor.cy/api/badge?name=jellyfin&revision=true)](https://ag.hexor.cy/applications/argocd/jellyfin) |
| **k8s-secrets** | [![k8s-secrets](https://ag.hexor.cy/api/badge?name=k8s-secrets&revision=true)](https://ag.hexor.cy/applications/argocd/k8s-secrets) | | **k8s-secrets** | [![k8s-secrets](https://ag.hexor.cy/api/badge?name=k8s-secrets&revision=true)](https://ag.hexor.cy/applications/argocd/k8s-secrets) |
| **khm** | [![khm](https://ag.hexor.cy/api/badge?name=khm&revision=true)](https://ag.hexor.cy/applications/argocd/khm) | | **khm** | [![khm](https://ag.hexor.cy/api/badge?name=khm&revision=true)](https://ag.hexor.cy/applications/argocd/khm) |
| **lan-play** | [![lan-play](https://ag.hexor.cy/api/badge?name=lan-play&revision=true)](https://ag.hexor.cy/applications/argocd/lan-play) |
| **lidarr** | [![lidarr](https://ag.hexor.cy/api/badge?name=lidarr&revision=true)](https://ag.hexor.cy/applications/argocd/lidarr) | | **lidarr** | [![lidarr](https://ag.hexor.cy/api/badge?name=lidarr&revision=true)](https://ag.hexor.cy/applications/argocd/lidarr) |
| **llamacpp** | [![llamacpp](https://ag.hexor.cy/api/badge?name=llamacpp&revision=true)](https://ag.hexor.cy/applications/argocd/llamacpp) |
| **matrix** | [![matrix](https://ag.hexor.cy/api/badge?name=matrix&revision=true)](https://ag.hexor.cy/applications/argocd/matrix) | | **matrix** | [![matrix](https://ag.hexor.cy/api/badge?name=matrix&revision=true)](https://ag.hexor.cy/applications/argocd/matrix) |
| **mtproxy** | [![mtproxy](https://ag.hexor.cy/api/badge?name=mtproxy&revision=true)](https://ag.hexor.cy/applications/argocd/mtproxy) | | **mtproxy** | [![mtproxy](https://ag.hexor.cy/api/badge?name=mtproxy&revision=true)](https://ag.hexor.cy/applications/argocd/mtproxy) |
| **n8n** | [![n8n](https://ag.hexor.cy/api/badge?name=n8n&revision=true)](https://ag.hexor.cy/applications/argocd/n8n) | | **n8n** | [![n8n](https://ag.hexor.cy/api/badge?name=n8n&revision=true)](https://ag.hexor.cy/applications/argocd/n8n) |
-1
View File
@@ -10,7 +10,6 @@ resources:
- postgres.yaml - postgres.yaml
- storage.yaml - storage.yaml
- storage-prep.yaml - storage-prep.yaml
- traefik-ai.yaml
- network-policy.yaml - network-policy.yaml
helmCharts: helmCharts:
+1
View File
@@ -8,3 +8,4 @@ resources:
- ingress.yaml - ingress.yaml
- deployment.yaml - deployment.yaml
- servicemonitor.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
+4 -1
View File
@@ -45,8 +45,11 @@ apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: lan-play-local name: lan-play-local
labels:
firefly.hexor.cy/private-ai: "true"
annotations:
kubernetes.io/ingress.class: traefik-ai
spec: spec:
ingressClassName: traefik
rules: rules:
- host: video.lan - host: video.lan
http: http:
+1 -1
View File
@@ -70,6 +70,7 @@ spec:
action: suggest action: suggest
template: "{{ `{{ user.email }}` }}" template: "{{ `{{ user.email }}` }}"
set_email_verification: always set_email_verification: always
on_conflict: replace
data: data:
- secretKey: oauth_client_id - secretKey: oauth_client_id
sourceRef: sourceRef:
@@ -93,4 +94,3 @@ spec:
metadataPolicy: None metadataPolicy: None
key: ca76867f-49f3-4a30-9ef3-b05af35ee49a key: ca76867f-49f3-4a30-9ef3-b05af35ee49a
property: fields[1].value property: fields[1].value
on_conflict: replace
+1 -1
View File
@@ -18,7 +18,7 @@ spec:
spec: spec:
nodeSelector: nodeSelector:
kubernetes.io/os: linux kubernetes.io/os: linux
kubernetes.io/hostname: master.tail2fe2d.ts.net # kubernetes.io/hostname: master.tail2fe2d.ts.net
volumes: volumes:
- name: data - name: data
persistentVolumeClaim: persistentVolumeClaim:
@@ -7,6 +7,7 @@ resources:
- coredns-internal-resolve.yaml - coredns-internal-resolve.yaml
- https-middleware.yaml - https-middleware.yaml
- node-external-ip-labeler.yaml - node-external-ip-labeler.yaml
- traefik-ai.yaml
helmCharts: helmCharts:
- name: csi-driver-nfs - name: csi-driver-nfs
@@ -9,11 +9,13 @@ apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: traefik-ai name: traefik-ai
namespace: kube-system
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role kind: Role
metadata: metadata:
name: traefik-ai name: traefik-ai
namespace: firefly-iii
rules: rules:
- apiGroups: - apiGroups:
- "" - ""
@@ -52,6 +54,7 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
metadata: metadata:
name: traefik-ai name: traefik-ai
namespace: firefly-iii
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: Role kind: Role
@@ -59,11 +62,65 @@ roleRef:
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: traefik-ai 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 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
name: firefly-traefik-ai name: traefik-ai
rules: rules:
- apiGroups: - apiGroups:
- "" - ""
@@ -85,20 +142,21 @@ rules:
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
name: firefly-traefik-ai name: traefik-ai
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole
name: firefly-traefik-ai name: traefik-ai
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: traefik-ai name: traefik-ai
namespace: firefly-iii namespace: kube-system
--- ---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: traefik-ai name: traefik-ai
namespace: kube-system
labels: labels:
app.kubernetes.io/name: traefik-ai app.kubernetes.io/name: traefik-ai
spec: spec:
@@ -130,7 +188,7 @@ spec:
args: args:
- --entrypoints.web.address=192.168.1.117:80 - --entrypoints.web.address=192.168.1.117:80
- --providers.kubernetesingress=true - --providers.kubernetesingress=true
- --providers.kubernetesingress.namespaces=firefly-iii - --providers.kubernetesingress.namespaces=firefly-iii,lan-play
- --providers.kubernetesingress.ingressclass=traefik-ai - --providers.kubernetesingress.ingressclass=traefik-ai
- --providers.kubernetesingress.labelselector=firefly.hexor.cy/private-ai=true - --providers.kubernetesingress.labelselector=firefly.hexor.cy/private-ai=true
- --providers.kubernetescrd=false - --providers.kubernetescrd=false
+4
View File
@@ -75,6 +75,10 @@ prometheus:
static_configs: static_configs:
- targets: ['prom-a2s-exporter.counter-strike.svc:9841'] - targets: ['prom-a2s-exporter.counter-strike.svc:9841']
labels: {instance: master} labels: {instance: master}
- job_name: macos_prom_exporter
static_configs:
- targets: ['macbook-pro.tail2fe2d.ts.net:9100']
labels: {instance: ultrabook-pro}
retention: "380d" retention: "380d"
retentionSize: "0" retentionSize: "0"