Sustainable LibreChat setup: official manifest, config layer, brand overlay

- CloudronManifest.json: byte-identical copy of the OFFICIAL appstore manifest
  (the hand-edited one stripped addons and crash-looped the app on 2026-10-18)
- Dockerfile: pinned base (202610150224320000), brand assets only + title sed
- librechat.yaml: schema 1.3.17; chat models only in picker (qwen-image moved
  to the agent image tool); speech via gateway with capped key refs; SearXNG
  web search; inference-docs MCP server; forward-compatible interface.theme
- mcp/server.py: docs MCP server (stdio, stdlib-only, tool search_docs)
- assets/: co-op logo + favicons/PWA icons
This commit is contained in:
Nathan Schneider committed 2026-10-18 20:26:40 -06:00
1 parent 3a4ed91359
commit 070dec3d29
13 files changed
+538 -106

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
.git
*.md
+52 -10
View File
@@ -1,11 +1,53 @@
{
"manifestVersion": 2,
"id": "io.inference.librechat.custom",
"title": "LibreChat (Co‑op custom)",
"description": "LibreChat sandbox with Inference‑Co‑op branding and image‑generation support.",
"version": "1.3.1",
"author": "Inference Co‑op",
"healthCheckPath": "/",
"httpPort": 3080,
"icon": "logo-coop.png"
}
"id": "ai.librechat.cloudronapp",
"version": "1.4.1",
"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.1\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
}
},
"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": "cloudron/ai.librechat.cloudronapp:202610150224320000"
}
+31 -6
View File
@@ -1,9 +1,34 @@
# Inference Co-op LibreChat — brand overlay on the official Cloudron package
#
# Build: cloudron builder build --repository registry.inference.coop/co-op/librechat-custom --tag <yyyymmdd>-<gitsha>
# Deploy: cloudron update --app <app-id> --image registry.inference.coop/co-op/librechat-custom:<tag>
# (run from THIS directory — the CLI reads CloudronManifest.json here)
#
# Rules that keep this image safe:
# 1. The base tag is PINNED to the exact appstore image the app runs
# (manifest.dockerImage). Never a floating tag: a rebuild must never
# silently pull a newer LibreChat than the one we validated.
# 2. NEVER edit CloudronManifest.json — the copy in this repo must stay
# byte-identical to the OFFICIAL appstore manifest. `cloudron update`
# reads it from the deploy directory and applies it to the app; a
# hand-edited manifest that omits addons (postgresql, mongodb, oidc,
# sendmail, localstorage) strips them from the app and crash-loops it
# (mkdir: Read-only file system). That is what broke the sandbox on
# 2026-10-18 — the manifest, not the overlay, was the bug.
# 3. This image changes ONLY static brand assets. All 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:202610150224320000
# Overwrite LibreChat config with our custom version (includes icons, models, themes, API keys settings)
COPY librechat.yaml /app/code/librechat/librechat.yaml
# Login-page + header logo (the client bundle references assets/logo.svg)
COPY assets/logo.svg /app/code/librechat/client/dist/assets/logo.svg
# Browser favicons + PWA icons (referenced by dist/index.html + manifest.webmanifest)
COPY assets/favicon-32x32.png /app/code/librechat/client/dist/assets/favicon-32x32.png
COPY assets/favicon-16x16.png /app/code/librechat/client/dist/assets/favicon-16x16.png
COPY assets/apple-touch-icon-180x180.png /app/code/librechat/client/dist/assets/apple-touch-icon-180x180.png
COPY assets/icon-192x192.png /app/code/librechat/client/dist/assets/icon-192x192.png
COPY assets/maskable-icon.png /app/code/librechat/client/dist/assets/maskable-icon.png
COPY CloudronManifest.json /app/CloudronManifest.json
RUN mkdir -p /app/data/public/assets
COPY logo.svg /app/code/librechat/client/dist/assets/logo.svg
COPY logo.png /app/code/librechat/client/dist/assets/logo-coop.png
# Browser-tab title (index.html is baked at build; sed no-ops harmlessly if
# the upstream markup ever changes)
RUN sed -i 's|<title>LibreChat</title>|<title>Inference Co-op</title>|' /app/code/librechat/client/dist/index.html
+127 -28
View File
@@ -1,34 +1,133 @@
# LibreChat sandbox maintenance
# LibreChat sandbox — Inference Co-op customization
**Current image**
- Docker image: `cloudron/ai.librechat.cloudronapp:202610150224320000`
- Deployed as app **0752e430‑aa36‑436e‑8668‑ef18da474f47** (LibreChat sandbox at `https://librechat-test.inference.coop`).
Source of truth for the LibreChat evaluation instance at
**librechat-test.inference.coop** (Cloudron app `4023ccbf-d57a-4500-97df-14de9cf3516e`,
appstore package `ai.librechat.cloudronapp@1.4.1`, which bundles **LibreChat
v0.8.8** on image `cloudron/ai.librechat.cloudronapp:202610150224320000`).
**Automatic updates**
- The "Automatic updates" toggle in the Cloudron UI has been turned **off** (as of 2026‑10‑18). This prevents the sandbox from pulling newer Docker images automatically.
This repo exists so the sandbox never drifts from what is deployed: the config
file here is byte-identical to `/app/data/librechat.yaml`, the MCP server here
is byte-identical to `/app/data/mcp/server.py`, and the Docker image is built
from this directory.
**Image‑generation button**
- Added the `regolo/qwen-image` model to `modelSpecs.list` in `librechat.yaml`. This makes LibreChat display a permanent **📷 Image generation** button for users, allowing easy prompt‑based image creation via the gateway.
## Architecture: what lives where
**Version‑pinning workflow**
1. **Create a version tag** when a new LibreChat release is approved (e.g. `cloudron/ai.librechat.cloudronapp:202610250100000000`).
2. **Push the tagged image** to the co‑op registry (e.g. `registry.inference.coop/librechat:sandbox‑2026‑10‑25`).
```bash
docker pull cloudron/ai.librechat.cloudronapp:<new‑tag>
docker tag cloudron/ai.librechat.cloudronapp:<new‑tag> registry.inference.coop/librechat:sandbox‑<date>
docker login registry.inference.coop # use registry‑bot credentials
docker push registry.inference.coop/librechat:sandbox‑<date>
```
3. **Redeploy** the sandbox with the pinned tag:
```bash
cloudron update --app 0752e430-aa36-436e-8668-ef18da474f47 \
--image registry.inference.coop/librechat:sandbox‑<date>
```
4. **Verify** the app is running (`cloudron status --app <id>`) and that the image field reflects the new tag.
5. **Record** the change in this document (date, tag, reason) and optionally open a GitHub/Gitea issue linking to the upstream LibreChat release.
| Layer | Location | Survives image update? | Repo mirror |
|---|---|---|---|
| App config | `/app/data/librechat.yaml` (volume) | yes | `librechat.yaml` |
| Env vars (env-file wins!) | `/app/data/env` (volume, sourced LAST by start.sh) | yes | changed lines documented below |
| Env vars (Cloudron-managed) | `cloudron env` (process env) | yes | documented below |
| MCP docs server | `/app/data/mcp/server.py` (volume) | yes | `mcp/server.py` |
| Brand assets (logo, favicons) | baked into image overlay | no — rebuilt per image | `assets/` |
| CloudronManifest.json | repo only (used by `cloudron update`) | n/a | byte-identical copy of the OFFICIAL appstore manifest |
**Rollback**
- To roll back, repeat step 3 with the previous image tag.
**Precedence gotcha:** `start.sh` does `source /run/librechat/env` AFTER the
process env, and `/app/data/env` is appended into it — so a value defined in
`/app/data/env` **overrides** the same `cloudron env` variable. That is why
`ALLOW_EMAIL_LOGIN=false` must be set in `/app/data/env`, not (only) via
`cloudron env`.
**Future maintainers**
- All steps are captured in this doc and in the corresponding issue in `co‑op/support` (Issue #24). The `co‑op/docs` repository should contain this file; keep it up‑to‑date whenever the sandbox image changes or the automatic‑update flag is toggled.
## Deploy a config change (no image rebuild needed)
```bash
B64=$(base64 -w0 librechat.yaml)
cloudron --server my.inference.coop --token "$CLOUDRON_TOKEN" exec \
--app 4023ccbf-d57a-4500-97df-14de9cf3516e \
-- bash -c "echo '$B64' | base64 -d > /app/data/librechat.yaml"
cloudron --server my.inference.coop --token "$CLOUDRON_TOKEN" restart \
--app 4023ccbf-d57a-4500-97df-14de9cf3516e
```
Always `diff` the repo file against the live one after deploying. Always
deploy via base64 — heredocs and `sed` inserts have corrupted this file twice
(literal `$(...)` / bad indentation → LibreChat silently falls back to
defaults with only one log line).
Verify after every change:
```bash
cloudron logs --app <id> --lines 60 | grep -iE 'custom config|error|invalid|MCP'
curl -s https://librechat-test.inference.coop/api/config # appTitle, emailLoginEnabled, socialLogins
```
## Build + deploy the image (brand assets only)
```bash
cd /tmp/librechat-custom # THIS dir: cloudron update reads CloudronManifest.json here
git add -A && git commit -m "..." && git push
SHA=$(git rev-parse --short HEAD)
cloudron builder build --repository registry.inference.coop/co-op/librechat-custom \
--tag 20261019-$SHA
cloudron --server my.inference.coop --token "$CLOUDRON_TOKEN" update \
--app 4023ccbf-d57a-4500-97df-14de9cf3516e \
--image registry.inference.coop/co-op/librechat-custom:20261019-$SHA
```
Rollback: rerun the `update` with the previous tag (or the appstore image
`cloudron/ai.librechat.cloudronapp:<original-tag>`).
**NEVER edit `CloudronManifest.json`.** `cloudron update` reads it from this
directory and applies it to the app. A hand-edited manifest that omits the
addons (`postgresql`, `mongodb`, `oidc`, `sendmail`, `localstorage`) strips
them from the running app and crash-loops it (`mkdir: Read-only file system`).
That is what broke the sandbox on 2026-10-18 — the manifest, not the overlay.
When the appstore package updates, refresh this file with a new copy pulled
from the Cloudron API (`GET /api/v1/apps/<id> → .manifest`) and bump the
`FROM` tag in the Dockerfile to the new `manifest.dockerImage`.
## Env vars (live state)
Set in `/app/data/env` (volume — these WIN over cloudron env):
- `APP_TITLE="Inference Co-op"` (was `"LibreChat"`)
- `ALLOW_EMAIL_LOGIN=false` (was `true`) — password login removed; Cloudron
SSO (OIDC) is the only login path
- `SCHEDULES_SINGLE_PROCESS=true` — sandbox runs a single replica; silences
the scheduler's Redis guard error
Set via `cloudron env set` (process env):
- `TTS_API_KEY` / `STT_API_KEY` — **dedicated LiteLLM virtual key** (alias
`librechat-speech`, $5 / 30d budget, restricted to `tinfoil/voxtral-tts` +
`tinfoil/whisper-large-v3-turbo`). Regenerate with the gateway master key:
`POST /key/generate {"key_alias":"librechat-speech","models":[...],"max_budget":5,"budget_duration":"30d"}`
— never put the master key here.
- `IMAGE_GEN_OAI_BASEURL=https://gateway.inference.coop/v1` and
`IMAGE_GEN_OAI_MODEL=regolo/qwen-image` — the agent "OpenAI Image Tools"
points at the co-op gateway. No `IMAGE_GEN_OAI_API_KEY`: members enter their
own co-op key in the tool UI (per-member billing, same pattern as the chat
endpoint's `apiKey: user_provided`).
- `SEARXNG_INSTANCE_URL=https://search.inference.coop` — referenced from the
YAML as `${SEARXNG_INSTANCE_URL}` (self-hosted search; keyless JSON API).
## Feature notes (LibreChat v0.8.8)
- **Chat models**: custom endpoint "Inference Co-op" → gateway, per-member
keys, 8 chat modelSpecs (emoji convention shared with models.md).
`regolo/qwen-image` is deliberately NOT in the chat picker (image models
are not chat models; chat-calling it was the source of the old 500s).
- **Image generation**: LibreChat exposes image gen through an **Agent with
the "OpenAI Image Tools" tool**, not a chat-picker button. Members create
an agent, add the tool, and paste their co-op key on first use.
- **MCP**: `inference-docs` (stdio, `/app/data/mcp/server.py`, tool
`search_docs`) is admin-configured; members may add their own via the MCP
Settings panel (the "bring your own tools" pattern). Permissions seeded via
`interface.mcpServers` (use/create true, share false).
- **Speech**: TTS `tinfoil/voxtral-tts` (voice `casual_female`), STT
`tinfoil/whisper-large-v3-turbo`, both via the gateway with the capped key.
- **Web search**: SearXNG (self-hosted) + keyless Keenable scraper, no reranker.
- **Colors**: `interface.theme` in the YAML is **forward-compatible only** —
the theme engine ships in LibreChat releases AFTER 0.8.8 (merged to dev,
not tagged). The block is silently ignored today and activates by itself
when the appstore package bundles a newer LibreChat. No other runtime
theming exists in 0.8.8.
## Known state / limitations
- `patches/`, `logo.png`, `logo-coop.png`, `logo.svg` (repo root) are legacy
leftovers from the abandoned 2026-10-18 hand-built-image attempt — unused,
pending cleanup.
- The `[schedules]` Redis guard error is resolved by
`SCHEDULES_SINGLE_PROCESS=true` (above).
- The `RAG API not reachable` warning is expected (no rag_api addon); it only
affects LibreChat's own file-RAG, which we do not use.
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<image href="data:image/png;base64,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 truncated
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

+67 -62
View File
@@ -1,28 +1,12 @@
version: 1.3.1
version: 1.3.17
# Voice: server-side STT/TTS via the co-op gateway (Tinfoil TEE).
# Server STT works in every browser (Firefox has no Web Speech API).
speech:
stt:
openai:
url: "https://gateway.inference.coop/v1/audio/transcriptions"
apiKey: "${GATEWAY_KEY}"
model: "tinfoil/whisper-large-v3-turbo"
tts:
openai:
url: "https://gateway.inference.coop/v1/audio/speech"
apiKey: "${GATEWAY_KEY}"
model: "tinfoil/voxtral-tts"
voices: ["neutral_female", "neutral_male", "casual_female", "casual_male", "cheerful_female"]
cache: true
# Inference Co-op gateway — PER-USER keys (production pattern): no server-side
# apiKey here, so each user pastes their own dashboard key once. Usage then
# bills to that member's own LiteLLM team/budget, exactly like the API path.
# Inference Co-op gateway — PER-USER keys: each member pastes their own
# dashboard key once (apiKey: user_provided). Usage bills to that member's
# own LiteLLM team/budget.
endpoints:
custom:
- name: "Inference Co-op"
iconURL: "/assets/logo-coop.png"
iconURL: "data:image/png;base64,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 truncated
apiKey: "user_provided"
baseURL: "https://gateway.inference.coop/v1"
models:
@@ -40,95 +24,72 @@ endpoints:
titleModel: "greenpt/glm-5.3-flash"
titleMethod: "completion"
# Web search via the co-op's self-hosted SearXNG (public URL, JSON enabled for OWUI already).
# scraperProvider keenable = keyless page-fetch, so members get one-click search
# with no Firecrawl prompt. (Production note: keenable is an external keyless
# service — if that offends self-host values, swap in a self-hosted Firecrawl.)
webSearch:
searchProvider: "searxng"
scraperProvider: "keenable"
searxngInstanceUrl: "${SEARXNG_INSTANCE_URL}"
searxngSearchOptions:
engines: "google,bing,duckduckgo"
language: "en"
timeout: 15000
# MCP: the co-op docs, opt-in per conversation (stdlib stdio server in /app/data).
mcpServers:
inference-docs:
type: stdio
command: python3
args:
- /app/data/inference-docs-mcp/server.py
# Emoji-ified model picker (same feature-tier convention as models.md / OWUI):
# 🌱 = renewable-powered (GreenPT + Regolo), 🔒 = TEE-architected private (Tinfoil).
# Utility models (audio STT/TTS, image generation) are excluded from chat.
# Emoji-ified model picker (same convention as models.md / OWUI):
# 🌱 = renewable (GreenPT + Regolo), 🔒 = TEE-private (Tinfoil).
modelSpecs:
enforce: true
prioritize: true
list:
- name: tinfoil-deepseek-v4-1-flash
iconURL: "/assets/logo-coop.png"
iconURL: "data:image/png;base64,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 truncated
label: "🔒 tinfoil/deepseek-v4-1-flash"
softDefault: true
preset:
endpoint: "Inference Co-op"
model: "tinfoil/deepseek-v4-1-flash"
- name: tinfoil-gpt-oss-120b
iconURL: "/assets/logo-coop.png"
iconURL: "data:image/png;base64,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 truncated
label: "🔒 tinfoil/gpt-oss-120b"
preset:
endpoint: "Inference Co-op"
model: "tinfoil/gpt-oss-120b"
- name: tinfoil-glm-5-3
iconURL: "/assets/logo-coop.png"
iconURL: "data:image/png;base64,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 truncated
label: "🔒 tinfoil/glm-5.3"
preset:
endpoint: "Inference Co-op"
model: "tinfoil/glm-5.3"
- name: greenpt-deepseek-v4-1-flash
iconURL: "/assets/logo-coop.png"
iconURL: "data:image/png;base64,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 truncated
label: "🌱 greenpt/deepseek-v4.1-flash"
preset:
endpoint: "Inference Co-op"
model: "greenpt/deepseek-v4.1-flash"
- name: greenpt-glm-5-3-flash
iconURL: "/assets/logo-coop.png"
iconURL: "data:image/png;base64,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 truncated
label: "🌱 greenpt/glm-5.3-flash"
preset:
endpoint: "Inference Co-op"
model: "greenpt/glm-5.3-flash"
- name: greenpt-glm-5-3
iconURL: "/assets/logo-coop.png"
iconURL: "data:image/png;base64,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 truncated
label: "🌱 greenpt/glm-5.3"
preset:
endpoint: "Inference Co-op"
model: "greenpt/glm-5.3"
- name: regolo-apertus-70b
iconURL: "/assets/logo-coop.png"
iconURL: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAaK0lEQVR4nO3dPXJTWbQG0EsX1dVVPSmG4CkQkJE4cULihISEhIyAKXgITIoqioQX9LvvycKSrnTPzz5nrxV2G2lLZev7zr6y/Gqhml8/f/zuPQPAyP7+599XvWeYlSd2JyEP0IdysI8n7wrCHiA2pWA7T9QZAh9gbArBaZ6YAwIfYG4Kwf9L/0QIfYCcspeBtA9e8AOwLHmLQKoHLfQBOCdTGUjxQAU/ANfIUASmfoCCH4A9Zi4CUz4wwQ9ASTMWgakekOAHoKaZisAUD0TwA9DSDEVg6Acg+AHoaeQi8FfvAW4l/AHobeQsGq65jPxkAzCv0bYBQ20AhD8AUY2WUUO0ldGeVAByG2EbEH4DIPwBGM0I2RW6AIzwBALAS6JnWMgVRfQnDQCuEfGSQLgNgPAHYDYRsy1UAYj4BAFACdEyLkwBiPbEAEBpkbKu+zWJSE8GALTS+30BXTcAwh+ArHpnYLcC0PuBA0BvPbOwSwEQ/gDwn16Z2LwACH8AeK5HNjYtAMIfAF7WOiObFQDhDwDntczKJgVA+APANq0ys3oBEP4AcJ0W2RnmkwABgHaqFgCnfwC4Te0MrfYxhMIf4nn75d3Z///t/ddGkwBb1frI4Co3Kvwhjkuhf4oyAHHUKAHFb1D4Q3+3hv4pygD0V7oEeBMgTKZ0+Ne6TaCvogXA6R/6qhnUSgD0VTpji60ThD/00zqcXRKAfkpdCiiyARD+0E+Pk7ltAPRTKnO9BwAAEtpdAJz+oZ+eJ3FbAOinRPbuKgDCH/qJEMARZoCs9mawSwAwoEjBG2kWYLubC4DTPwD0tSeLbyoAwh8AYrg1k10CgMFEXLlHnAk47+oC4PQPALHcks02AACQ0FUFwOkf+oq8ao88G2RwbUbbAABAQpsLgNM/AMR2TVbbAABAQpsKgNM/AIxha2bbAABAQhcLgNM/AIxlS3bbAABAQmcLgNM/xPLt/dfeI5wUeTbI6FKG2wAAQEIKAAAkdLIAWP9DTBFX7RFnAs5nuQ0AACT0YgFw+geAOZzKdBsAGFCklXukWYDtFAAYVITgjTADcJs/CoD1P4yjZwALfxjHS9luAwAACSkAMLgeJ3Gnfxjfq+P/4BIAjOvtl3dVb1/ww7j+/uffZ5n/bAMg/GFsNQNa+MPYjjPeJQCYTI2gFv4wn2frABsAmM+tlwWEPszn8DKAAgCJXCoDQh/m9mIBEP4AML+1BHgPAAAkpAAAQEIKAAAkpAAAQEJ/LYs3AAJAFmvm2wAAQEIKAAAkpAAAQEIKAAAkpAAAQEIKAAAk9MqvAAJAPjYAAJCQAgAACSkAAJCQAgAACSkAAJCQAgAACb3uPQBk9vj94+WvefOhwSRANj4HABraEvgXb0MhAApQAKCBEsH/x20qAsAOCgBUVCP4/7gPRQC4gQIAFbQI/j/uUxEAruC3AKCwHuHf836BMSkAUFDvEO59/8A4FAAoJEr4RpkDiM17AKCAiKE7wnsC7p8eTv6/z3efGk4C+SgAsFPE8F9FLAHnQv8UZQDKUwBgh8jhv4pSAm4J/mOKAJTjo4CBqkoE//FtKQKwnzcBwo1GOP0vS985S4Z/i9uFTBQAoIraIa0EwD4KANxglNP/qvW8rcJZCYDbKQAAkJACAFca7fS/ajV361O5LQDcRgEAiukVxkoAXE8BAICEFAC4wqjr/9Xo8wPlKABAEb3X8L3vH0ajAABAQgoAACSkAABAQgoAACSkAABAQgoAACSkAABAQgoAUMTnu0+p7x9GowDAFR7ffOg9wi6jzw+UowAAQEIKAFBMrzW89T9cTwGAK426Rm81d+swFv5wGwUAABJSAOAGo20BWs/b6lTu9A+3UwCAKmqHs/CHfRQAuNEoW4Cec9YKaeEP+73uPQAwtzWs758eit0WsN+rXz9//O49BIzs8fvH3iOcFHFLcUsREPxQngIABUQsARHD/9i5MiD0oS4FAAqJVAJGCH+gL28ChEKihG6UOYDYFAAoqHf49r5/YBwKABTWK4SFP3AN7wGAilq8L0DwA7dQAKCBGkVA8AN7KADQUIkiIPiBEhQA6GhLIRD4QA0KAAAk5LcAACAhBQAAElIAACAhBQAAElIAACAhBQAAElIAACAhBQAAElIAACAhBQAAElIAACAhBQAAEnrdewCI6O2Xd5u+7tv7r5UnAajDXwOEZXvgX6IQAKNQAEitVPAfUwSA6BQAUqoV/McUASAqbwIknVbh3/q+AK5hA0AavcPYNgCIRAEghd7hv+pdAh6/fzz//998aDQJ0JsCwPSihP+qdQm4FPon/50yAFNTAJhatPBf1S4Bt4b+ydtTBmA63gTItKKG/7LUna10+Ne6TaAvGwCmFDn8D5XeBNQO6pE3AfdPD2f//+e7T40mgRh8FDBMoNUJfb2fUYrApdA/9bXKABm4BMB0Rjn9L0uZWXus50e4JHBN+Jf8tzAKGwCmMlL4r95+edf91wNnUiq819uxDWBWNgAwsJ4n8YhbgBond9sAZqUAMI0RT/+rW2aPEMARZljVDGolgBkpADCgSMEbYZYWAa0EMBsFgCmMfPpfzfAYgHEoAMDQWp7MbQGYiQIAg4mwcj/Wa6YegawEMAsFAAASUgAY3kzXzmd6LEBsCgAMJOL6f9V6tp6reJcBmIECAAAJKQAAkJACAAAJKQAAkJACAAAJKQAAkJACAAAJKQAwkMc3H3qPcFLr2T7ffWp6f1HuG0pRABjet/dfe49QzEyPBYhNAQCAhBQAGEzEywC9Zuqxirf+ZxYKADC0loEs/JmJAsAUZrh2PsNjAMahAMCAIl0GiDBLi5O50z+zUQCYxsgn6FtmjxC8EWZY1Qxo4c+MFAAYWM8AjhT+qxpBLfyZ1eveA0BJ395/Xd5+edd7jKuMvLmIaA3s+6eHIrcDs7IBYDojBWqJWXucxCOe/o/tCXDhTwY2ADCBNZAfv39scj+jOAzySxsBoU82r379/PG79xBQQ/RLAbU2FbVKwGjhD5znEgDTinwpoOZsNYJa+MN8bACYXrRNQOticutGQOjD3BQAUohSAnpvJS6VAaEPeSgApNG7BPQOf4BDCgDptC4Cgh+IyJsASadlIAt/ICobAFKrtQ0Q/EB0CgAs5YqA4AdGoQDAC7YWAoEPjEoBAICEvAkQABJSAAAgIQUAABJSAAAgIQUAABJSAAAgIQUAABJSAAAgode9B4Bz7p8eNn3d57tPlScBmItPAiSUrYF/iUIAcJ4CQAilgv+YIgDwMgWArmoF/zFFAOA5BYAuWgX/MUUA4D9+C4DmeoV/7/sGiMQGgGaihe9o24C3X95t+rpv779WngSYgQJAE9HCfxW9BGwN/VOUAeAUBYDqoob/KmIJ2Bv8xxQB4JgCQFXRw38VpQSUDv5jigCwUgCoZpTwX/UuAbXDfzVKCXj8/vHy17z50GASmJOPAoYAWoX/el9RS8CW0D/19coAXMcGgCpGO/2vemwBWob/oUgl4NrgP3tbigBs4nMAKG7U8F+W9rP3Cv/e932oZPjXuD2YlUsA0EmEAO55OaBmUK+3HXEbcK5k9n4fCrm4BEBRI5/+D9V+IY4Q/odal4CWp/QIJeCWnwtlgNpcAoDGooX/srSdqfWKvuclgfunh5tL8Z5/C1soABQz04vVTI+FPkp9D/lepBYFABqKePpftZit12m89f2WDm0lgBoUAIqY8QVqxsfUU+9357e6/1rfN74fKU0BgEYin/5XI8wYWe2QVgIoSQEAqut9+l9FmQMiUAAACmh1OrcFoBQFgN1mfkEq9dhGWq2PNCtwOwUAqCra2r3GPK1L8Mylm3YUAABISAEAgIQUAABISAEAgIQUAABISAEAgIQUAABISAEAqnp886H3CM/UmOfz3afitxnp/piTAsBuM78YlXps395/LXI7LYw0K3A7BQCggFZFeObCTVsKAFBdlMsAUeaACBQAaGSE1foIM0ZW+3Tu9E9JCgBFzPjCNONj6qn36bvV/df6vvH9SGkKADQU+YTdYrZeJaD1/ZYOa+FPDQoAxcz0IjXTY6GPUt9DvhepRQGAxiJuAVrO1Po03vPSw+e7TzcH+J5/C1u8+vXzx+/eQzCX+6eH3iPs0upF9+2Xd03u55JeheTx+8f69xHwXf/nfj4EPi0pABSnAGzXuwRE2EbUKAIRgx+icQmA4kY+xbSevWcARwj/ZSkf1sIftrEBoJrRNgE9i0vrTUCU8D+2Zxsg+OE6r3sPAPwXyK1KQNTwX5bnIb6lDAh9uJ0NAFWNsgWIctmidgmIHP5AWwoA1UUvAVHC/1DpIiD4gWMKAE1ELQERw//Q3iIg+IFTFACaiVYCoof/sa1lQOgDWygANNe7CIwW/AA1+BwAmusZwMIf4D82AHTVahsg+AGeUwAIoVYREPwAL1MACKVUERD8AOcpAIS2tRAIfIDrKAAAkJDfAgCAhBQAAEhIAQCAhBQAAEjode8BGIfPogeYh98C4KRSf5JWIQCIRwHgmdJ/h/6YMgAQgwLAsiz1g/+YIgDQlwKQXOvgP6YIAPThtwAS6x3+UWYAyMgGIKlowTvqJuDx+8dtX/fmQ+VJAK6jACQTLfiPjVAEtob+yX+vDAABKACJRA//VcQSsDf0T96uMgB04j0ASYwS/ssSb9Za4V/7tgHOsQFIIFqgbtV7E9A6nEfcBtw/PZz9/5/vPjWaBLiWjwKGF/Q4mT9+/zhECbgU+qe+VhmAWGwAJjfq6X/VYwvQey0fsQRcE/pbKAPQn/cATGz08F+W9o+hd/hHmeFQ6fCvdZvAdWwAJjVD+B9qsQmIFrwRNgG1gzryJuDSz1Dv96jAXgrApBSA60QL/1WvEtD6hB6lCNz6c6MMMCIFYEKzhf+q1ots1PBftS4BvdbzvUvA3p+bEUrApe/1CLine truncated
label: "🌱 regolo/apertus-70b"
preset:
endpoint: "Inference Co-op"
model: "regolo/apertus-70b"
- name: regolo-qwen3-5-122b
iconURL: "/assets/logo-coop.png"
iconURL: "data:image/png;base64,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 truncated
label: "🌱 regolo/qwen3.5-122b"
preset:
endpoint: "Inference Co-op"
model: "regolo/qwen3.5-122b"
- name: regolo-qwen-image
iconURL: "/assets/logo-coop.png"
label: "🖼️ regolo/qwen-image"
preset:
endpoint: "Inference Co-op"
model: "regolo/qwen-image"
# Inference Cooperative branding
interface:
customWelcome: "Welcome to your co-op AI."
# Feature permissions (seeded for the USER role at startup;
# ongoing edits belong in the LibreChat Admin Panel)
webSearch: true
mcpServers:
use: true # members can use admin-configured MCP servers
create: true # members can add their own (bring-your-own-tools)
share: false
theme:
version: 1
name: inference
@@ -163,3 +124,47 @@ interface:
rgb-text-primary: '236 233 226'
rgb-text-secondary: '168 173 158'
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
# endpoint, so no SSRF allowedAddresses exemption is needed.
speech:
tts:
openai:
url: "https://gateway.inference.coop/v1"
apiKey: "${TTS_API_KEY}"
model: "tinfoil/voxtral-tts"
voices: ["casual_female"]
stt:
openai:
url: "https://gateway.inference.coop/v1"
apiKey: "${STT_API_KEY}"
model: "tinfoil/whisper-large-v3-turbo"
speechTab:
conversationMode: false
advancedMode: false
speechToText: true
textToSpeech: true
# Web search: self-hosted SearXNG (search.inference.coop, keyless JSON API)
# for search, keyless Keenable for page scraping, no reranker. The instance
# URL is an env-var reference (real values never live in the YAML).
webSearch:
searchProvider: "searxng"
searxngInstanceUrl: "${SEARXNG_INSTANCE_URL}"
searxngSearchOptions:
engines: "google,bing,startpage"
language: "en"
scraperProvider: "keenable"
rerankerType: "none"
# MCP servers (admin-configured). The docs server is the same stdlib-only
# Python server Open WebUI uses; it lives on the persistent volume at
# /app/data/mcp/server.py so it survives image updates.
mcpServers:
inference-docs:
command: /app/code/venv/bin/python3
args: ["/app/data/mcp/server.py"]
timeout: 60000
+256
View File
@@ -0,0 +1,256 @@
#!/usr/bin/env python3
"""Inference Cooperative docs MCP server (stdio, stdlib-only).
Exposes a `search_docs` tool over the co-op documentation (co-op/docs on
git.inference.coop). Members opt in per conversation via the tools palette.
Design notes:
- stdio transport: newline-delimited JSON-RPC 2.0 on stdin/stdout (the MCP
stdio protocol). All logging goes to stderr — stdout is protocol-only.
- No third-party dependencies: the corpus is fetched from the public Gitea
raw API, chunked by heading, and ranked with a compact BM25.
- The index refreshes lazily if older than DOCS_TTL seconds (default 30 min).
"""
import json
import math
import re
import sys
import time
import urllib.request
from concurrent.futures import ThreadPoolExecutor
DOCS_REPO = "co-op/docs"
GITEA_API = "https://git.inference.coop/api/v1"
DOCS_TTL = 30 * 60
MAX_CHUNKS_RETURNED = 5
SERVER_NAME = "inference-cooperative-docs"
SERVER_VERSION = "1.0.0"
_index = {"chunks": [], "built_at": 0.0}
_lock_held = False
TOKEN_RE = re.compile(r"[a-z0-9]+")
def log(msg):
sys.stderr.write(f"[inference-docs-mcp] {msg}\n")
sys.stderr.flush()
def fetch_json(url):
with urllib.request.urlopen(url, timeout=30) as r:
return json.loads(r.read().decode("utf-8"))
def fetch_text(url):
with urllib.request.urlopen(url, timeout=30) as r:
return r.read().decode("utf-8")
def list_doc_files():
files = fetch_json(f"{GITEA_API}/repos/{DOCS_REPO}/contents")
return [
{"path": f["path"], "name": f["name"]}
for f in files
if f["type"] == "file" and f["name"].endswith(".md")
]
def chunk_markdown(path, text):
"""Split a doc into section chunks keyed by its top title + heading."""
lines = text.splitlines()
title = lines[0].lstrip("# ").strip() if lines and lines[0].startswith("#") else path
sections = []
current_head = "Overview"
current = []
def flush():
body = "\n".join(current).strip()
if len(body) < 40:
return
sections.append({"doc": title, "path": path, "section": current_head, "text": body})
for line in lines:
if line.startswith("## "):
flush()
current_head = line.lstrip("# ").strip()
current = []
else:
current.append(line)
flush()
return sections
def tokenize(text):
return TOKEN_RE.findall(text.lower())
def build_index():
chunks = []
docs = list_doc_files()
def load(doc):
try:
raw = fetch_text(f"{GITEA_API}/repos/{DOCS_REPO}/raw/{doc['path']}")
return chunk_markdown(doc["path"], raw)
except Exception as exc: # noqa: BLE001 - one bad doc shouldn't kill the index
log(f"skipping {doc['path']}: {exc}")
return []
with ThreadPoolExecutor(max_workers=6) as pool:
for parts in pool.map(load, docs):
chunks.extend(parts)
# BM25 statistics
doc_terms = [tokenize(c["text"]) for c in chunks]
n = len(chunks)
avg_len = sum(len(t) for t in doc_terms) / max(n, 1)
df = {}
for terms in doc_terms:
for term in set(terms):
df[term] = df.get(term, 0) + 1
for c, terms in zip(chunks, doc_terms):
c["_tf"] = {}
for t in terms:
c["_tf"][t] = c["_tf"].get(t, 0) + 1
c["_len"] = len(terms)
_index["chunks"] = chunks
_index["df"] = df
_index["n"] = n
_index["avg_len"] = avg_len
_index["built_at"] = time.time()
log(f"index built: {n} chunks from {len(docs)} docs")
def ensure_index():
if not _index["chunks"] or time.time() - _index["built_at"] > DOCS_TTL:
build_index()
def search(query, limit=MAX_CHUNKS_RETURNED):
ensure_index()
k1, b = 1.5, 0.75
q_terms = tokenize(query)
scored = []
for c in _index["chunks"]:
score = 0.0
for t in q_terms:
tf = c["_tf"].get(t, 0)
if not tf:
continue
idf = math.log(1 + (_index["n"] - _index["df"].get(t, 0) + 0.5) / (_index["df"].get(t, 0) + 0.5))
score += idf * tf * (k1 + 1) / (tf + k1 * (1 - b + b * c["_len"] / _index["avg_len"]))
if score > 0:
scored.append((score, c))
scored.sort(key=lambda pair: -pair[0])
return scored[:limit]
def tool_search_docs(args):
query = str(args.get("query") or "").strip()
if not query:
return {"content": [{"type": "text", "text": "Provide a query."}]}
limit = min(int(args.get("limit") or MAX_CHUNKS_RETURNED), 10)
results = search(query, limit)
if not results:
return {"content": [{"type": "text", "text": "No matching documentation found."}]}
parts = []
for score, c in results:
parts.append(f"[{c['doc']} — {c['section']}] (relevance {score:.2f})\n{c['text']}")
return {"content": [{"type": "text", "text": "\n\n---\n\n".join(parts)}]}
TOOLS = [
{
"name": "search_docs",
"description": (
"Search the Inference Cooperative documentation (getting started, models, "
"API access, charter, policies). Returns the most relevant doc sections."
),
"inputSchema": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "What to look for in the docs"},
"limit": {"type": "integer", "description": "Max sections to return (default 5)"},
},
"required": ["query"],
},
}
]
TOOLS_HANDLERS = {"search_docs": tool_search_docs}
def handle(msg):
method = msg.get("method")
msg_id = msg.get("id")
if method == "initialize":
return {
"jsonrpc": "2.0",
"id": msg_id,
"result": {
"protocolVersion": "2024-11-05",
"capabilities": {"tools": {}},
"serverInfo": {"name": SERVER_NAME, "version": SERVER_VERSION},
},
}
if method == "ping":
return {"jsonrpc": "2.0", "id": msg_id, "result": {}}
if method == "tools/list":
return {"jsonrpc": "2.0", "id": msg_id, "result": {"tools": TOOLS}}
if method == "tools/call":
params = msg.get("params") or {}
name = params.get("name")
handler = TOOLS_HANDLERS.get(name)
if not handler:
return {
"jsonrpc": "2.0",
"id": msg_id,
"error": {"code": -32602, "message": f"Unknown tool: {name}"},
}
try:
result = handler(params.get("arguments") or {})
return {"jsonrpc": "2.0", "id": msg_id, "result": result}
except Exception as exc: # noqa: BLE001 - report tool errors in-band
log(f"tool error: {exc}")
return {
"jsonrpc": "2.0",
"id": msg_id,
"result": {"content": [{"type": "text", "text": f"Search failed: {exc}"}], "isError": True},
}
if method and method.startswith("notifications/"):
return None
if msg_id is not None:
return {"jsonrpc": "2.0", "id": msg_id, "error": {"code": -32601, "message": "Method not found"}}
return None
def main():
log("starting (stdio)")
for line in sys.stdin:
line = line.strip()
if not line:
continue
try:
msg = json.loads(line)
except json.JSONDecodeError as exc:
log(f"bad json: {exc}")
continue
try:
resp = handle(msg)
except Exception as exc: # noqa: BLE001 - never crash the protocol loop
log(f"handler crash: {exc}")
if msg.get("id") is not None:
resp = {"jsonrpc": "2.0", "id": msg["id"], "error": {"code": -32603, "message": "Internal error"}}
else:
resp = None
if resp is not None:
sys.stdout.write(json.dumps(resp) + "\n")
sys.stdout.flush()
if __name__ == "__main__":
main()