chore(deps): @google/generative-ai + vips-dev fuer Foto-Rezept-Magie
This commit is contained in:
@@ -15,3 +15,9 @@ BRAVE_API_KEY=
|
|||||||
# SearXNG-Secret: beliebig lange Zufallskette. Für Prod mit
|
# SearXNG-Secret: beliebig lange Zufallskette. Für Prod mit
|
||||||
# `openssl rand -hex 32` generieren und in der Pi-.env ablegen.
|
# `openssl rand -hex 32` generieren und in der Pi-.env ablegen.
|
||||||
SEARXNG_SECRET=dev-secret-change-me
|
SEARXNG_SECRET=dev-secret-change-me
|
||||||
|
|
||||||
|
# Gemini Vision (Foto-Rezept-Magie). Ohne Key ist die Funktion graceful
|
||||||
|
# deaktiviert — der Kamera-Button erscheint dann gar nicht erst.
|
||||||
|
GEMINI_API_KEY=
|
||||||
|
GEMINI_MODEL=gemini-2.5-flash
|
||||||
|
GEMINI_TIMEOUT_MS=20000
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
FROM node:22-alpine AS builder
|
FROM node:22-alpine AS builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Alpine needs build tools for better-sqlite3 native module
|
# Alpine needs build tools for better-sqlite3 native module.
|
||||||
RUN apk add --no-cache python3 make g++ libc6-compat
|
# vips-dev provides libvips + libheif for sharp (incl. HEIC input from iOS).
|
||||||
|
RUN apk add --no-cache python3 make g++ libc6-compat vips-dev
|
||||||
|
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ services:
|
|||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
# Im Header als kleine Versionsnummer unter dem Logo angezeigt.
|
# Im Header als kleine Versionsnummer unter dem Logo angezeigt.
|
||||||
- KOCHWAS_TAG=${KOCHWAS_TAG:-dev}
|
- KOCHWAS_TAG=${KOCHWAS_TAG:-dev}
|
||||||
|
# Gemini (Foto-Rezept-Magie). Leer = Feature deaktiviert.
|
||||||
|
- GEMINI_API_KEY=${GEMINI_API_KEY:-}
|
||||||
|
- GEMINI_MODEL=${GEMINI_MODEL:-gemini-2.5-flash}
|
||||||
|
- GEMINI_TIMEOUT_MS=${GEMINI_TIMEOUT_MS:-20000}
|
||||||
depends_on:
|
depends_on:
|
||||||
- searxng
|
- searxng
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
10
package-lock.json
generated
10
package-lock.json
generated
@@ -8,6 +8,7 @@
|
|||||||
"name": "kochwas",
|
"name": "kochwas",
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@google/generative-ai": "^0.24.1",
|
||||||
"@types/archiver": "^7.0.0",
|
"@types/archiver": "^7.0.0",
|
||||||
"@types/yauzl": "^2.10.3",
|
"@types/yauzl": "^2.10.3",
|
||||||
"archiver": "^7.0.1",
|
"archiver": "^7.0.1",
|
||||||
@@ -659,6 +660,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@google/generative-ai": {
|
||||||
|
"version": "0.24.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.24.1.tgz",
|
||||||
|
"integrity": "sha512-MqO+MLfM6kjxcKoy0p1wRzG3b4ZZXtPI+z2IE26UogS2Cm/XHO+7gGRBh6gcJsOiIVoH93UwKvW4HdgiOZCy9Q==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@img/colour": {
|
"node_modules/@img/colour": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
"vitest": "^2.1.4"
|
"vitest": "^2.1.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@google/generative-ai": "^0.24.1",
|
||||||
"@types/archiver": "^7.0.0",
|
"@types/archiver": "^7.0.0",
|
||||||
"@types/yauzl": "^2.10.3",
|
"@types/yauzl": "^2.10.3",
|
||||||
"archiver": "^7.0.1",
|
"archiver": "^7.0.1",
|
||||||
|
|||||||
Reference in New Issue
Block a user