{ "stable": true, "versions": { "1.0.0": { "manifest": { "id": "io.github.orcvole.tei", "title": "Text Embeddings Inference", "author": "OrcVole", "tagline": "Fast text embeddings and reranking server (HuggingFace TEI)", "description": "Text Embeddings Inference (TEI) is a fast, open-source server for text embeddings and reranking,\nwritten in Rust by Hugging Face. It loads a sentence-transformer or reranker model and serves vector\nembeddings over a simple REST API and an OpenAI-compatible `/v1/embeddings` endpoint, which makes it\na drop-in embeddings provider for retrieval-augmented generation, semantic search, and any client\nthat already speaks the OpenAI embeddings format.\n\nThis package runs TEI on Cloudron with a secure, single-domain topology:\n\n- The embedding endpoints (`/embed`, `/v1/embeddings`, `/rerank`, `/info`) are protected by an API\n key, so programmatic clients and sibling apps authenticate with a key rather than being redirected\n to an interactive sign-in page.\n- The liveness endpoint (`/health`) is open so Cloudron can health-check the app, and the\n interactive API documentation (`/docs`) is placed behind Cloudron login.\n\nTEI has no authentication by default: anyone who can reach it can use it. This package closes that\ngap. It generates a strong API key on first start and injects it through the environment so it never\nappears in the process table.\n\nThe embedding model is downloaded on first boot and cached under the application data directory, so\nCloudron's backup covers it along with the generated key. The default model is `BAAI/bge-small-en-v1.5`\n(384-dimensional English embeddings, about 130 MB); a different model can be served by setting\n`TEI_MODEL_ID` in the app's environment.\n\nThis package targets amd64 Cloudron hosts: the upstream CPU build, which bundles the Intel MKL math\nruntime, is published for amd64 only.\n\nThis is a community package. It tracks upstream Text Embeddings Inference releases and keeps the\nupstream binary unmodified. Hugging Face, Text Embeddings Inference, and the names of any models are\ntrademarks of their respective owners. This package is community-maintained and is not affiliated\nwith or endorsed by Hugging Face.\n", "changelog": "# Changelog\n\n[1.0.0]\n- Initial release. Packages Hugging Face Text Embeddings Inference v1.9.3 (CPU build) on\n cloudron/base:5.0.0.\n- Multi-stage Dockerfile copies the upstream binary plus its Intel MKL and OpenMP runtime onto the\n Cloudron base; a build-time linkage gate fails the build if a library or glibc symbol is missing.\n- Generates a strong API key on first start and injects it through the environment (it never appears\n in the process table). The /embed, /v1/embeddings, /rerank, and /info endpoints require the key;\n /health is open for health checks and /docs is behind Cloudron login.\n- OpenAI-compatible /v1/embeddings endpoint, so the app is a drop-in embeddings provider.\n- Default model BAAI/bge-small-en-v1.5 (384-dim), overridable with TEI_MODEL_ID; the model cache\n and the key live under /app/data and are covered by Cloudron backup.\n- amd64 only (the upstream CPU/MKL image has no arm64 variant).\n", "icon": "file://logo.png", "version": "1.0.0", "upstreamVersion": "1.9.3", "healthCheckPath": "/health", "httpPort": 8080, "addons": { "localstorage": {}, "proxyAuth": { "path": "/docs" } }, "memoryLimit": 2147483648, "optionalSso": true, "postInstallMessage": "### Text Embeddings Inference is running\n\nNo setup wizard. On first boot it downloads the default model (`BAAI/bge-small-en-v1.5`, ready in\nwell under a minute) and starts serving. Get your API key below, then point your apps or your code\nat it.\n\n**Get your API key.** Open this app's Terminal (the `>_` button above) and run\n`cat /app/data/.secrets/keys.env`. It prints `TEI_API_KEY`. Send it as an\n`Authorization: Bearer` token on every request to the embedding endpoints.\n\n**Embed some text (OpenAI-compatible).** From your own computer:\n`curl $CLOUDRON-APP-ORIGIN/v1/embeddings -H \"Authorization: Bearer PASTE-KEY-HERE\" -H \"content-type: application/json\" -d '{\"input\":\"hello world\",\"model\":\"BAAI/bge-small-en-v1.5\"}'`.\nThere is also a native endpoint, `POST /embed` with `{\"inputs\":\"hello world\"}`.\n\n**Connect another Cloudron app** (OpenWebUI, AnythingLLM, n8n): in that app's settings, set the\nOpenAI-compatible embeddings base URL to $CLOUDRON-APP-ORIGIN/v1 and paste the key as the API key.\nPair it with a Qdrant app to store the vectors it produces.\n\n**Change the model.** Set `TEI_MODEL_ID` in this app's Environment to any TEI-compatible model id\n(for example a larger embedding model, or a cross-encoder for `/rerank`) and restart. The new model\ndownloads on the next boot and is cached under `/app/data`.\n\n**Good to know.** The default model does embeddings only; `/rerank` needs a reranker (cross-encoder)\nmodel. The `/health` endpoint is open (Cloudron uses it to monitor the app); the interactive API\ndocs at $CLOUDRON-APP-ORIGIN/docs sit behind Cloudron login. The memory limit is 2 GB, which suits\nsmall and medium models; raise it in Resources for a large model. Full details and integration\nrecipes are in the README.\n", "checklist": { "apikey": { "message": "Get your API key: open a Terminal for this app (the `>_` button) and run `cat /app/data/.secrets/keys.env`. Send it as `Authorization: Bearer ` to the embedding endpoints." }, "model": { "message": "First boot downloads the embedding model (the default, `BAAI/bge-small-en-v1.5`, is ~130 MB and ready in well under a minute). To serve a different model, set `TEI_MODEL_ID` in the app's Environment and restart." } }, "tags": [ "ai", "embeddings", "search" ], "mediaLinks": [ "https://raw.githubusercontent.com/OrcVole/TEI-Cloudron/main/screenshots/overview.png" ], "website": "https://github.com/OrcVole/TEI-Cloudron", "documentationUrl": "https://github.com/OrcVole/TEI-Cloudron", "contactEmail": "OrcVole@users.noreply.github.com", "packagerName": "OrcVole", "packagerUrl": "https://github.com/OrcVole/TEI-Cloudron", "manifestVersion": 2, "minBoxVersion": "9.1.0", "dockerImage": "ghcr.io/orcvole/tei-cloudron@sha256:f36584716a2df33e2869bb2540d243976cdc6af09aee0eb07f35aa222d935434", "iconUrl": "https://raw.githubusercontent.com/OrcVole/TEI-Cloudron/main/logo.png" }, "creationDate": "2026-06-25T20:35:05.495Z", "ts": 1782419705495, "publishState": "published" }, "1.0.1": { "manifest": { "id": "io.github.orcvole.tei", "title": "Text Embeddings Inference", "author": "OrcVole", "tagline": "Fast text embeddings and reranking server (HuggingFace TEI)", "description": "Text Embeddings Inference (TEI) is a fast, open-source server for text embeddings and reranking,\nwritten in Rust by Hugging Face. It loads a sentence-transformer or reranker model and serves vector\nembeddings over a simple REST API and an OpenAI-compatible `/v1/embeddings` endpoint, which makes it\na drop-in embeddings provider for retrieval-augmented generation, semantic search, and any client\nthat already speaks the OpenAI embeddings format.\n\nThis package runs TEI on Cloudron with a secure, single-domain topology:\n\n- The embedding endpoints (`/embed`, `/v1/embeddings`, `/rerank`, `/info`) are protected by an API\n key, so programmatic clients and sibling apps authenticate with a key rather than being redirected\n to an interactive sign-in page.\n- The liveness endpoint (`/health`) is open so Cloudron can health-check the app, and the\n interactive API documentation (`/docs`) is placed behind Cloudron login.\n\nTEI has no authentication by default: anyone who can reach it can use it. This package closes that\ngap. It generates a strong API key on first start and injects it through the environment so it never\nappears in the process table.\n\nThe embedding model is downloaded on first boot and cached under the application data directory, so\nCloudron's backup covers it along with the generated key. The default model is `BAAI/bge-small-en-v1.5`\n(384-dimensional English embeddings, about 130 MB); a different model can be served by setting\n`TEI_MODEL_ID` in the app's environment.\n\nThis package targets amd64 Cloudron hosts: the upstream CPU build, which bundles the Intel MKL math\nruntime, is published for amd64 only.\n\nThis is a community package. It tracks upstream Text Embeddings Inference releases and keeps the\nupstream binary unmodified. Hugging Face, Text Embeddings Inference, and the names of any models are\ntrademarks of their respective owners. This package is community-maintained and is not affiliated\nwith or endorsed by Hugging Face.\n", "changelog": "# Changelog\n\n[1.0.1]\n- Use the official Hugging Face mark as the app icon (was a custom graphic).\n- Add `configurePath` `/docs` so the app's \"Open\" button goes to the interactive API docs (TEI has\n no dashboard of its own; this is the only browsable page).\n- Post-install notes now state plainly that there is no web GUI and show how to verify it works\n (a successful embedding is a list of ~384 decimal numbers, which is the expected output).\n- No image change: the dockerImage digest is unchanged from 1.0.0 (icon and notes are metadata).\n\n[1.0.0]\n- Initial release. Packages Hugging Face Text Embeddings Inference v1.9.3 (CPU build) on\n cloudron/base:5.0.0.\n- Multi-stage Dockerfile copies the upstream binary plus its Intel MKL and OpenMP runtime onto the\n Cloudron base; a build-time linkage gate fails the build if a library or glibc symbol is missing.\n- Generates a strong API key on first start and injects it through the environment (it never appears\n in the process table). The /embed, /v1/embeddings, /rerank, and /info endpoints require the key;\n /health is open for health checks and /docs is behind Cloudron login.\n- OpenAI-compatible /v1/embeddings endpoint, so the app is a drop-in embeddings provider.\n- Default model BAAI/bge-small-en-v1.5 (384-dim), overridable with TEI_MODEL_ID; the model cache\n and the key live under /app/data and are covered by Cloudron backup.\n- amd64 only (the upstream CPU/MKL image has no arm64 variant).\n", "icon": "file://logo.png", "version": "1.0.1", "upstreamVersion": "1.9.3", "healthCheckPath": "/health", "httpPort": 8080, "addons": { "localstorage": {}, "proxyAuth": { "path": "/docs" } }, "memoryLimit": 2147483648, "configurePath": "/docs", "optionalSso": true, "postInstallMessage": "### Text Embeddings Inference is running\n\n**There is no web page to visit.** This app is an API, not a website. If you open its domain in a\nbrowser you will see a blank page, and that is normal, not a fault. There is no dashboard or login\nscreen of its own. The only browsable page is the interactive API documentation at `/docs` (this\napp's \"Open\" button goes there), which sits behind your Cloudron login.\n\n**Get your API key.** Open this app's Terminal (the `>_` button above) and run\n`cat /app/data/.secrets/keys.env`. It prints `TEI_API_KEY`. Send it as an `Authorization: Bearer`\ntoken on every request to the embedding endpoints.\n\n**Check it is working (in plain terms).** Two quick checks:\n\n1. Liveness, no key needed: `curl $CLOUDRON-APP-ORIGIN/health` returns `OK`. If that works, the\n server is up.\n2. A real embedding:\n `curl $CLOUDRON-APP-ORIGIN/v1/embeddings -H \"Authorization: Bearer PASTE-KEY-HERE\" -H \"content-type: application/json\" -d '{\"input\":\"hello world\",\"model\":\"BAAI/bge-small-en-v1.5\"}'`\n\nA working response is a long list of decimal numbers, like `[0.0152, -0.0226, 0.0085, ...]` (384 of\nthem). That wall of numbers IS the correct answer: it is the \"embedding\", the meaning of your text\nturned into coordinates. It looks like gibberish to a person, and it is meant to: it is built for a\nvector database such as Qdrant to compare and search, not for people to read. If instead you get\n`401`, the key is missing or wrong. If you get numbers, it works.\n\n**Connect another Cloudron app** (OpenWebUI, AnythingLLM, n8n): in that app's settings, set the\nOpenAI-compatible embeddings base URL to $CLOUDRON-APP-ORIGIN/v1 and paste the key as the API key.\nPair it with a Qdrant app to store the vectors it produces.\n\n**Change the model.** Set `TEI_MODEL_ID` in this app's Environment to any TEI-compatible model id\nand restart. The new model downloads on the next boot and is cached under `/app/data`. The default\nmodel does embeddings only; `/rerank` needs a reranker (cross-encoder) model.\n\n**Good to know.** The memory limit is 2 GB, which suits small and medium models; raise it in\nResources for a large one. The interactive API docs are at $CLOUDRON-APP-ORIGIN/docs (behind Cloudron\nlogin). Full details and integration recipes are in the README.\n", "checklist": { "apikey": { "message": "Get your API key: open a Terminal for this app (the `>_` button) and run `cat /app/data/.secrets/keys.env`. Send it as `Authorization: Bearer ` to the embedding endpoints." }, "model": { "message": "First boot downloads the embedding model (the default, `BAAI/bge-small-en-v1.5`, is ~130 MB and ready in well under a minute). To serve a different model, set `TEI_MODEL_ID` in the app's Environment and restart." } }, "tags": [ "ai", "embeddings", "search" ], "mediaLinks": [ "https://raw.githubusercontent.com/OrcVole/TEI-Cloudron/main/screenshots/overview.png" ], "website": "https://github.com/OrcVole/TEI-Cloudron", "documentationUrl": "https://github.com/OrcVole/TEI-Cloudron", "contactEmail": "OrcVole@users.noreply.github.com", "packagerName": "OrcVole", "packagerUrl": "https://github.com/OrcVole/TEI-Cloudron", "manifestVersion": 2, "minBoxVersion": "9.1.0", "dockerImage": "ghcr.io/orcvole/tei-cloudron@sha256:f36584716a2df33e2869bb2540d243976cdc6af09aee0eb07f35aa222d935434", "iconUrl": "https://raw.githubusercontent.com/OrcVole/TEI-Cloudron/main/logo.png" }, "creationDate": "2026-06-25T21:08:11.764Z", "ts": 1782421691764, "publishState": "published" } } }