{"repo": "ananjiani/nixos-config", "files": {"k8s/apps/lobechat/deployment.yaml": {"9dbe51c8680b0f58ac1d048933ecc5025146ad19": {"t": 1785745229.9642186, "n": 3454, "h": "34db798849721a23", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:1.143.3\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # TLS workaround for internal services\n - name: NODE_TLS_REJECT_UNAUTHORIZED\n value: \"0\"\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXTAUTH_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-url\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_PUBLIC_DOMAIN\n value: \"https://lobe-s3.dimensiondoor.xyz\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # DeepSeek provider (native, not via OpenAI provider)\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: deepseek-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}, "7538775e3496955a3cf2d2dd44f223f36f030108": {"t": 1785748963.6890802, "n": 3454, "h": "34db798849721a23", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:1.143.3\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # TLS workaround for internal services\n - name: NODE_TLS_REJECT_UNAUTHORIZED\n value: \"0\"\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXTAUTH_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-url\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_PUBLIC_DOMAIN\n value: \"https://lobe-s3.dimensiondoor.xyz\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # DeepSeek provider (native, not via OpenAI provider)\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: deepseek-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}, "bc13c879a11f2246b25c619f6e37a7d559239c37": {"t": 1785748964.8013303, "n": 3529, "h": "677e1802b0325da4", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:1.143.3\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # TLS workaround for internal services\n - name: NODE_TLS_REJECT_UNAUTHORIZED\n value: \"0\"\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXTAUTH_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-url\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_PUBLIC_DOMAIN\n value: \"https://lobe-s3.dimensiondoor.xyz\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # Direct DeepSeek API (bypassing Bifrost)\n - name: OPENAI_API_BASE_URL\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: openai-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}, "50b2b8905a7a5b5cc6f8b719552cc2121add4c83": {"t": 1785748965.8908393, "n": 3579, "h": "2cd03670c5369592", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:1.143.3\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # TLS workaround for internal services\n - name: NODE_TLS_REJECT_UNAUTHORIZED\n value: \"0\"\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXTAUTH_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-url\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_PUBLIC_DOMAIN\n value: \"https://lobe-s3.dimensiondoor.xyz\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # LLM Backends\n # Bifrost for cloud providers (DeepSeek, Z.AI, Cliproxy)\n - name: OPENAI_API_BASE_URL\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: bifrost-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}, "fd9207d133ef9b13e6ebe45477da7102e063521f": {"t": 1785748966.9718254, "n": 3579, "h": "07d744a7aff908cd", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:1.143.2\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # TLS workaround for internal services\n - name: NODE_TLS_REJECT_UNAUTHORIZED\n value: \"0\"\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXTAUTH_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-url\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_PUBLIC_DOMAIN\n value: \"https://lobe-s3.dimensiondoor.xyz\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # LLM Backends\n # Bifrost for cloud providers (DeepSeek, Z.AI, Cliproxy)\n - name: OPENAI_API_BASE_URL\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: bifrost-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}, "0e34cf72e9efa73fbfe44360a429fbf45f80c122": {"t": 1785748968.084051, "n": 3492, "h": "66821ed8c97f4d66", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:1.143.2\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # TLS workaround for internal services\n - name: NODE_TLS_REJECT_UNAUTHORIZED\n value: \"0\"\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-url\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_PUBLIC_DOMAIN\n value: \"https://lobe-s3.dimensiondoor.xyz\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # LLM Backends\n # Bifrost for cloud providers (DeepSeek, Z.AI, Cliproxy)\n - name: OPENAI_API_BASE_URL\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: bifrost-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}, "64768f95973ae863c1de9b25822f2ca0b3b66c8c": {"t": 1785748969.199988, "n": 3367, "h": "58718c4ce42023fc", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:1.143.2\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-url\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_PUBLIC_DOMAIN\n value: \"https://lobe-s3.dimensiondoor.xyz\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # LLM Backends\n # Bifrost for cloud providers (DeepSeek, Z.AI, Cliproxy)\n - name: OPENAI_API_BASE_URL\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: bifrost-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n tcpSocket:\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}, "58f426a96cfe93f35ebc0d8806f26d162b5596c0": {"t": 1785748970.2830782, "n": 3427, "h": "2287645fcd3d5727", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:1.143.2\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-url\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_PUBLIC_DOMAIN\n value: \"https://lobe-s3.dimensiondoor.xyz\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # LLM Backends\n # Bifrost for cloud providers (DeepSeek, Z.AI, Cliproxy)\n - name: OPENAI_API_BASE_URL\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: bifrost-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /api/health\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /api/health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}, "6d505e7ffdcf4877a4df46f1171291d52cf8bed2": {"t": 1785748971.4012833, "n": 3333, "h": "ed7d13c30a4cb6dc", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:1.143.2\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-url\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # LLM Backends\n # Bifrost for cloud providers (DeepSeek, Z.AI, Cliproxy)\n - name: OPENAI_API_BASE_URL\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: bifrost-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /api/health\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /api/health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}, "82823428d4f995c183991342604ef6d635c24eca": {"t": 1785748972.579228, "n": 3465, "h": "3f6815d6658db9b6", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:1.143.2\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n value: \"postgresql://lobechat:$(DATABASE_PASSWORD)@postgres:5432/lobechat\"\n - name: DATABASE_PASSWORD\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-password\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # LLM Backends\n # Bifrost for cloud providers (DeepSeek, Z.AI, Cliproxy)\n - name: OPENAI_API_BASE_URL\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: bifrost-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /api/health\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /api/health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}, "7d9632807922ae7f3d33f810127cca10a2479759": {"t": 1785748973.6524956, "n": 3466, "h": "831447f44b1d3e8d", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: lobechat\n namespace: lobechat\n labels:\n app: lobechat\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: lobechat\n template:\n metadata:\n labels:\n app: lobechat\n spec:\n containers:\n - name: lobechat\n image: lobehub/lobe-chat-database:v1.143.2\n ports:\n - name: http\n containerPort: 3210\n protocol: TCP\n env:\n # App URLs\n - name: APP_URL\n value: \"https://lobe.dimensiondoor.xyz\"\n - name: NEXT_PUBLIC_BASE_PATH\n value: \"\"\n\n # Database\n - name: DATABASE_URL\n value: \"postgresql://lobechat:$(DATABASE_PASSWORD)@postgres:5432/lobechat\"\n - name: DATABASE_PASSWORD\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: database-password\n\n # S3/MinIO\n - name: S3_ENDPOINT\n value: \"http://minio:9000\"\n - name: S3_BUCKET\n value: \"lobe\"\n - name: S3_ENABLE_PATH_STYLE\n value: \"1\"\n - name: S3_ACCESS_KEY_ID\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-access-key-id\n - name: S3_SECRET_ACCESS_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: s3-secret-access-key\n\n # LLM Backends\n # Bifrost for cloud providers (DeepSeek, Z.AI, Cliproxy)\n - name: OPENAI_API_BASE_URL\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: bifrost-api-key\n # Direct Ollama connection for local models\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n\n # LobeChat encryption key\n - name: KEY_VAULTS_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: key-vaults-secret\n\n # Auth (Authentik)\n - name: NEXT_AUTH_SSO_PROVIDERS\n value: \"authentik\"\n - name: NEXT_AUTH_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: next-auth-secret\n - name: AUTHENTIK_CLIENT_ID\n value: \"lobechat\"\n - name: AUTHENTIK_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: lobechat-secrets\n key: authentik-client-secret\n - name: AUTHENTIK_ISSUER\n value: \"https://auth.dimensiondoor.xyz/application/o/lobechat/\"\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /api/health\n port: http\n initialDelaySeconds: 60\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /api/health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n"}}, "k8s/apps/persona-mcp/deployment.yaml": {"9dbe51c8680b0f58ac1d048933ecc5025146ad19": {"t": 1785747057.9322183, "n": 1829, "h": "c88cd5a1fe4b888f", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"https://api.deepseek.com/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n persistentVolumeClaim:\n claimName: persona-mcp-data\n"}, "5149b860ef61dd074d5d66d596f058529ed83c62": {"t": 1785748962.6661937, "n": 1829, "h": "c88cd5a1fe4b888f", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"https://api.deepseek.com/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n persistentVolumeClaim:\n claimName: persona-mcp-data\n"}, "bc13c879a11f2246b25c619f6e37a7d559239c37": {"t": 1785748963.7255864, "n": 2031, "h": "20cdffbd0bc16009", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"https://api.deepseek.com/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n # Extra exec probe touches NFS mount so stale mounts trigger restart\n livenessProbe:\n exec:\n command:\n - /bin/sh\n - -c\n - \"wget -qO- http://localhost:8080/health && test -d /app/personas && test -w /app/personas\"\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n persistentVolumeClaim:\n claimName: persona-mcp-data\n"}, "1a4f9441c260ebe903086fe7d92c2fe7d2631f66": {"t": 1785748965.0024455, "n": 2047, "h": "ca30f71d66297e66", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek/deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n # Extra exec probe touches NFS mount so stale mounts trigger restart\n livenessProbe:\n exec:\n command:\n - /bin/sh\n - -c\n - \"wget -qO- http://localhost:8080/health && test -d /app/personas && test -w /app/personas\"\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n persistentVolumeClaim:\n claimName: persona-mcp-data\n"}, "5ea03e70cf6d9b41574b2b0b6eb2e42ff12a1c91": {"t": 1785748966.1069076, "n": 1845, "h": "716baacd10f56636", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek/deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n persistentVolumeClaim:\n claimName: persona-mcp-data\n"}, "555fad205e38407f2c5f4aeb430955d4fc6ab5db": {"t": 1785748967.2144196, "n": 1859, "h": "703f4def2f9641db", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek/deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n nfs:\n server: 192.168.1.27\n path: /srv/nfs/persona-mcp\n"}, "7ea23d193efcec3e9334a5f098bb8672452a5995": {"t": 1785748968.3230197, "n": 1857, "h": "64be87e328a7e433", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek/deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: mcp\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: mcp\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n nfs:\n server: 192.168.1.27\n path: /srv/nfs/persona-mcp\n"}, "1387c8a5b103448f10bfa1a6c46f50442b864016": {"t": 1785748969.4575424, "n": 1943, "h": "744f7ae459a411ea", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8000\n protocol: TCP\n - name: mcp\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek/deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: mcp\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: mcp\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n nfs:\n server: 192.168.1.27\n path: /srv/nfs/persona-mcp\n"}, "9328adb836159c5e1f51098e2eee22ec19f80014": {"t": 1785748970.5449164, "n": 1934, "h": "2c2bae211e4f04aa", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8000\n protocol: TCP\n - name: mcp\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: mcp\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: mcp\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n nfs:\n server: 192.168.1.27\n path: /srv/nfs/persona-mcp\n"}, "08b1ea16b7241733188b02ad0a3cce6c9c3979bb": {"t": 1785748971.6656268, "n": 1936, "h": "4521afd75b915830", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8000\n protocol: TCP\n - name: mcp\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n nfs:\n server: 192.168.1.27\n path: /srv/nfs/persona-mcp\n"}, "78866add1e51379420ebabe8f50f271591f49b45": {"t": 1785748973.1747527, "n": 1850, "h": "e9c529c13f19e69c", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8000\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n nfs:\n server: 192.168.1.27\n path: /srv/nfs/persona-mcp\n"}, "75a6368e6193e7dfa6736dedabdf92dca79aff71": {"t": 1785748974.256469, "n": 1850, "h": "c770bf4238b03348", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n - name: USER\n value: \"persona-mcp\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n nfs:\n server: 192.168.1.27\n path: /srv/nfs/persona-mcp\n"}, "9fe3c789175588f915f7a6e4d300708d384be305": {"t": 1785748975.4993434, "n": 1790, "h": "c9213f61c8e40985", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek-chat\"\n - name: PERSONA_ACTIVE\n value: \"keres\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 300\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n nfs:\n server: 192.168.1.27\n path: /srv/nfs/persona-mcp\n"}, "5774dcea3bb2aea96c2e52fb542312744bd62d7f": {"t": 1785748976.611044, "n": 1725, "h": "9a47d8d6f73f5fe0", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.lan:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek-chat\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 30\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n nfs:\n server: 192.168.1.27\n path: /srv/nfs/persona-mcp\n"}, "a8ae502a6be686b8616a6ceb38f6fced3384068f": {"t": 1785748977.7162611, "n": 1743, "h": "3ceed6c192c1ca41", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: persona-mcp\n namespace: persona-mcp\n labels:\n app: persona-mcp\nspec:\n replicas: 1\n strategy:\n type: Recreate\n selector:\n matchLabels:\n app: persona-mcp\n template:\n metadata:\n labels:\n app: persona-mcp\n spec:\n containers:\n - name: persona-mcp\n image: zot.zot.svc.cluster.local:5000/ammar/persona-mcp:latest\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: persona-mcp-secrets\n key: openai-api-key\n - name: OPENAI_API_BASE\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: PERSONA_PERSONAS_DIR\n value: \"/app/personas\"\n - name: PERSONA_MODEL\n value: \"deepseek-chat\"\n volumeMounts:\n - name: personas\n mountPath: /app/personas\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"2Gi\"\n cpu: \"1000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 30\n periodSeconds: 30\n timeoutSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 10\n timeoutSeconds: 5\n volumes:\n - name: personas\n nfs:\n server: 192.168.1.27\n path: /srv/nfs/persona-mcp\n"}}, "k8s/apps/open-webui/deployment.yaml": {"9dbe51c8680b0f58ac1d048933ecc5025146ad19": {"t": 1785747057.9438882, "n": 5235, "h": "d19e8f6e7647489c", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.11.0\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.11.0\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n # Direct DeepSeek API (bypassing Bifrost)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "49ae40758c633fc2592423c225bb5d4d0062177e": {"t": 1785748963.4712753, "n": 5235, "h": "d19e8f6e7647489c", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.11.0\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.11.0\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n # Direct DeepSeek API (bypassing Bifrost)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "7f55abc842d1056dc0b625c908694b9343bc3915": {"t": 1785748964.689116, "n": 5235, "h": "6a2bd5a29cd13e58", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.10.2\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.10.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n # Direct DeepSeek API (bypassing Bifrost)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "0d58711d4a0ecdd9dbaf111d12f1ae30df5bd841": {"t": 1785748965.7923832, "n": 5235, "h": "363263835e276109", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.10.1\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.10.1\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n # Direct DeepSeek API (bypassing Bifrost)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "8667f7e223c6eeaeda9ae165aebc1b2e45f29aff": {"t": 1785748966.9147065, "n": 5233, "h": "2e9b289236aaf9ef", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.9.6\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.9.6\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n # Direct DeepSeek API (bypassing Bifrost)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "0fd415bab3ee5ef356201dc7ead1e497717a50cc": {"t": 1785748968.0606236, "n": 5233, "h": "57efda6f69916437", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.9.5\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.9.5\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n # Direct DeepSeek API (bypassing Bifrost)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "6985086fe99ee04ddddc18c78d45dcc4ed29fb1b": {"t": 1785748969.2099466, "n": 5233, "h": "15048658260e4a06", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.9.4\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.9.4\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n # Direct DeepSeek API (bypassing Bifrost)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "bc13c879a11f2246b25c619f6e37a7d559239c37": {"t": 1785748970.449908, "n": 5233, "h": "c4db9f4e7d81c71e", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.9.2\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.9.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n # Direct DeepSeek API (bypassing Bifrost)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "0b65a9f701e6b62b1777a3d80b33871ccd276788": {"t": 1785748972.2633832, "n": 5256, "h": "d935920d2c7fa385", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.9.2\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.9.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "f9c3c767d79f8a412767d4f6d50d69107a240a44": {"t": 1785748974.512839, "n": 5256, "h": "7e158b5c81f5956b", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.9.1\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.9.1\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "9d64ed5ebd44a943dccad9d4a2fdfd4f20997394": {"t": 1785748975.5968306, "n": 5258, "h": "770c705149f05479", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.8.12\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.8.12\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "cda0e5f2f40d2e3333c0caaed7a6761b2e8fa7f6": {"t": 1785748976.7245946, "n": 5256, "h": "ff53b8b18c3c671c", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.7.2\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "ce1b6b03e3d9e4e6ccd27235584a4a29e902f2df": {"t": 1785748977.8065434, "n": 5263, "h": "d332a97a3a915ea4", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.7.2\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"ollama/nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "2280ed4ee22e8180d78bd64da2a25e9376f37ff8": {"t": 1785748978.8834517, "n": 5502, "h": "dbc8ed6ca5647130", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.7.2\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n # Default system prompt for all chats\n - name: DEFAULT_SYSTEM_PROMPT\n valueFrom:\n configMapKeyRef:\n name: open-webui-system-prompt\n key: system-prompt.md\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"ollama/nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "c407419b21efd3b0d10e636e46c8f8e71c24d5cc": {"t": 1785748980.1052907, "n": 5263, "h": "d332a97a3a915ea4", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n initContainers:\n - name: ensure-zai-model\n image: ghcr.io/open-webui/open-webui:v0.7.2\n command:\n - /bin/sh\n - -c\n args:\n - |\n python - <<'PY'\n import json\n import sqlite3\n import sys\n\n db_path = \"/app/backend/data/webui.db\"\n model_id = \"zai/glm-4.7\"\n base_model_id = \"deepseek/deepseek-chat\"\n params = json.dumps({\"model\": model_id})\n\n try:\n con = sqlite3.connect(db_path)\n except sqlite3.Error as exc:\n print(f\"failed to open db: {exc}\")\n sys.exit(1)\n\n cur = con.cursor()\n row = cur.execute(\n \"select id from model where id = ?\",\n (model_id,),\n ).fetchone()\n if not row:\n print(\"model not found, skipping\")\n sys.exit(0)\n\n cur.execute(\n \"update model set base_model_id = ?, params = ? where id = ?\",\n (base_model_id, params, model_id),\n )\n con.commit()\n print(\"model updated\")\n PY\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"ollama/nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "b713254a2a48c77668de3d04e6fb00d68a9a2fc0": {"t": 1785748981.2040298, "n": 3916, "h": "ca91a7ac56e4888d", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.bifrost.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"ollama/qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"ollama/nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "c42937e8b052108cd2e734163185b0ea94b327ce": {"t": 1785748982.3150964, "n": 3905, "h": "6d060c000d13a0d0", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"http://bifrost.bifrost.svc:8080/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "57b4751ada367088471026519e200852f69f8e35": {"t": 1785748983.4055996, "n": 3901, "h": "8e515c3567eda6be", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://bifrost.bifrost.svc/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "a8e2f810b41e798352aaa9e5c2c95c7352858284": {"t": 1785748984.4778605, "n": 3907, "h": "822835e5a43ea567", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://bifrost.dimensiondoor.xyz/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "668ad628ab65ee7ee31646e32521cb89af1bda70": {"t": 1785748985.5415452, "n": 3935, "h": "96925a871c5d60d6", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1;http://cliproxy.cliproxy.svc:8317/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n # Use Ollama for GPU-accelerated embeddings\n - name: RAG_EMBEDDING_ENGINE\n value: \"ollama\"\n - name: RAG_EMBEDDING_MODEL\n value: \"nomic-embed-text\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "d7e376386fd465304b200383c625abac76eed8e5": {"t": 1785748986.633061, "n": 3728, "h": "c1a35446b7e16559", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n # Use small model for auxiliary tasks (titles, tags, search queries)\n - name: TASK_MODEL\n value: \"qwen3:0.6b\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1;http://cliproxy.cliproxy.svc:8317/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "cd169cd86ff69afd93a5784456caa8c414958c87": {"t": 1785748987.8792305, "n": 3582, "h": "f5fc364f80a5baa4", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1;http://cliproxy.cliproxy.svc:8317/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "d523aeded5c03873eda3d264cb6ba6f39e45e42e": {"t": 1785748988.9742603, "n": 3569, "h": "47fcdeedd779a713", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URLS\n value: \"https://api.deepseek.com/v1;https://cliproxy.lan/v1\"\n - name: OPENAI_API_KEYS\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: openai-api-keys\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "e7f499e47ef889ac4189c4990358b6e8175b784c": {"t": 1785748990.0559573, "n": 3544, "h": "7f79d87ae2500717", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:v0.7.2\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URL\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: deepseek-api-key\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "f2d137dc0b1d0e3ab270b4de766ee1c56bb8579c": {"t": 1785748991.2897584, "n": 3542, "h": "abc0f507ff24ef03", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:main\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n # Reset config on start to force re-read of env vars\n # (database was caching stale values from Helm chart experiments)\n - name: RESET_CONFIG_ON_START\n value: \"true\"\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URL\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: deepseek-api-key\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "225d290d896fc5eb8477cd06089c8d136a1eb902": {"t": 1785748992.5402842, "n": 3329, "h": "a0168f2f46545cbf", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:main\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URL\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: deepseek-api-key\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "8373e15330abcf91f2fbf133592ee4bf4dc78154": {"t": 1785748994.6809754, "n": 3329, "h": "a0168f2f46545cbf", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:main\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URL\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: deepseek-api-key\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "9ab7827595fdf907f5b22dbc3e943001d2c3c385": {"t": 1785748995.7754714, "n": 3251, "h": "f6a34fd8fe9c6d03", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:main\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URL\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: deepseek-api-key\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.dimensiondoor.xyz/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "eb07f1fa45cdcb243fe7cd57198403a2224276b4": {"t": 1785748996.8562756, "n": 3454, "h": "524daf915ef6e322", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n hostAliases:\n - ip: \"192.168.1.52\"\n hostnames:\n - \"auth.lan\"\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:main\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URL\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: deepseek-api-key\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"https://auth.lan/application/o/open-webui/.well-known/openid-configuration\"\n # Disable SSL verification for self-signed cert\n - name: REQUESTS_CA_BUNDLE\n value: \"\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}, "87f985158dd92ce215bf17486823bc00e9040388": {"t": 1785748997.9253552, "n": 3352, "h": "d5fa95b080673dd6", "c": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: open-webui\n namespace: open-webui\n labels:\n app: open-webui\nspec:\n replicas: 1\n strategy:\n type: Recreate # Longhorn PVCs are RWO\n selector:\n matchLabels:\n app: open-webui\n template:\n metadata:\n labels:\n app: open-webui\n spec:\n hostAliases:\n - ip: \"192.168.1.52\"\n hostnames:\n - \"auth.lan\"\n containers:\n - name: open-webui\n image: ghcr.io/open-webui/open-webui:main\n ports:\n - name: http\n containerPort: 8080\n protocol: TCP\n env:\n - name: OLLAMA_BASE_URL\n value: \"http://ollama.open-webui.svc:11434\"\n - name: WEBUI_SECRET_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: secret-key\n # DeepSeek API (OpenAI-compatible)\n - name: ENABLE_OPENAI_API\n value: \"true\"\n - name: OPENAI_API_BASE_URL\n value: \"https://api.deepseek.com/v1\"\n - name: OPENAI_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: deepseek-api-key\n # Web search via Tavily\n - name: ENABLE_WEB_SEARCH\n value: \"true\"\n - name: WEB_SEARCH_ENGINE\n value: \"tavily\"\n - name: WEB_LOADER_ENGINE\n value: \"tavily\"\n - name: TAVILY_API_KEY\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: tavily-api-key\n # Disable external sharing\n - name: ENABLE_COMMUNITY_SHARING\n value: \"false\"\n # OAuth via Authentik\n - name: ENABLE_OAUTH_SIGNUP\n value: \"true\"\n - name: OAUTH_PROVIDER_NAME\n value: \"Authentik\"\n - name: OAUTH_CLIENT_ID\n value: \"open-webui\"\n - name: OAUTH_CLIENT_SECRET\n valueFrom:\n secretKeyRef:\n name: open-webui-secrets\n key: oauth_client_secret\n - name: OPENID_PROVIDER_URL\n value: \"http://authentik-server.authentik.svc/application/o/open-webui/.well-known/openid-configuration\"\n - name: OAUTH_SCOPES\n value: \"openid email profile\"\n # ChromaDB connection for RAG\n - name: CHROMA_HTTP_HOST\n value: \"chromadb.chromadb.svc\"\n - name: CHROMA_HTTP_PORT\n value: \"8000\"\n volumeMounts:\n - name: data\n mountPath: /app/backend/data\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"100m\"\n limits:\n memory: \"4Gi\"\n cpu: \"2000m\"\n livenessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 120\n periodSeconds: 10\n readinessProbe:\n httpGet:\n path: /health\n port: http\n initialDelaySeconds: 10\n periodSeconds: 5\n volumes:\n - name: data\n persistentVolumeClaim:\n claimName: open-webui-data\n"}}}}