# Wiki.js — Plattform-Wiki (ADR-0014, #0048). Öffentlich unter wiki.axion1337.chat # (Ingress/Cert in wiki-ingress.yaml), Login nativ via Authentik-OIDC (#0049, Guide 10). # Git-Storage (Inhalt in git) wird nach dem ersten Start in der Admin-UI eingerichtet. apiVersion: v1 kind: PersistentVolumeClaim metadata: name: wikijs-data namespace: matrix spec: accessModes: - ReadWriteOnce storageClassName: local-path resources: requests: storage: 2Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: wikijs namespace: matrix spec: replicas: 1 strategy: type: Recreate # RWO-Volume (Git-Storage-Klon) selector: matchLabels: app.kubernetes.io/name: wikijs template: metadata: labels: app.kubernetes.io/name: wikijs spec: containers: - name: wikijs image: ghcr.io/requarks/wiki:2.5 # Fork-Patch (ThreadNet): neue OIDC-Nutzer sollen Europe/Berlin statt des # Wiki.js-Defaults America/New_York bekommen. Wiki.js legt SSO-Nutzer in # processProfile (server/models/users.js) OHNE timezone an -> es greift der # DB-Spalten-Default (New_York). Wir setzen timezone bei der Neuanlage explizit. # Startup-Overlay statt Custom-Image (es gibt keine Wiki.js-Build-Pipeline): # idempotent (grep-Guard), failt open (node startet auch wenn der sed nicht # greift). localeCode kommt bereits aus WIKI.config.lang.code (= de). # ⚠️ Bei Wiki.js-Upgrade den Anker "localeCode: WIKI.config.lang.code," prüfen. command: - sh - -c - >- grep -q "timezone: 'Europe/Berlin'" server/models/users.js || sed -i "s#localeCode: WIKI.config.lang.code,#localeCode: WIKI.config.lang.code, timezone: 'Europe/Berlin',#" server/models/users.js; exec node --no-deprecation server ports: - name: http containerPort: 3000 env: - name: DB_TYPE value: postgres - name: DB_HOST value: wikijs-postgres - name: DB_PORT value: "5432" - name: DB_NAME value: wiki - name: DB_USER valueFrom: secretKeyRef: name: wikijs-postgres-secret key: username - name: DB_PASS valueFrom: secretKeyRef: name: wikijs-postgres-secret key: password volumeMounts: - name: data mountPath: /wiki/data # Branding-Assets (Logo + Login-Hintergrund) als statische Dateien in den # öffentlichen /_assets-Baum (express.static /wiki/assets). Dadurch ohne # read:assets erreichbar (Guests bleiben gesperrt) und ohne externe URL — # eine Quelle (ConfigMap platform-branding), Config zeigt auf /_assets/img/branding/. - name: branding mountPath: /wiki/assets/img/branding readOnly: true # Favicon (#0050): serve-favicon liest /wiki/assets/favicon.ico; der # Browser-Tab nutzt zusätzlich die PNGs unter /_assets/favicons/. Einzelne # Dateien per subPath überlagern, ohne die restlichen Default-Favicons zu verdecken. - name: branding mountPath: /wiki/assets/favicon.ico subPath: favicon.ico readOnly: true - name: branding mountPath: /wiki/assets/favicons/favicon-32x32.png subPath: favicon-32x32.png readOnly: true - name: branding mountPath: /wiki/assets/favicons/favicon-16x16.png subPath: favicon-16x16.png readOnly: true - name: branding mountPath: /wiki/assets/favicons/android-chrome-192x192.png subPath: android-chrome-192x192.png readOnly: true - name: branding mountPath: /wiki/assets/favicons/apple-touch-icon.png subPath: apple-touch-icon.png readOnly: true - name: branding mountPath: /wiki/assets/favicons/mstile-150x150.png subPath: mstile-150x150.png readOnly: true readinessProbe: tcpSocket: port: http initialDelaySeconds: 25 periodSeconds: 10 livenessProbe: tcpSocket: port: http initialDelaySeconds: 60 periodSeconds: 20 volumes: - name: data persistentVolumeClaim: claimName: wikijs-data - name: branding configMap: name: platform-branding --- apiVersion: v1 kind: Service metadata: name: wikijs namespace: matrix spec: selector: app.kubernetes.io/name: wikijs ports: - name: http port: 3000 targetPort: http