Prism deployment examples
These recipes extend a fresh copy of .env.example. Replace the listed keys in that file and keep its other service/path defaults. Commands assume Linux or a POSIX shell and a fresh deployment; do not convert an existing shared installation back to single-user.
Recipe 1 — Personal Prism with Ollama
This complete local recipe keeps Ollama on Prism’s Docker network without publishing a model API port. It works on CPU; optional GPU support depends on your host runtime. The sample models are a tool-capable chat model and a separate embedding model.
git clone https://github.com/blazux/prism.git
cd prism
cp .env.example .env
chmod 600 .env
openssl rand -hex 32Put the generated token in PRISM_TOKEN and set these values in .env. Do not copy YOUR_GENERATED_TOKEN literally.
PRISM_TOKEN=YOUR_GENERATED_TOKEN
MULTI_USER=
LLM_BACKEND=ollama
OLLAMA_URL=http://ollama:11434
OLLAMA_MODEL=qwen2.5:7b
EMBED_BACKEND=ollama
EMBED_MODEL=nomic-embed-text
CHAT_VISION=false
TZ=UTCCreate compose.ollama.yml next to docker-compose.yml with this content:
services:
ollama:
image: ollama/ollama:latest
restart: unless-stopped
volumes:
- ollama_models:/root/.ollama
volumes:
ollama_models:
docker compose -f docker-compose.yml -f compose.ollama.yml up -d ollama
docker compose -f docker-compose.yml -f compose.ollama.yml exec ollama ollama pull qwen2.5:7b
docker compose -f docker-compose.yml -f compose.ollama.yml exec ollama ollama pull nomic-embed-text
docker compose -f docker-compose.yml -f compose.ollama.yml up -dOpen http://localhost:48080. In AI provider check Ollama → http://ollama:11434, the selected chat model and nomic-embed-text for document search. If saved provider settings already exist, they override the environment recipe; update them in the UI. Keep both Compose files in later update commands.
Ollama Docker documentation ↗Recipe 2 — Shared Prism with vLLM
Prerequisite: a working vLLM server with a tool-capable model, streaming and the correct model-specific tool parser/chat template. This recipe connects Prism to that server; it does not install or size vLLM. Its /v1/models response must include the alias assistant, or replace that alias below.
On a fresh Prism deployment, use the Ollama overlay above for embeddings only, and change these .env values. host-gateway targets vLLM on the Docker host; its listener must be reachable from the container. For a different server, use its actual reachable address.
PRISM_TOKEN=YOUR_GENERATED_SERVICE_TOKEN
MULTI_USER=1
LLM_BACKEND=openai
OPENAI_BASE_URL=http://host-gateway:8000/v1
OPENAI_MODEL=assistant
OPENAI_API_KEY=
EMBED_BACKEND=ollama
OLLAMA_URL=http://ollama:11434
EMBED_MODEL=nomic-embed-text
CHAT_VISION=false
TZ=UTCIf vLLM requires a key, put the matching credential in OPENAI_API_KEY. CHAT_VISION=false is deliberate for a text-only sample; enable image support only for a model that supports it. If vLLM runs on a separate Compose network, attach Prism to that network and use its service name rather than localhost.
docker compose -f docker-compose.yml -f compose.ollama.yml up -d ollama
docker compose -f docker-compose.yml -f compose.ollama.yml exec ollama ollama pull nomic-embed-text
docker compose -f docker-compose.yml -f compose.ollama.yml up -dCreate the first account at http://localhost:48080; it becomes global administrator. In Admin → AI provider check the vLLM source, use a separate Ollama embedding connection, and set the actual context/vision in Model settings if metadata is missing. Create a group, approve a second account and verify its permissions before opening access more widely.
vLLM tool-calling setup ↗Acceptance checks for either recipe
- The browser can sign in and a model response arrives without an authentication or model-ID error.
- A small widget task produces real tool calls, a widget and data that survives a page reload.
- A short uploaded document indexes successfully and can be retrieved from the intended collection.
- In shared mode, check an ordinary member account rather than testing everything as global administrator.