apiVersion: v1 kind: PersistentVolumeClaim metadata: name: openwebui-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: open-webui name: open-webui spec: replicas: 1 selector: matchLabels: app: open-webui template: metadata: labels: app: open-webui spec: # Prevent scheduling on Raspberry Pi due to high resource requirements (1Gi-2Gi memory, 1-2 CPU) nodeSelector: hardware: high-memory volumes: - name: webui-data persistentVolumeClaim: claimName: openwebui-pvc containers: - image: ghcr.io/open-webui/open-webui name: open-webui ports: - containerPort: 8080 volumeMounts: - name: webui-data mountPath: /app/backend/data resources: requests: cpu: 1000m memory: 1Gi #128Mi limits: cpu: 2000m memory: 2Gi livenessProbe: httpGet: path: / port: 8080 scheme: HTTP initialDelaySeconds: 5 timeoutSeconds: 2 periodSeconds: 10 successThreshold: 1 failureThreshold: 5 readinessProbe: httpGet: path: / port: 8080 scheme: HTTP initialDelaySeconds: 5 timeoutSeconds: 2 periodSeconds: 5 successThreshold: 1 failureThreshold: 3 startupProbe: httpGet: path: / port: 8080 scheme: HTTP initialDelaySeconds: 5 timeoutSeconds: 2 periodSeconds: 5 successThreshold: 1 failureThreshold: 30 --- apiVersion: v1 kind: Service metadata: labels: app: open-webui name: open-webui-service spec: ports: - name: http port: 80 targetPort: 8080 selector: app: open-webui