Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bb276dd7dd | ||
|
|
0f0875a636 | ||
|
|
0c8cd05828 | ||
|
|
c2aec749b4 |
No files matched your search
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"id": "ai.librechat.cloudronapp",
|
"id": "ai.librechat.cloudronapp",
|
||||||
"version": "1.4.5",
|
"version": "1.4.8",
|
||||||
"title": "LibreChat",
|
"title": "LibreChat",
|
||||||
"upstreamVersion": "0.8.8",
|
"upstreamVersion": "0.8.8",
|
||||||
"author": "Danny Avila",
|
"author": "Danny Avila",
|
||||||
@@ -55,5 +55,5 @@
|
|||||||
"https://screenshots.cloudron.io/ai.librechat.cloudronapp/librechat-01.png"
|
"https://screenshots.cloudron.io/ai.librechat.cloudronapp/librechat-01.png"
|
||||||
],
|
],
|
||||||
"icon": "file://logo.png",
|
"icon": "file://logo.png",
|
||||||
"dockerImage": "registry.inference.coop/co-op/librechat-custom:20261031-2a98892"
|
"dockerImage": "registry.inference.coop/co-op/librechat-custom:20261106-c2aec74"
|
||||||
}
|
}
|
||||||
+1
-1
@@ -20,7 +20,7 @@
|
|||||||
# the manifest's scheduler task). All other behavior lives on the
|
# the manifest's scheduler task). All other behavior lives on the
|
||||||
# persistent volume (/app/data/librechat.yaml, /app/data/env,
|
# persistent volume (/app/data/librechat.yaml, /app/data/env,
|
||||||
# /app/data/mcp/) and survives image updates unchanged.
|
# /app/data/mcp/) and survives image updates unchanged.
|
||||||
FROM cloudron/ai.librechat.cloudronapp:202610230221180000
|
FROM cloudron/ai.librechat.cloudronapp:202611030321030000
|
||||||
|
|
||||||
# Login-page + header logo (the client bundle references assets/logo.svg)
|
# Login-page + header logo (the client bundle references assets/logo.svg)
|
||||||
COPY assets/logo.svg /app/code/librechat/client/dist/assets/logo.svg
|
COPY assets/logo.svg /app/code/librechat/client/dist/assets/logo.svg
|
||||||
|
|||||||
+32
-11
@@ -133,27 +133,48 @@ interface:
|
|||||||
rgb-border-light: '74 82 64'
|
rgb-border-light: '74 82 64'
|
||||||
|
|
||||||
|
|
||||||
# Speech (STT/TTS) via the co-op gateway. Uses a dedicated LiteLLM virtual key
|
# Speech (STT/TTS) via the co-op gateway. LibreChat POSTs to `url` VERBATIM
|
||||||
# (alias: librechat-speech, $5/30d budget, restricted to the audio models) so
|
# (no path is appended), so the FULL endpoint paths are required here.
|
||||||
# speech never runs on the gateway master key. The gateway is a public
|
# Uses a dedicated LiteLLM virtual key (alias: librechat-speech, $5/30d
|
||||||
|
# budget, restricted to the audio models) injected as STT_API_KEY/TTS_API_KEY
|
||||||
|
# app env — speech never runs on the master key. The gateway is a public
|
||||||
# endpoint, so no SSRF allowedAddresses exemption is needed.
|
# endpoint, so no SSRF allowedAddresses exemption is needed.
|
||||||
|
# STT: tinfoil/voxtral-small-24b — token-priced (~$0.00008/typical dictation
|
||||||
|
# request on the gateway) vs the flat $0.01/request of
|
||||||
|
# tinfoil/whisper-large-v3-turbo; same TEE provider, equal quality on short
|
||||||
|
# clips (verified round-trip 2026-11-07). Whisper stays allowed on the key as
|
||||||
|
# a one-line fallback swap. TTS: tinfoil/voxtral-tts, $0.002/request at cost;
|
||||||
|
# voices are the provider's supported speakers (an unknown name 400s).
|
||||||
speech:
|
speech:
|
||||||
tts:
|
tts:
|
||||||
openai:
|
openai:
|
||||||
url: "https://gateway.inference.coop/v1"
|
url: "https://gateway.inference.coop/v1/audio/speech"
|
||||||
apiKey: "${TTS_API_KEY}"
|
apiKey: ${TTS_API_KEY}
|
||||||
model: "tinfoil/voxtral-tts"
|
model: "tinfoil/voxtral-tts"
|
||||||
voices: ["casual_female"]
|
voices: ["ar_male", "casual_female", "casual_male", "cheerful_female", "de_female", "de_male", "es_female", "es_male", "fr_female", "fr_male", "hi_female", "hi_male", "it_female", "it_male", "neutral_female", "neutral_male", "nl_female", "nl_male", "pt_female", "pt_male"]
|
||||||
stt:
|
stt:
|
||||||
openai:
|
openai:
|
||||||
url: "https://gateway.inference.coop/v1"
|
url: "https://gateway.inference.coop/v1/audio/transcriptions"
|
||||||
apiKey: "${STT_API_KEY}"
|
apiKey: ${STT_API_KEY}
|
||||||
model: "tinfoil/whisper-large-v3-turbo"
|
model: "tinfoil/voxtral-small-24b"
|
||||||
|
# Seeded client defaults (Settings -> Speech): members who never saved
|
||||||
|
# their own speech settings get the External engines out of the box;
|
||||||
|
# a member's own saved settings always win. "Automatic playback" stays
|
||||||
|
# opt-in per member (set textToSpeech.automaticPlayback: true to change).
|
||||||
speechTab:
|
speechTab:
|
||||||
conversationMode: false
|
conversationMode: false
|
||||||
advancedMode: false
|
advancedMode: false
|
||||||
speechToText: true
|
speechToText:
|
||||||
textToSpeech: true
|
engineSTT: external
|
||||||
|
# Pin the transcription LANGUAGE default to English. Without it the
|
||||||
|
# client sends no language param and voxtral-small-24b auto-detects —
|
||||||
|
# which misfired once as Spanish on a short first mic press (reported
|
||||||
|
# 2026-11-07). Members who save their own language in Settings -> Speech
|
||||||
|
# always override this default.
|
||||||
|
languageSTT: "en"
|
||||||
|
textToSpeech:
|
||||||
|
engineTTS: external
|
||||||
|
voice: casual_female
|
||||||
|
|
||||||
# Web search: self-hosted SearXNG (search.inference.coop, keyless JSON API)
|
# Web search: self-hosted SearXNG (search.inference.coop, keyless JSON API)
|
||||||
# for search, keyless Keenable for page scraping, no reranker. The instance
|
# for search, keyless Keenable for page scraping, no reranker. The instance
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ set -euo pipefail
|
|||||||
APP=${APP:-4023ccbf-d57a-4500-97df-14de9cf3516e}
|
APP=${APP:-4023ccbf-d57a-4500-97df-14de9cf3516e}
|
||||||
REGISTRY_REPO=${REGISTRY_REPO:-registry.inference.coop/co-op/librechat-custom}
|
REGISTRY_REPO=${REGISTRY_REPO:-registry.inference.coop/co-op/librechat-custom}
|
||||||
SERVER=${SERVER:-my.inference.coop}
|
SERVER=${SERVER:-my.inference.coop}
|
||||||
BASE_IMAGE=${BASE_IMAGE:-cloudron/ai.librechat.cloudronapp:202610150224320000}
|
BASE_IMAGE=${BASE_IMAGE:-cloudron/ai.librechat.cloudronapp:202611030321030000}
|
||||||
MANIFEST=CloudronManifest.json
|
MANIFEST=CloudronManifest.json
|
||||||
|
|
||||||
die() { printf 'release.sh: %s\n' "$*" >&2; exit 1; }
|
die() { printf 'release.sh: %s\n' "$*" >&2; exit 1; }
|
||||||
|
|||||||
Reference in new issue
Block a user