Add OpenAI integration to Mealie

Enable recipe parsing from images/photos, ingredient extraction, and
URL scraping via OpenAI API (gpt-4o). Rename ExternalSecret from
mealie-oidc to mealie-secrets to hold both OIDC and OpenAI credentials.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erich Blume 2026-03-17 07:12:51 -07:00
commit 3602ed7781
2 changed files with 21 additions and 5 deletions

View file

@ -39,8 +39,8 @@ spec:
- name: OIDC_CLIENT_SECRET - name: OIDC_CLIENT_SECRET
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: mealie-oidc name: mealie-secrets
key: client-secret key: oidc-client-secret
- name: OIDC_AUTO_REDIRECT - name: OIDC_AUTO_REDIRECT
value: "false" value: "false"
- name: OIDC_PROVIDER_NAME - name: OIDC_PROVIDER_NAME
@ -51,6 +51,18 @@ spec:
value: "true" value: "true"
- name: OIDC_USER_CLAIM - name: OIDC_USER_CLAIM
value: "email" value: "email"
# OpenAI — recipe parsing, image OCR, ingredient extraction
- name: OPENAI_API_KEY
valueFrom:
secretKeyRef:
name: mealie-secrets
key: openai-api-key
- name: OPENAI_MODEL
value: "gpt-4o"
- name: OPENAI_REQUEST_TIMEOUT
value: "120"
- name: OPENAI_WORKERS
value: "1"
volumeMounts: volumeMounts:
- name: data - name: data
mountPath: /app/data mountPath: /app/data

View file

@ -2,7 +2,7 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: mealie-oidc name: mealie-secrets
namespace: mealie namespace: mealie
spec: spec:
refreshInterval: 1h refreshInterval: 1h
@ -10,10 +10,14 @@ spec:
kind: ClusterSecretStore kind: ClusterSecretStore
name: onepassword-blumeops name: onepassword-blumeops
target: target:
name: mealie-oidc name: mealie-secrets
creationPolicy: Owner creationPolicy: Owner
data: data:
- secretKey: client-secret - secretKey: oidc-client-secret
remoteRef: remoteRef:
key: "Authentik (blumeops)" key: "Authentik (blumeops)"
property: mealie-client-secret property: mealie-client-secret
- secretKey: openai-api-key
remoteRef:
key: "openai (blumeops)"
property: credential