diff --git a/CloudronManifest.json b/CloudronManifest.json index 5c7ba63..9dc0a02 100644 --- a/CloudronManifest.json +++ b/CloudronManifest.json @@ -1,11 +1,11 @@ { "id": "ai.librechat.cloudronapp", - "version": "1.4.1", + "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.1\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/", diff --git a/Dockerfile b/Dockerfile index 33c9479..ac1811b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ # 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 +FROM cloudron/ai.librechat.cloudronapp:202610230221180000 # Login-page + header logo (the client bundle references assets/logo.svg) COPY assets/logo.svg /app/code/librechat/client/dist/assets/logo.svg diff --git a/README.md b/README.md index 8c3c512..c1edbc0 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,9 @@ Source of truth for the co-op's chat instance at **chat.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`). +appstore package `ai.librechat.cloudronapp@1.4.5` — upstream LibreChat is +unchanged at **v0.8.8**; the bump is uv 0.13.1 → 0.13.5 — on base image +`cloudron/ai.librechat.cloudronapp:202610230221180000`). `librechat-test.inference.coop` was the pre-swap hostname (the swap to `chat.` happened 2026-10-21; the test alias is still not provisioned). @@ -160,6 +161,25 @@ cloudron --server my.inference.coop --token "$CLOUDRON_TOKEN" exec --app $APP \ `./release.sh verify` runs checks 1-5 plus the seed task's own log lines and the running script's revision hash, and exits non-zero on any failure. +### Appstore pin bumps (base image) + +The overlay's `FROM` is pinned to the exact appstore image the app runs. Bumping +it is a two-line change in this repo (`Dockerfile` `FROM` + the manifest's +`version`/`changelog` copied from the official manifest) plus a rebuild, but it +re-runs every build-time patch against a new base layer, so treat the overlay as +the risk, not the bump. + +```bash +# what the appstore now offers (official manifest, authoritative) +curl -s https://api.cloudron.io/api/v1/apps/ai.librechat.cloudronapp \ + | python3 -c "import json,sys; m=json.load(sys.stdin)['data']['manifest']; print(m['version'], m.get('upstreamVersion'), m['changelog'].strip())" +# diff it against our copy — every field must match except dockerImage (+ scheduler) +# then: rebuild, pin, deploy, ./release.sh verify, and re-check the branding block above +``` + +Rollback is a one-line `dockerImage` repoint to the previous tag (built images +stay in the registry), then `./release.sh deploy`. + ### `CloudronManifest.json` rules - The **only** field you may change is `dockerImage` — it must point at the