Compare commits

...

5 Commits

Author SHA1 Message Date
Gitea Actions Bot 4ad89b7959 Auto-update README with current k8s applications
Keycloak Terraform / Terraform (pull_request) Successful in 13s
Generated by CI/CD workflow on 2026-06-04 12:57:22

This PR updates the README.md file with the current list of applications found in the k8s/ directory structure.
2026-06-04 12:57:22 +00:00
Ultradesu 7d766d1cf9 Fixed ai.hexor.cy
Keycloak Terraform / Terraform (push) Successful in 15s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 6s
Check with kubeconform / lint (push) Successful in 9s
Auto-update README / Generate README and Create MR (push) Successful in 14s
2026-06-04 15:56:36 +03:00
Ultradesu 2b17fe67e5 Fixed proxy.hexor.cy
Keycloak Terraform / Terraform (push) Successful in 14s
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 5s
2026-06-04 15:34:00 +03:00
Ultradesu 2b26f21649 Fixed proxy.hexor.cy
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 14s
Auto-update README / Generate README and Create MR (push) Failing after 10m48s
Check with kubeconform / lint (push) Failing after 11m55s
2026-06-04 15:24:55 +03:00
Ultradesu 0a3430ea97 Updated pasarguard script
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 34s
Check with kubeconform / lint (push) Successful in 24s
Auto-update README / Generate README and Create MR (push) Failing after 12m45s
2026-06-04 14:52:27 +03:00
6 changed files with 77 additions and 38 deletions
+8 -2
View File
@@ -13,15 +13,19 @@ ArgoCD homelab project
| Application | Status | | Application | Status |
| :--- | :---: | | :--- | :---: |
| **argocd** | [![argocd](https://ag.hexor.cy/api/badge?name=argocd&revision=true)](https://ag.hexor.cy/applications/argocd/argocd) | | **argocd** | [![argocd](https://ag.hexor.cy/api/badge?name=argocd&revision=true)](https://ag.hexor.cy/applications/argocd/argocd) |
| **auth-proxy** | [![auth-proxy](https://ag.hexor.cy/api/badge?name=auth-proxy&revision=true)](https://ag.hexor.cy/applications/argocd/auth-proxy) |
| **authentik** | [![authentik](https://ag.hexor.cy/api/badge?name=authentik&revision=true)](https://ag.hexor.cy/applications/argocd/authentik) | | **authentik** | [![authentik](https://ag.hexor.cy/api/badge?name=authentik&revision=true)](https://ag.hexor.cy/applications/argocd/authentik) |
| **cert-manager** | [![cert-manager](https://ag.hexor.cy/api/badge?name=cert-manager&revision=true)](https://ag.hexor.cy/applications/argocd/cert-manager) | | **cert-manager** | [![cert-manager](https://ag.hexor.cy/api/badge?name=cert-manager&revision=true)](https://ag.hexor.cy/applications/argocd/cert-manager) |
| **external-secrets** | [![external-secrets](https://ag.hexor.cy/api/badge?name=external-secrets&revision=true)](https://ag.hexor.cy/applications/argocd/external-secrets) | | **external-secrets** | [![external-secrets](https://ag.hexor.cy/api/badge?name=external-secrets&revision=true)](https://ag.hexor.cy/applications/argocd/external-secrets) |
| **gpu** | [![gpu](https://ag.hexor.cy/api/badge?name=gpu&revision=true)](https://ag.hexor.cy/applications/argocd/gpu) | | **gpu** | [![gpu](https://ag.hexor.cy/api/badge?name=gpu&revision=true)](https://ag.hexor.cy/applications/argocd/gpu) |
| **kanidm** | [![kanidm](https://ag.hexor.cy/api/badge?name=kanidm&revision=true)](https://ag.hexor.cy/applications/argocd/kanidm) |
| **keycloak** | [![keycloak](https://ag.hexor.cy/api/badge?name=keycloak&revision=true)](https://ag.hexor.cy/applications/argocd/keycloak) |
| **kube-system-custom** | [![kube-system-custom](https://ag.hexor.cy/api/badge?name=kube-system-custom&revision=true)](https://ag.hexor.cy/applications/argocd/kube-system-custom) | | **kube-system-custom** | [![kube-system-custom](https://ag.hexor.cy/api/badge?name=kube-system-custom&revision=true)](https://ag.hexor.cy/applications/argocd/kube-system-custom) |
| **kubernetes-dashboard** | [![kubernetes-dashboard](https://ag.hexor.cy/api/badge?name=kubernetes-dashboard&revision=true)](https://ag.hexor.cy/applications/argocd/kubernetes-dashboard) | | **kubernetes-dashboard** | [![kubernetes-dashboard](https://ag.hexor.cy/api/badge?name=kubernetes-dashboard&revision=true)](https://ag.hexor.cy/applications/argocd/kubernetes-dashboard) |
| **longhorn** | [![longhorn](https://ag.hexor.cy/api/badge?name=longhorn&revision=true)](https://ag.hexor.cy/applications/argocd/longhorn) | | **longhorn** | [![longhorn](https://ag.hexor.cy/api/badge?name=longhorn&revision=true)](https://ag.hexor.cy/applications/argocd/longhorn) |
| **postgresql** | [![postgresql](https://ag.hexor.cy/api/badge?name=postgresql&revision=true)](https://ag.hexor.cy/applications/argocd/postgresql) | | **postgresql** | [![postgresql](https://ag.hexor.cy/api/badge?name=postgresql&revision=true)](https://ag.hexor.cy/applications/argocd/postgresql) |
| **prom-stack** | [![prom-stack](https://ag.hexor.cy/api/badge?name=prom-stack&revision=true)](https://ag.hexor.cy/applications/argocd/prom-stack) | | **prom-stack** | [![prom-stack](https://ag.hexor.cy/api/badge?name=prom-stack&revision=true)](https://ag.hexor.cy/applications/argocd/prom-stack) |
| **reloader** | [![reloader](https://ag.hexor.cy/api/badge?name=reloader&revision=true)](https://ag.hexor.cy/applications/argocd/reloader) |
| **system-upgrade** | [![system-upgrade](https://ag.hexor.cy/api/badge?name=system-upgrade&revision=true)](https://ag.hexor.cy/applications/argocd/system-upgrade) | | **system-upgrade** | [![system-upgrade](https://ag.hexor.cy/api/badge?name=system-upgrade&revision=true)](https://ag.hexor.cy/applications/argocd/system-upgrade) |
### Games ### Games
@@ -39,8 +43,7 @@ ArgoCD homelab project
| Application | Status | | Application | Status |
| :--- | :---: | | :--- | :---: |
| **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) |
| **furumi-dev** | [![furumi-dev](https://ag.hexor.cy/api/badge?name=furumi-dev&revision=true)](https://ag.hexor.cy/applications/argocd/furumi-dev) | | **furumi** | [![furumi](https://ag.hexor.cy/api/badge?name=furumi&revision=true)](https://ag.hexor.cy/applications/argocd/furumi) |
| **furumi-server** | [![furumi-server](https://ag.hexor.cy/api/badge?name=furumi-server&revision=true)](https://ag.hexor.cy/applications/argocd/furumi-server) |
| **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) |
| **hexound** | [![hexound](https://ag.hexor.cy/api/badge?name=hexound&revision=true)](https://ag.hexor.cy/applications/argocd/hexound) | | **hexound** | [![hexound](https://ag.hexor.cy/api/badge?name=hexound&revision=true)](https://ag.hexor.cy/applications/argocd/hexound) |
@@ -62,9 +65,12 @@ ArgoCD homelab project
| **sonarr-stack** | [![sonarr-stack](https://ag.hexor.cy/api/badge?name=sonarr-stack&revision=true)](https://ag.hexor.cy/applications/argocd/sonarr-stack) | | **sonarr-stack** | [![sonarr-stack](https://ag.hexor.cy/api/badge?name=sonarr-stack&revision=true)](https://ag.hexor.cy/applications/argocd/sonarr-stack) |
| **stirling-pdf** | [![stirling-pdf](https://ag.hexor.cy/api/badge?name=stirling-pdf&revision=true)](https://ag.hexor.cy/applications/argocd/stirling-pdf) | | **stirling-pdf** | [![stirling-pdf](https://ag.hexor.cy/api/badge?name=stirling-pdf&revision=true)](https://ag.hexor.cy/applications/argocd/stirling-pdf) |
| **syncthing** | [![syncthing](https://ag.hexor.cy/api/badge?name=syncthing&revision=true)](https://ag.hexor.cy/applications/argocd/syncthing) | | **syncthing** | [![syncthing](https://ag.hexor.cy/api/badge?name=syncthing&revision=true)](https://ag.hexor.cy/applications/argocd/syncthing) |
| **teamspeak** | [![teamspeak](https://ag.hexor.cy/api/badge?name=teamspeak&revision=true)](https://ag.hexor.cy/applications/argocd/teamspeak) |
| **tg-bots** | [![tg-bots](https://ag.hexor.cy/api/badge?name=tg-bots&revision=true)](https://ag.hexor.cy/applications/argocd/tg-bots) | | **tg-bots** | [![tg-bots](https://ag.hexor.cy/api/badge?name=tg-bots&revision=true)](https://ag.hexor.cy/applications/argocd/tg-bots) |
| **vaultwarden** | [![vaultwarden](https://ag.hexor.cy/api/badge?name=vaultwarden&revision=true)](https://ag.hexor.cy/applications/argocd/vaultwarden) | | **vaultwarden** | [![vaultwarden](https://ag.hexor.cy/api/badge?name=vaultwarden&revision=true)](https://ag.hexor.cy/applications/argocd/vaultwarden) |
| **vpn** | [![vpn](https://ag.hexor.cy/api/badge?name=vpn&revision=true)](https://ag.hexor.cy/applications/argocd/vpn) | | **vpn** | [![vpn](https://ag.hexor.cy/api/badge?name=vpn&revision=true)](https://ag.hexor.cy/applications/argocd/vpn) |
| **web-petting** | [![web-petting](https://ag.hexor.cy/api/badge?name=web-petting&revision=true)](https://ag.hexor.cy/applications/argocd/web-petting) |
| **wedding** | [![wedding](https://ag.hexor.cy/api/badge?name=wedding&revision=true)](https://ag.hexor.cy/applications/argocd/wedding) |
| **xandikos** | [![xandikos](https://ag.hexor.cy/api/badge?name=xandikos&revision=true)](https://ag.hexor.cy/applications/argocd/xandikos) | | **xandikos** | [![xandikos](https://ag.hexor.cy/api/badge?name=xandikos&revision=true)](https://ag.hexor.cy/applications/argocd/xandikos) |
</td> </td>
+5 -5
View File
@@ -22,7 +22,7 @@ spec:
entryPoints: entryPoints:
- websecure - websecure
routes: routes:
- match: Host(`secret-reader.hexor.cy`) - match: Host(`proxy.hexor.cy`)
kind: Rule kind: Rule
middlewares: middlewares:
- name: auth-proxy - name: auth-proxy
@@ -30,16 +30,16 @@ spec:
- name: secret-reader - name: secret-reader
port: 80 port: 80
tls: tls:
secretName: secret-reader-tls secretName: proxy-tls
--- ---
apiVersion: cert-manager.io/v1 apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
metadata: metadata:
name: secret-reader-tls name: proxy-tls
spec: spec:
secretName: secret-reader-tls secretName: proxy-tls
issuerRef: issuerRef:
name: letsencrypt name: letsencrypt
kind: ClusterIssuer kind: ClusterIssuer
dnsNames: dnsNames:
- secret-reader.hexor.cy - proxy.hexor.cy
+3 -3
View File
@@ -2,8 +2,8 @@ clusterDomain: cluster.local
extraEnvVars: extraEnvVars:
GLOBAL_LOG_LEVEL: debug GLOBAL_LOG_LEVEL: debug
OAUTH_PROVIDER_NAME: authentik OAUTH_PROVIDER_NAME: keycloak
OPENID_PROVIDER_URL: https://idm.hexor.cy/application/o/openwebui/.well-known/openid-configuration OPENID_PROVIDER_URL: https://auth.hexor.cy/auth/realms/hexor/.well-known/openid-configuration
OPENID_REDIRECT_URI: https://ai.hexor.cy/oauth/oidc/callback OPENID_REDIRECT_URI: https://ai.hexor.cy/oauth/oidc/callback
WEBUI_URL: https://ai.hexor.cy WEBUI_URL: https://ai.hexor.cy
# Allows auto-creation of new users using OAuth. Must be paired with ENABLE_LOGIN_FORM=false. # Allows auto-creation of new users using OAuth. Must be paired with ENABLE_LOGIN_FORM=false.
@@ -57,4 +57,4 @@ ingress:
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
host: "ai.hexor.cy" host: "ai.hexor.cy"
tls: true tls: true
existingSecret: ollama-tls existingSecret: ollama-tls
+45 -22
View File
@@ -236,29 +236,52 @@ data:
cd /app cd /app
# Start main process in background write_xray_api_port() {
./main & API_PORT="$1"
MAIN_PID=$! case "$API_PORT" in
""|*[!0-9]*)
# Start continuous port monitoring in background return
;;
esac
CURRENT_PORT=""
if [ -f /shared/xray-api-port ]; then
CURRENT_PORT=$(cat /shared/xray-api-port)
fi
if [ "$API_PORT" != "$CURRENT_PORT" ]; then
echo "Found xray API port: $API_PORT"
echo -n "$API_PORT" > /shared/xray-api-port
fi
}
LOG_PIPE="/tmp/pasarguard-main.log"
rm -f "$LOG_PIPE"
mkfifo "$LOG_PIPE"
# Capture main logs so the Xray API listener is not confused with Xray's metrics listener.
{ {
sleep 10 # Wait for xray to start initially while IFS= read -r line; do
LAST_PORT="" echo "$line"
case "$line" in
while true; do *"transport/internet/tcp: listening TCP on 127.0.0.1:"*)
API_PORT=$(netstat -tlpn | grep xray | grep 127.0.0.1 | awk '{print $4}' | cut -d: -f2 | head -1) API_PORT=$(echo "$line" | sed -n 's/.*listening TCP on 127\.0\.0\.1:\([0-9][0-9]*\).*/\1/p')
if [ -n "$API_PORT" ] && [ "$API_PORT" != "$LAST_PORT" ]; then write_xray_api_port "$API_PORT"
echo "Found xray API port: $API_PORT" ;;
echo -n "$API_PORT" > /shared/xray-api-port esac
LAST_PORT="$API_PORT"
fi
sleep 5 # Check every 5 seconds
done done
} & } < "$LOG_PIPE" &
PORT_MONITOR_PID=$! LOG_READER_PID=$!
# Start main process in background
./main > "$LOG_PIPE" 2>&1 &
MAIN_PID=$!
# Wait for main process to finish # Wait for main process to finish
wait $MAIN_PID wait $MAIN_PID
MAIN_STATUS=$?
# Clean up port monitor
kill $PORT_MONITOR_PID 2>/dev/null # Clean up log reader
wait $LOG_READER_PID 2>/dev/null
rm -f "$LOG_PIPE"
exit $MAIN_STATUS
+8 -2
View File
@@ -116,14 +116,20 @@ spec:
- name: metrics - name: metrics
containerPort: 9550 containerPort: 9550
protocol: TCP protocol: TCP
livenessProbe: startupProbe:
httpGet: httpGet:
path: /scrape path: /scrape
port: metrics port: metrics
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 36
livenessProbe:
tcpSocket:
port: metrics
initialDelaySeconds: 60 initialDelaySeconds: 60
periodSeconds: 30 periodSeconds: 30
timeoutSeconds: 10 timeoutSeconds: 10
failureThreshold: 3 failureThreshold: 6
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /scrape path: /scrape
+8 -4
View File
@@ -9,12 +9,12 @@ groups = [
proxy_applications = { proxy_applications = {
secret-reader = { secret-reader = {
domain = "secret-reader.hexor.cy" domain = "proxy.hexor.cy"
allowed_groups = ["hexor-guest", "hexor-admin"] allowed_groups = ["hexor-admin", "app-pass"]
} }
pass = { pass = {
domain = "pass.hexor.cy" domain = "pass.hexor.cy"
allowed_groups = ["hexor-guest", "hexor-admin"] allowed_groups = ["hexor-admin", "app-pass"]
} }
} }
@@ -40,6 +40,11 @@ oauth2_applications = {
web_origins = ["https://gf.hexor.cy"] web_origins = ["https://gf.hexor.cy"]
post_logout_redirect_uris = ["https://gf.hexor.cy/*"] post_logout_redirect_uris = ["https://gf.hexor.cy/*"]
} }
openwebui = {
redirect_uris = ["https://ai.hexor.cy/oauth/oidc/callback"]
web_origins = ["https://ai.hexor.cy"]
post_logout_redirect_uris = ["https://ai.hexor.cy/*"]
}
FuruMusic = { FuruMusic = {
redirect_uris = ["https://music.hexor.cy/auth/oidc/callback"] redirect_uris = ["https://music.hexor.cy/auth/oidc/callback"]
web_origins = ["https://music.hexor.cy"] web_origins = ["https://music.hexor.cy"]
@@ -56,4 +61,3 @@ oauth2_applications = {
post_logout_redirect_uris = ["https://pet.hexor.cy/*", "https://xn--l1acako8eb.xn--p1ai/*", "https://мурняня.рф/*"] post_logout_redirect_uris = ["https://pet.hexor.cy/*", "https://xn--l1acako8eb.xn--p1ai/*", "https://мурняня.рф/*"]
} }
} }