# 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 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 - name: branding-bg mountPath: /wiki/assets/img/bg 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 - name: branding-bg configMap: name: platform-branding-bg --- apiVersion: v1 kind: Service metadata: name: wikijs namespace: matrix spec: selector: app.kubernetes.io/name: wikijs ports: - name: http port: 3000 targetPort: http