Files
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
236 KiB
JSON

{"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"}, "b82e9ecdea12a63b78d79382b8da4b3b7e6693d5": {"t": 1786067315.5179996, "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"}, "872a0a63298d898bb148ff1a2caa200e55370e35": {"t": 1786068210.69527, "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"}}, "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"}, "b82e9ecdea12a63b78d79382b8da4b3b7e6693d5": {"t": 1786068034.7850292, "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"}, "872a0a63298d898bb148ff1a2caa200e55370e35": {"t": 1786068540.9851065, "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"}}, "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"}, "b82e9ecdea12a63b78d79382b8da4b3b7e6693d5": {"t": 1786068035.0423543, "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"}, "872a0a63298d898bb148ff1a2caa200e55370e35": {"t": 1786068540.8046002, "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"}}, "k8s/apps/bifrost/helmrelease.yaml": {"b82e9ecdea12a63b78d79382b8da4b3b7e6693d5": {"t": 1786067315.1911073, "n": 4360, "h": "4b40c65a1a46a309", "c": "---\napiVersion: helm.toolkit.fluxcd.io/v2\nkind: HelmRelease\nmetadata:\n name: bifrost\n namespace: bifrost\nspec:\n interval: 1h\n chart:\n spec:\n chart: bifrost\n version: \"2.0.0\"\n sourceRef:\n kind: HelmRepository\n name: bifrost\n namespace: flux-system\n interval: 1h\n postRenderers:\n - kustomize:\n patches:\n - patch: |\n apiVersion: apps/v1\n kind: Deployment\n metadata:\n name: bifrost\n spec:\n strategy:\n type: Recreate\n template:\n spec:\n containers:\n - name: bifrost\n livenessProbe:\n httpGet:\n path: /health\n readinessProbe:\n httpGet:\n path: /health\n target:\n kind: Deployment\n name: bifrost\n values:\n image:\n repository: docker.io/maximhq/bifrost\n pullPolicy: IfNotPresent\n tag: \"v1.6.6\"\n\n service:\n type: ClusterIP\n port: 8080\n\n storage:\n mode: sqlite\n persistence:\n enabled: true\n existingClaim: bifrost-data\n\n bifrost:\n port: 8080\n host: 0.0.0.0\n logLevel: info\n logStyle: json\n encryptionKeySecret:\n name: bifrost-secrets\n key: encryption-key\n\n client:\n dropExcessRequests: false\n initialPoolSize: 300\n allowedOrigins:\n - \"*\"\n enableLogging: true\n disableContentLogging: false\n logRetentionDays: 365\n enforceGovernanceHeader: false\n allowDirectKeys: false\n maxRequestBodySizeMb: 100\n\n providers:\n deepseek:\n network_config:\n base_url: \"https://api.deepseek.com\"\n default_request_timeout_in_seconds: 120\n custom_provider_config:\n base_provider_type: openai\n keys:\n - name: \"deepseek\"\n value: \"env.DEEPSEEK_API_KEY\"\n weight: 1.0\n zai:\n network_config:\n base_url: \"https://api.z.ai/api/coding/paas/v4\"\n default_request_timeout_in_seconds: 120\n custom_provider_config:\n base_provider_type: openai\n request_path_overrides:\n chat_completion: \"/chat/completions\"\n chat_completion_stream: \"/chat/completions\"\n keys:\n - name: \"zai\"\n value: \"env.ZAI_API_KEY\"\n weight: 1.0\n models:\n - \"glm-5\"\n - \"glm-5.1\"\n cliproxy:\n network_config:\n base_url: \"http://cliproxy.cliproxy.svc:8317\"\n custom_provider_config:\n base_provider_type: openai\n keys:\n - name: \"cliproxy\"\n value: \"env.CLIPROXY_API_KEY\"\n weight: 1.0\n ollama:\n network_config:\n base_url: \"http://ollama.bifrost.svc:11434\"\n keys:\n - name: \"ollama\"\n value: \"ollama\"\n weight: 1.0\n\n providerSecrets:\n deepseek:\n existingSecret: bifrost-secrets\n key: deepseek-api-key\n envVar: DEEPSEEK_API_KEY\n zai:\n existingSecret: bifrost-secrets\n key: zai-api-key\n envVar: ZAI_API_KEY\n cliproxy:\n existingSecret: bifrost-secrets\n key: cliproxy-api-key\n envVar: CLIPROXY_API_KEY\n\n governance:\n authConfig:\n isEnabled: true\n disableAuthOnInference: true\n existingSecret: bifrost-secrets\n usernameKey: admin-username\n passwordKey: admin-password\n virtualKeys:\n - id: \"default\"\n name: \"Default Virtual Key\"\n description: \"Default key for all services (lobechat, holmesgpt, etc.)\"\n value: \"env.BIFROST_DEFAULT_VK\"\n is_active: true\n\n env:\n - name: BIFROST_DEFAULT_VK\n valueFrom:\n secretKeyRef:\n name: bifrost-secrets\n key: default-virtual-key\n\n ingress:\n enabled: false\n\n resources:\n requests:\n memory: \"256Mi\"\n cpu: \"100m\"\n limits:\n memory: \"1Gi\"\n cpu: \"500m\"\n"}}}}