# NEX-Websuche (SearXNG), umgezogen von appsrv08 (Portainer-Stack nex, Dienst searxng) nach k3s (D6-Test, 15.10.2026). # Quelle der Einstellungen: nex-Repo deploy/nex/searxng/settings.yml (Kopie hier, als ConfigMap eingehängt). # SEARXNG_SECRET liegt im Secret nex-searxng (legt playbooks/nex-searxng-k3s.yml an, nicht im Repo). # Zustandslos, kein Volume. Erreichbar im LAN über NodePort 30880 auf jeder Knoten-Adresse; die Hermes-Agenten # auf appsrv08 brauchen dann SEARXNG_URL=http://:30880 statt http://nex-searxng:8080. apiVersion: apps/v1 kind: Deployment metadata: name: nex-searxng namespace: nex labels: {app: nex-searxng} spec: replicas: 1 selector: matchLabels: {app: nex-searxng} template: metadata: labels: {app: nex-searxng} spec: # /etc/searxng muss beschreibbar sein (Image legt dort Dateien an): emptyDir, settings.yml aus der ConfigMap kopiert initContainers: - name: settings image: searxng/searxng:2026.10.4-d48c4b555 command: ["sh", "-c", "cp /config/settings.yml /etc/searxng/settings.yml"] volumeMounts: - {name: config, mountPath: /config, readOnly: true} - {name: etc, mountPath: /etc/searxng} containers: - name: searxng image: searxng/searxng:2026.10.4-d48c4b555 ports: - {name: http, containerPort: 8080} env: - name: SEARXNG_SECRET valueFrom: secretKeyRef: {name: nex-searxng, key: SEARXNG_SECRET} - {name: GRANIAN_HOST, value: "0.0.0.0"} # IPv4: sonst erscheint die Absender-Adresse nur als ::ffff - {name: GRANIAN_LOG_ACCESS_ENABLED, value: "true"} - {name: GRANIAN_LOG_ACCESS_FMT, value: '[%(time)s] %(addr)s "%(method)s %(path)s" %(status)d %(dt_ms).0fms'} # ohne Query-String: keine Suchbegriffe im Log resources: requests: {cpu: 100m, memory: 128Mi} limits: {memory: 256Mi} volumeMounts: - {name: etc, mountPath: /etc/searxng} readinessProbe: httpGet: {path: /healthz, port: http} periodSeconds: 10 livenessProbe: httpGet: {path: /healthz, port: http} periodSeconds: 30 failureThreshold: 3 volumes: - name: config configMap: {name: nex-searxng-settings} - name: etc emptyDir: {sizeLimit: 16Mi} --- apiVersion: v1 kind: Service metadata: name: nex-searxng namespace: nex labels: {app: nex-searxng} spec: type: NodePort selector: {app: nex-searxng} ports: - {name: http, port: 8080, targetPort: http, nodePort: 30880}