Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bb276dd7dd | ||
|
|
0f0875a636 | ||
|
|
0c8cd05828 | ||
|
|
c2aec749b4 |
No files matched your search
+55
-55
@@ -1,59 +1,59 @@
|
||||
{
|
||||
"id": "ai.librechat.cloudronapp",
|
||||
"version": "1.4.5",
|
||||
"title": "LibreChat",
|
||||
"upstreamVersion": "0.8.8",
|
||||
"author": "Danny Avila",
|
||||
"description": "LibreChat is an open-source chatbot client that supports multiple AI providers and models including:\n\n- OpenAI GPT Models\n- Anthropic Claude Models\n- Google PaLM Models\n- Various open-source local models\n\nFeatures:\n- Switch between various AI models\n- Conversation history\n- Plugins support\n- File upload and processing\n- Custom instructions\n- Multiple conversation modes\n\n",
|
||||
"changelog": "* Update uv to 0.13.5\n",
|
||||
"tagline": "ChatGPT-like interface with model switching",
|
||||
"website": "https://github.com/danny-avila/LibreChat",
|
||||
"documentationUrl": "https://docs.cloudron.io/packages/librechat/",
|
||||
"forumUrl": "https://forum.cloudron.io/category/210/librechat",
|
||||
"contactEmail": "support@cloudron.io",
|
||||
"healthCheckPath": "/health",
|
||||
"httpPort": 3080,
|
||||
"addons": {
|
||||
"postgresql": {},
|
||||
"mongodb": {},
|
||||
"localstorage": {},
|
||||
"oidc": {
|
||||
"loginRedirectUri": "/oauth/openid/callback"
|
||||
"id": "ai.librechat.cloudronapp",
|
||||
"version": "1.4.8",
|
||||
"title": "LibreChat",
|
||||
"upstreamVersion": "0.8.8",
|
||||
"author": "Danny Avila",
|
||||
"description": "LibreChat is an open-source chatbot client that supports multiple AI providers and models including:\n\n- OpenAI GPT Models\n- Anthropic Claude Models\n- Google PaLM Models\n- Various open-source local models\n\nFeatures:\n- Switch between various AI models\n- Conversation history\n- Plugins support\n- File upload and processing\n- Custom instructions\n- Multiple conversation modes\n\n",
|
||||
"changelog": "* Update uv to 0.13.5\n",
|
||||
"tagline": "ChatGPT-like interface with model switching",
|
||||
"website": "https://github.com/danny-avila/LibreChat",
|
||||
"documentationUrl": "https://docs.cloudron.io/packages/librechat/",
|
||||
"forumUrl": "https://forum.cloudron.io/category/210/librechat",
|
||||
"contactEmail": "support@cloudron.io",
|
||||
"healthCheckPath": "/health",
|
||||
"httpPort": 3080,
|
||||
"addons": {
|
||||
"postgresql": {},
|
||||
"mongodb": {},
|
||||
"localstorage": {},
|
||||
"oidc": {
|
||||
"loginRedirectUri": "/oauth/openid/callback"
|
||||
},
|
||||
"sendmail": {
|
||||
"supportsDisplayName": true
|
||||
},
|
||||
"scheduler": {
|
||||
"librechat_key_sync": {
|
||||
"schedule": "* * * * *",
|
||||
"command": "cd /app/code/librechat/api && node /app/code/sync-keys.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sendmail": {
|
||||
"supportsDisplayName": true
|
||||
"checklist": {
|
||||
"register-admin": {
|
||||
"message": "On the first visit, register yourself as an admin user"
|
||||
},
|
||||
"disable-registration": {
|
||||
"message": "Disable registration, if required, to prevent misuse"
|
||||
},
|
||||
"set-api-keys": {
|
||||
"message": "Set API keys in /app/data/env file and restart the app"
|
||||
}
|
||||
},
|
||||
"scheduler": {
|
||||
"librechat_key_sync": {
|
||||
"schedule": "* * * * *",
|
||||
"command": "cd /app/code/librechat/api && node /app/code/sync-keys.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"checklist": {
|
||||
"register-admin": {
|
||||
"message": "On the first visit, register yourself as an admin user"
|
||||
},
|
||||
"disable-registration": {
|
||||
"message": "Disable registration, if required, to prevent misuse"
|
||||
},
|
||||
"set-api-keys": {
|
||||
"message": "Set API keys in /app/data/env file and restart the app"
|
||||
}
|
||||
},
|
||||
"optionalSso": true,
|
||||
"manifestVersion": 2,
|
||||
"memoryLimit": 1073741824,
|
||||
"minBoxVersion": "8.1.0",
|
||||
"tags": [
|
||||
"ai",
|
||||
"chat",
|
||||
"gpt"
|
||||
],
|
||||
"mediaLinks": [
|
||||
"https://screenshots.cloudron.io/ai.librechat.cloudronapp/librechat-00.png",
|
||||
"https://screenshots.cloudron.io/ai.librechat.cloudronapp/librechat-01.png"
|
||||
],
|
||||
"icon": "file://logo.png",
|
||||
"dockerImage": "registry.inference.coop/co-op/librechat-custom:20261031-2a98892"
|
||||
"optionalSso": true,
|
||||
"manifestVersion": 2,
|
||||
"memoryLimit": 1073741824,
|
||||
"minBoxVersion": "8.1.0",
|
||||
"tags": [
|
||||
"ai",
|
||||
"chat",
|
||||
"gpt"
|
||||
],
|
||||
"mediaLinks": [
|
||||
"https://screenshots.cloudron.io/ai.librechat.cloudronapp/librechat-00.png",
|
||||
"https://screenshots.cloudron.io/ai.librechat.cloudronapp/librechat-01.png"
|
||||
],
|
||||
"icon": "file://logo.png",
|
||||
"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
|
||||
# persistent volume (/app/data/librechat.yaml, /app/data/env,
|
||||
# /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)
|
||||
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'
|
||||
|
||||
|
||||
# Speech (STT/TTS) via the co-op gateway. Uses a dedicated LiteLLM virtual key
|
||||
# (alias: librechat-speech, $5/30d budget, restricted to the audio models) so
|
||||
# speech never runs on the gateway master key. The gateway is a public
|
||||
# Speech (STT/TTS) via the co-op gateway. LibreChat POSTs to `url` VERBATIM
|
||||
# (no path is appended), so the FULL endpoint paths are required here.
|
||||
# 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.
|
||||
# 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:
|
||||
tts:
|
||||
openai:
|
||||
url: "https://gateway.inference.coop/v1"
|
||||
apiKey: "${TTS_API_KEY}"
|
||||
url: "https://gateway.inference.coop/v1/audio/speech"
|
||||
apiKey: ${TTS_API_KEY}
|
||||
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:
|
||||
openai:
|
||||
url: "https://gateway.inference.coop/v1"
|
||||
apiKey: "${STT_API_KEY}"
|
||||
model: "tinfoil/whisper-large-v3-turbo"
|
||||
url: "https://gateway.inference.coop/v1/audio/transcriptions"
|
||||
apiKey: ${STT_API_KEY}
|
||||
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:
|
||||
conversationMode: false
|
||||
advancedMode: false
|
||||
speechToText: true
|
||||
textToSpeech: true
|
||||
speechToText:
|
||||
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)
|
||||
# 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}
|
||||
REGISTRY_REPO=${REGISTRY_REPO:-registry.inference.coop/co-op/librechat-custom}
|
||||
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
|
||||
|
||||
die() { printf 'release.sh: %s\n' "$*" >&2; exit 1; }
|
||||
|
||||
Reference in new issue
Block a user