Service Setup Guide
Step-by-step instructions for connecting each service to Prism. For every service you'll need a URL and usually an API key or token. Prism's Service Discovery can auto-detect most local services, but you'll still need to provide authentication credentials.
LM Studio
LM Studio provides a local OpenAI-compatible API for running language models on your own hardware.
| Field | Value |
|---|---|
| Default URL | http://localhost:1234 |
| Auth | None required |
Setup
- Download and install LM Studio
- Load a model (e.g., Qwen, Llama, Mistral) from the Discover tab
- Click Start Server in the Local Server tab — it starts on port
1234by default - The server URL is shown in the Server tab header (e.g.,
http://192.168.86.77:1234) - To allow network access from other machines, enable Serve on Local Network in Server settings
Finding your model name
- Open LM Studio → Local Server tab → the loaded model name is shown at the top
- Or visit
http://<your-ip>:1234/v1/modelsin a browser — theidfield is the model name - Prism auto-detects the loaded model during onboarding
Ollama
Unverified path. Prism has no named Ollama connector. Ollama exposes an OpenAI-compatible API, so pointing a custom model at http://localhost:11434/v1 should work, but this route has not been through a verified setup pass. LM Studio is the tested local runtime.
Ollama runs open-source models locally with a simple CLI.
| Field | Value |
|---|---|
| Default URL | http://localhost:11434 |
| Auth | None required |
Setup
- Install Ollama
- Pull a model:
ollama pull llama3.2:latest - Ollama starts automatically and listens on port
11434 - To allow network access, set the environment variable:
- macOS/Linux:
OLLAMA_HOST=0.0.0.0 ollama serve - Windows: Set
OLLAMA_HOST=0.0.0.0in System Environment Variables, then restart Ollama - Docker:
-e OLLAMA_HOST=0.0.0.0
- macOS/Linux:
Finding your model name
- Run
ollama listin terminal — the NAME column shows available models - Or visit
http://<your-ip>:11434/api/tags— thenamefield in each model entry - Use the full name including tag, e.g.,
llama3.2:latest(not justllama3.2)
Paperless-ngx
Document management system that indexes PDFs, images, and office documents with OCR.
| Field | Value |
|---|---|
| Default URL | http://localhost:8010 |
| Auth | API Token |
Setup
- Install Paperless-ngx (Docker recommended)
- The default port is
8000, but many setups use8010— check yourdocker-compose.yml - Log in to the Paperless web UI
Finding your API token
- Open Paperless web UI → click your username (top-right) → My Profile
- Scroll down to Auth Tokens section
- Click + Add to create a new token, or copy an existing one
- The token looks like:
a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2
Alternative (Django admin)
- Go to
http://<your-url>/admin/authtoken/tokenproxy/ - Click Add Token, select your user, and save
- Copy the token string
Obsidian (Local REST API)
Connects to your Obsidian vault via the Local REST API community plugin.
| Field | Value |
|---|---|
| Default URL | http://127.0.0.1:27123 or https://127.0.0.1:27124 |
| Auth | API Key (Bearer token) |
Setup
- Open Obsidian → Settings → Community plugins → Browse
- Search for "Local REST API" and install it
- Enable the plugin in Community plugins
- Go to the plugin's settings (click the gear icon next to it)
Finding your API key
- In the Local REST API plugin settings, you'll see the API Key field
- Copy the key — it's a long alphanumeric string
- The settings also show the port (default:
27123for HTTP,27124for HTTPS) - If using HTTPS (recommended for network access), Prism automatically handles the self-signed certificate
Network access
- By default the plugin only listens on
127.0.0.1(localhost) - To access from another machine, go to plugin settings → enable "Enable Non-local Requests"
- Use the IP of the machine running Obsidian (e.g.,
http://192.168.86.103:27123)
BookStack
Self-hosted wiki platform for organizing documentation.
| Field | Value |
|---|---|
| Default URL | http://localhost:8080 |
| Auth | Token ID + Token Secret |
Setup
- Install BookStack (Docker recommended)
- Default port is
8080— check yourdocker-compose.ymlport mapping
Finding your API tokens
- Log in to BookStack web UI
- Click your profile icon (top-right) → Edit Profile
- Scroll down to API Tokens section
- Click Create Token
- Give it a name (e.g., "Prism") and click Save
- Copy both values:
- Token ID — short alphanumeric string (e.g.,
GaE5y9k3E6rL) - Token Secret — longer string (e.g.,
lGiCc3IpIkBE5t0r4muMvQxMbhv9oOET)
- Token ID — short alphanumeric string (e.g.,
- Important: The Token Secret is only shown once — save it immediately
Nextcloud
Self-hosted cloud storage and collaboration platform.
| Field | Value |
|---|---|
| Default URL | http://localhost:8443 |
| Auth | Username + App Password |
Setup
- Install Nextcloud (Docker, Snap, or manual)
- Check your port in the Nextcloud config or
docker-compose.yml
Creating an App Password
- Log in to Nextcloud web UI
- Click your avatar (top-right) → Settings
- Go to Security in the left sidebar
- Scroll down to Devices & sessions
- Enter a name (e.g., "Prism") in the App name field
- Click Create new app password
- Copy the generated password — it looks like:
xY3kL-mN7pQ-rS9tU-vW2xA-bC4dE - Use your Nextcloud username (not email) in the Username field
Local Files
Indexes files on your local filesystem using a full-text search engine.
| Field | Value |
|---|---|
| Search Paths | Comma-separated directory paths |
| Extensions | Comma-separated file extensions |
| Auth | None (local filesystem) |
Setup
- Enter one or more directories to index, separated by commas:
Use absolute paths on Windows:~/Documents, ~/Projects, ~/NotesC:\Users\you\Documents, D:\Projects - Optionally customize which file types to include:
- Default:
md, txt, pdf, docx, csv, json, rs, ts, py(and many more) - Add or remove extensions as needed
- Default:
- Click Sync to trigger the initial indexing
Supported file types
- Text:
.md,.txt,.csv,.json,.yaml,.toml,.xml - Documents:
.pdf(text extraction via lopdf),.docx(via docx_rs) - Code:
.rs,.ts,.tsx,.js,.jsx,.py,.go,.java,.c,.cpp,.h,.sh - Web:
.html,.css,.svg
Email (Gmail / Outlook / FastMail)
Search your email inbox directly from Prism.
| Field | Value |
|---|---|
| Provider | Gmail, Outlook or FastMail |
| Auth | OAuth2 Access Token |
Gmail setup
- Go to Google Cloud Console
- Create a project → Enable the Gmail API
- Create OAuth 2.0 credentials (Desktop app type)
- Use the OAuth flow to get an access token with scope:
https://www.googleapis.com/auth/gmail.readonly - Paste the access token into Prism
Outlook / Microsoft setup
- Go to Azure Portal → App registrations → New registration
- Add Microsoft Graph API permission:
Mail.Read - Use the OAuth flow to get an access token
- Paste the access token into Prism
SearXNG
Self-hosted metasearch engine that aggregates results from multiple search engines.
| Field | Value |
|---|---|
| Default URL | http://localhost:8080 |
| Auth | None required |
Setup
- Install SearXNG (Docker recommended):
docker run -d -p 8080:8080 --name searxng searxng/searxng - Ensure JSON output is enabled in
settings.yml:search: formats: - html - json - The default port is
8080— check your Docker port mapping if different
Qdrant
Vector database used by Prism for semantic search (RAG pipeline).
| Field | Value |
|---|---|
| Default URL | http://localhost:6333 |
| Auth | API Key (optional for local) |
Setup
- Install Qdrant (Docker recommended):
docker run -d -p 6333:6333 -p 6334:6334 \ -v qdrant_storage:/qdrant/storage \ qdrant/qdrant - Default ports:
6333(REST API),6334(gRPC) - Dashboard available at
http://localhost:6333/dashboard - For local instances, no API key is needed
- If you set an API key in Qdrant's config, enter it in Prism
Auto-created collections
Prism creates these collections automatically:
prism_paperless— Paperless document embeddingsprism_bookstack— BookStack page embeddingsprism_obsidian— Obsidian note embeddingsprism_feedback— User feedback embeddings
Embedding Model
Prism uses an embedding model to convert text into vectors for semantic search.
| Field | Default |
|---|---|
| Model | nomic-embed-text-v1.5 |
| Dimension | 768 |
| Provider | local (LM Studio/Ollama) |
Local setup (default)
- In LM Studio: Go to Discover → search for
nomic-embed-text-v1.5→ Download - The embedding model runs alongside your chat model
- No additional configuration needed — Prism uses the same LM Studio URL
OpenAI setup (alternative)
- In Source Priority advanced settings, change Embedding Provider to
openai - Enter your OpenAI API key
- Endpoint:
https://api.openai.com(default) - Model:
text-embedding-3-smallortext-embedding-ada-002
Default Ports
| Service | Default Port | Protocol |
|---|---|---|
| LM Studio | 1234 | HTTP |
| Ollama | 11434 | HTTP |
| Paperless-ngx | 8000 / 8010 | HTTP |
| BookStack | 8080 | HTTP |
| Obsidian REST API | 27123 (HTTP) / 27124 (HTTPS) | HTTP/HTTPS |
| Nextcloud | 8443 / 443 | HTTP/HTTPS |
| SearXNG | 8080 | HTTP |
| Qdrant | 6333 | HTTP |
Troubleshooting
"Connection refused"
The service isn't running or isn't listening on the expected port. Check:
- Is the Docker container / service actually running?
- Is the port correct? Check
docker psor your service config - Is the service listening on
0.0.0.0(all interfaces) vs127.0.0.1(localhost only)?
"Connection timed out"
Network can't reach the service. Check:
- Is the IP address correct?
- Is there a firewall blocking the port?
- Are you on the same network / VPN?
"HTTP 401 / 403"
Authentication failed. Check:
- Is the API key / token correct and not expired?
- For Paperless: use
Token <key>format (Prism handles this automatically) - For Obsidian: the API key must match what's in the plugin settings
- For BookStack: both Token ID and Token Secret are required
"DNS lookup failed"
The hostname can't be resolved. Check:
- Use an IP address instead of a hostname
- Check if your DNS resolver is working
- For
.localdomains, ensure mDNS/Bonjour is running
Service discovery not finding services
- Discovery only scans
localhostand common ports — it won't find services on other machines - Enter the URL manually for remote services (e.g.,
http://192.168.86.16:8010) - Some services need specific ports open for discovery signatures to work